You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by John King <jo...@media.berkeley.edu> on 2012/10/10 03:16:11 UTC

javax.mail and javax.activation issue in Felix 4 causes upload of video file to fail

Folks,

I have recently started working on the Opencast Matterhorn project which 
involves capturing, trans-coding and distribution of digital video files.

One of the services we distribute to is YouTube.  As I understand it, 
the Matterhorn module that does this worked fine in Felix 3 but now 
fails in Felix 4.

We are running the application with Java 1.6.

The stack trace for this error:
17:08:44 WARN (YoutubeDistributionService:418) - Error distributing 
http://localhost:8080/files/mediapackage/a78f4054-9b79-4d87-b938-08547d495a9d/49a4dfe4-91bf-4450-b186-e0d8f24a53cd/test3.mp4 

javax.activation.UnsupportedDataTypeException: application/atom+xml
     at javax.activation.DataHandler.writeTo(DataHandler.java:75)
     at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
     at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
     at 
com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
     at 
com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
     at com.google.gdata.client.Service.writeRequestData(Service.java:2071)
     at 
com.google.gdata.client.media.MediaService.insert(MediaService.java:398)
     at 
org.opencastproject.distribution.youtube.YoutubeDistributionService.distribute(YoutubeDistributionService.java:344)
     .......................

Obviously the google gdata code, specifically gdata-media, is in play 
here along with javax.mail and javax.activation.

In the Felix 4 context we are using the following javax.mail and 
javax.activation bundles from Geronimo
geronimo-activation_1.1_spec-1.1.jar and 
geronimo-javamail_1.4_mail-1.8.3.jar

Googling for this error, I found the following thread that discusses a 
problem that seems closely analogous to our problem,
http://forum.springsource.org/archive/index.php/t-69180.html

The container in that discussion is the Spring dm Server but the error 
and likely cause seem relevant.  See especially the posting on Mar 21st, 
2009 by oleg.zhurakousky.

Note particularly that the root cause is likely not an 
UnsupportedDataTypeException but a ClassNotFoundException for one of the 
classes in com.sun.mail.handlers that becomes the 
UnsupportedDataTypeException. Quoting the thread " This results in the 
DataContentHandler for your MIME type being null which is the root of 
your exception. "

I have tried explicitly importing the Geronimo javax.mail and 
javax.activation bundles using <Import-Bundle> and <Embed-Dependency> as 
an analogous fix to that in the Spring thread but that doesn't fix our 
problem.  I've tried several other javax.mail and javax.activation 
bundles e.g. from Spring but with no luck.  Manipulating the 
ClassLoaders as discussed there doesn't seem possible as the error is 
being generated in the gdata code and, in any event, that approach seems 
evil.

Any pointers or suggestions are most welcome.  For example, should I 
explicitly import com.sun.mail.handlers.* even though neither our code 
nor the gdata code calls them directly?  That also seems evil to me.

I've looked at all the imports in the system/console/bundles UI for our 
bundle and the Geronimo bundles and everything appears consistent namely 
that our YouTube bundle is importing the javax.mail packages from the 
Geronimo bundle.  Also the Geronimo mail bundle is importing 
javax.activation bundle from the Geronimo mail bundle.

Relevant sections of the Felix 4 config for our app are:

# Packages 'javax.xml.stream, javax.xml.stream.events, 
javax.xml.stream.util' removed --> provided by ServiceMix STAX bundle
# Packages 'javax.mail, javax.mail.internet' removed --> provided by 
Geronimo JavaMail bundle
org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0,org.osgi.framework.hooks.bundle;version=1.0.0,org.osgi.framework.hooks.resolver;version=1.0.0,org.osgi.framework.hooks.service;version=1.1.0,org.osgi.framework.hooks.weaving;version=1.0.0,org.osgi.framework.launch;version=1.0.0,org.osgi.framework.startlevel;version=1.0.0,org.osgi.framework.wiring;version=1.0.0,org.osgi.service.packageadmin;version=1.2.0,org.osgi.service.startlevel;version=1.1.0,org.osgi.service.url;version=1.0.0,org.osgi.util.tracker;version=1.5.0,javax.accessibility, 
javax.activity, javax.annotation, javax.annotation.processing, 
javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio, 
javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp, 
javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream, 
javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element, 
javax.lang.model.type, javax.lang.model.util, javax.management, 
javax.management.loading, javax.management.modelmbean, 
javax.management.monitor, javax.management.openmbean, 
javax.management.relation, javax.management.remote, 
javax.management.remote.rmi, javax.management.timer, javax.naming, 
javax.naming.directory, javax.naming.event, javax.naming.ldap, 
javax.naming.spi, javax.net, javax.net.ssl, javax.print, 
javax.print.attribute, javax.print.attribute.standard, 
javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl, 
javax.script, javax.security.auth, javax.security.auth.callback, 
javax.security.auth.kerberos, javax.security.auth.login, 
javax.security.auth.spi, javax.security.auth.x500, javax.security.cert, 
javax.security.sasl, javax.sound.midi, javax.sound.midi.spi, 
javax.sound.sampled, javax.sound.sampled.spi, javax.sql, 
javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi, 
javax.swing, javax.swing.border, javax.swing.colorchooser, 
javax.swing.event, javax.swing.filechooser, javax.swing.plaf, 
javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi, 
javax.swing.plaf.synth, javax.swing.table, javax.swing.text, 
javax.swing.text.html, javax.swing.text.html.parser, 
javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools, 
javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind, 
javax.xml.bind.annotation, javax.xml.bind.annotation.adapters, 
javax.xml.bind.attachment, javax.xml.bind.helpers, javax.xml.bind.util, 
javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig, 
javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo, 
javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace, 
javax.xml.soap, javax.xml.transform, javax.xml.transform.dom, 
javax.xml.transform.sax, javax.xml.transform.stax, 
javax.xml.transform.stream, javax.xml.validation, javax.xml.ws, 
javax.xml.ws.handler, javax.xml.ws.handler.soap, javax.xml.ws.http, 
javax.xml.ws.soap, javax.xml.ws.spi, javax.xml.ws.wsaddressing1, 
javax.xml.xpath, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3, 
org.omg.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage, 
org.omg.CORBA.ORBPackage, org.omg.CORBA.portable, 
org.omg.CORBA.TypeCodePackage, org.omg.CosNaming, 
org.omg.CosNaming.NamingContextExtPackage, 
org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic, 
org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage, 
org.omg.DynamicAny.DynAnyPackage, org.omg.IOP, 
org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage, 
org.omg.Messaging, org.omg.PortableInterceptor, 
org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer, 
org.omg.PortableServer.CurrentPackage, 
org.omg.PortableServer.POAManagerPackage, 
org.omg.PortableServer.POAPackage, org.omg.PortableServer.portable, 
org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext, 
org.omg.stub.java.rmi

# specs
felix.auto.start.2= \
  .......
  file:${felix.home}/lib/ext/geronimo-activation_1.1_spec-1.1.jar \

# libraries
felix.auto.start.3= \
  ......
  file:${felix.home}/lib/ext/geronimo-javamail_1.4_mail-1.8.3.jar \
  file:${felix.home}/lib/ext/jolokia-osgi-1.0.4.jar


Relevant sections of the pom.xml for our YouTubeDistribution module 
looks like:
     <!-- Youtube delivery dependencies -->

     <dependency>
       <groupId>gdata</groupId>
       <artifactId>gdata-client</artifactId>
       <version>1.0</version>
       <classifier>1.45.0</classifier>
     </dependency>

     <dependency>
       <groupId>gdata</groupId>
       <artifactId>gdata-core</artifactId>
       <version>1.0</version>
       <classifier>1.45.0</classifier>
     </dependency>

     <dependency>
       <groupId>gdata</groupId>
       <artifactId>gdata-media</artifactId>
       <version>1.0</version>
       <classifier>1.45.0</classifier>
     </dependency>

     <dependency>
       <groupId>gdata</groupId>
       <artifactId>gdata-youtube</artifactId>
       <version>2.0</version>
       <classifier>1.45.0</classifier>
     </dependency>

     <dependency>
       <groupId>gdata</groupId>
       <artifactId>gdata-youtube-meta</artifactId>
       <version>2.0</version>
       <classifier>1.45.0</classifier>
     </dependency>
..........................
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <version>2.0.1</version>
         <extensions>true</extensions>
         <configuration>
           <instructions>
             <Bundle-SymbolicName> ${project.artifactId} 
</Bundle-SymbolicName>
             <Private-Package>
               com.google.*;-split-package:=merge-first,
               org.jdom.*,
               flexjson,
             </Private-Package>
             <Import-Package>
               *;resolution:=optional
             </Import-Package>
             <Export-Package>
org.opencastproject.deliver.youtube.*;version=${project.version},
org.opencastproject.distribution.youtube.*;version=${project.version}
             </Export-Package>
             <Embed-Dependency>
               flexjson;inline=true,
               gdata-client;inline=true,
               gdata-core;inline=true,
               gdata-media;inline=true,
               gdata-youtube;inline=true,
               google-collections;inline=true,
             </Embed-Dependency>
             <Service-Component>
               OSGI-INF/distribution-service-youtube.xml
             </Service-Component>
           </instructions>
         </configuration>
       </plugin>


-- 
John King
Applications Programmer
Learning Systems Group
Educational Technology Services
9 Dwinelle Hall - Mail
117 Dwinelle Hall - Office
University of California
Berkeley, CA 94720-2535
Phone: 510-529-5074
Email: johnk@media.berkeley.edu


Re: javax.mail and javax.activation issue in Felix 4 causes upload of video file to fail

Posted by Felix Meschberger <fm...@adobe.com>.
Hi John,

Glad it works. Thanks for the feedback.

Regards
Felix

Am 13.10.2012 um 00:43 schrieb John King:

> Felix,
>
> Many thanks for this information - it did fix our problem.
>
> Ironically, I found a combined bundle built three years ago by Carl Hall
> for the Sakai Nakamura project, the project I just came off to work on
> my new project.
>
> John King
>
> On 10/10/12 11:30 PM, Felix Meschberger wrote:
>> Hi,
>>
>> Am 10.10.2012 um 21:37 schrieb John King:
>>
>>> Hi,
>>>
>>> Thanks for the recommendation.  Will try forthwith.
>>>
>>> Do you happen to know of any publicly accessible Maven or OSGI
>>> Repositories that might have that combined bundle already?
>> No, I don't know of such a bundle (we have a private one)
>>
>> Regards
>> Felix
>>
>>> John K
>>>
>>> On 10/9/12 11:54 PM, Felix Meschberger wrote:
>>>> Hi,
>>>>
>>>> You already removed the javax.mail and javax.activation from the system packages in the felix config. This is fine.
>>>>
>>>> Other than that we experienced that the mail and activation libraries are quite intertwined and our best experience with those was to actually have a single bundle combining both bundles. This way, they have access to their internals, which they seem to expect...
>>>>
>>>> But then, some bundle must provide the "application/atom+xml" data handler and I am not sure whether this is part of either the javax.mail or javax.activation libraries ....
>>>>
>>>> Regards
>>>> Felix
>>>>
>>>> Am 10.10.2012 um 03:16 schrieb John King:
>>>>
>>>>> Folks,
>>>>>
>>>>> I have recently started working on the Opencast Matterhorn project which
>>>>> involves capturing, trans-coding and distribution of digital video files.
>>>>>
>>>>> One of the services we distribute to is YouTube.  As I understand it,
>>>>> the Matterhorn module that does this worked fine in Felix 3 but now
>>>>> fails in Felix 4.
>>>>>
>>>>> We are running the application with Java 1.6.
>>>>>
>>>>> The stack trace for this error:
>>>>> 17:08:44 WARN (YoutubeDistributionService:418) - Error distributing
>>>>> http://localhost:8080/files/mediapackage/a78f4054-9b79-4d87-b938-08547d495a9d/49a4dfe4-91bf-4450-b186-e0d8f24a53cd/test3.mp4
>>>>>
>>>>> javax.activation.UnsupportedDataTypeException: application/atom+xml
>>>>>     at javax.activation.DataHandler.writeTo(DataHandler.java:75)
>>>>>     at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
>>>>>     at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
>>>>>     at
>>>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
>>>>>     at
>>>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
>>>>>     at com.google.gdata.client.Service.writeRequestData(Service.java:2071)
>>>>>     at
>>>>> com.google.gdata.client.media.MediaService.insert(MediaService.java:398)
>>>>>     at
>>>>> org.opencastproject.distribution.youtube.YoutubeDistributionService.distribute(YoutubeDistributionService.java:344)
>>>>>     .......................
>>>>>
>>>>> Obviously the google gdata code, specifically gdata-media, is in play
>>>>> here along with javax.mail and javax.activation.
>>>>>
>>>>> In the Felix 4 context we are using the following javax.mail and
>>>>> javax.activation bundles from Geronimo
>>>>> geronimo-activation_1.1_spec-1.1.jar and
>>>>> geronimo-javamail_1.4_mail-1.8.3.jar
>>>>>
>>>>> Googling for this error, I found the following thread that discusses a
>>>>> problem that seems closely analogous to our problem,
>>>>> http://forum.springsource.org/archive/index.php/t-69180.html
>>>>>
>>>>> The container in that discussion is the Spring dm Server but the error
>>>>> and likely cause seem relevant.  See especially the posting on Mar 21st,
>>>>> 2009 by oleg.zhurakousky.
>>>>>
>>>>> Note particularly that the root cause is likely not an
>>>>> UnsupportedDataTypeException but a ClassNotFoundException for one of the
>>>>> classes in com.sun.mail.handlers that becomes the
>>>>> UnsupportedDataTypeException. Quoting the thread " This results in the
>>>>> DataContentHandler for your MIME type being null which is the root of
>>>>> your exception. "
>>>>>
>>>>> I have tried explicitly importing the Geronimo javax.mail and
>>>>> javax.activation bundles using <Import-Bundle> and <Embed-Dependency> as
>>>>> an analogous fix to that in the Spring thread but that doesn't fix our
>>>>> problem.  I've tried several other javax.mail and javax.activation
>>>>> bundles e.g. from Spring but with no luck.  Manipulating the
>>>>> ClassLoaders as discussed there doesn't seem possible as the error is
>>>>> being generated in the gdata code and, in any event, that approach seems
>>>>> evil.
>>>>>
>>>>> Any pointers or suggestions are most welcome.  For example, should I
>>>>> explicitly import com.sun.mail.handlers.* even though neither our code
>>>>> nor the gdata code calls them directly?  That also seems evil to me.
>>>>>
>>>>> I've looked at all the imports in the system/console/bundles UI for our
>>>>> bundle and the Geronimo bundles and everything appears consistent namely
>>>>> that our YouTube bundle is importing the javax.mail packages from the
>>>>> Geronimo bundle.  Also the Geronimo mail bundle is importing
>>>>> javax.activation bundle from the Geronimo mail bundle.
>>>>>
>>>>> Relevant sections of the Felix 4 config for our app are:
>>>>>
>>>>> # Packages 'javax.xml.stream, javax.xml.stream.events,
>>>>> javax.xml.stream.util' removed --> provided by ServiceMix STAX bundle
>>>>> # Packages 'javax.mail, javax.mail.internet' removed --> provided by
>>>>> Geronimo JavaMail bundle
>>>>> org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0,org.osgi.framework.hooks.bundle;version=1.0.0,org.osgi.framework.hooks.resolver;version=1.0.0,org.osgi.framework.hooks.service;version=1.1.0,org.osgi.framework.hooks.weaving;version=1.0.0,org.osgi.framework.launch;version=1.0.0,org.osgi.framework.startlevel;version=1.0.0,org.osgi.framework.wiring;version=1.0.0,org.osgi.service.packageadmin;version=1.2.0,org.osgi.service.startlevel;version=1.1.0,org.osgi.service.url;version=1.0.0,org.osgi.util.tracker;version=1.5.0,javax.accessibility,
>>>>> javax.activity, javax.annotation, javax.annotation.processing,
>>>>> javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio,
>>>>> javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp,
>>>>> javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream,
>>>>> javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element,
>>>>> javax.lang.model.type, javax.lang.model.util, javax.management,
>>>>> javax.management.loading, javax.management.modelmbean,
>>>>> javax.management.monitor, javax.management.openmbean,
>>>>> javax.management.relation, javax.management.remote,
>>>>> javax.management.remote.rmi, javax.management.timer, javax.naming,
>>>>> javax.naming.directory, javax.naming.event, javax.naming.ldap,
>>>>> javax.naming.spi, javax.net, javax.net.ssl, javax.print,
>>>>> javax.print.attribute, javax.print.attribute.standard,
>>>>> javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl,
>>>>> javax.script, javax.security.auth, javax.security.auth.callback,
>>>>> javax.security.auth.kerberos, javax.security.auth.login,
>>>>> javax.security.auth.spi, javax.security.auth.x500, javax.security.cert,
>>>>> javax.security.sasl, javax.sound.midi, javax.sound.midi.spi,
>>>>> javax.sound.sampled, javax.sound.sampled.spi, javax.sql,
>>>>> javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi,
>>>>> javax.swing, javax.swing.border, javax.swing.colorchooser,
>>>>> javax.swing.event, javax.swing.filechooser, javax.swing.plaf,
>>>>> javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi,
>>>>> javax.swing.plaf.synth, javax.swing.table, javax.swing.text,
>>>>> javax.swing.text.html, javax.swing.text.html.parser,
>>>>> javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools,
>>>>> javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind,
>>>>> javax.xml.bind.annotation, javax.xml.bind.annotation.adapters,
>>>>> javax.xml.bind.attachment, javax.xml.bind.helpers, javax.xml.bind.util,
>>>>> javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig,
>>>>> javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo,
>>>>> javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace,
>>>>> javax.xml.soap, javax.xml.transform, javax.xml.transform.dom,
>>>>> javax.xml.transform.sax, javax.xml.transform.stax,
>>>>> javax.xml.transform.stream, javax.xml.validation, javax.xml.ws,
>>>>> javax.xml.ws.handler, javax.xml.ws.handler.soap, javax.xml.ws.http,
>>>>> javax.xml.ws.soap, javax.xml.ws.spi, javax.xml.ws.wsaddressing1,
>>>>> javax.xml.xpath, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3,
>>>>> org.omg.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage,
>>>>> org.omg.CORBA.ORBPackage, org.omg.CORBA.portable,
>>>>> org.omg.CORBA.TypeCodePackage, org.omg.CosNaming,
>>>>> org.omg.CosNaming.NamingContextExtPackage,
>>>>> org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic,
>>>>> org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage,
>>>>> org.omg.DynamicAny.DynAnyPackage, org.omg.IOP,
>>>>> org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage,
>>>>> org.omg.Messaging, org.omg.PortableInterceptor,
>>>>> org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer,
>>>>> org.omg.PortableServer.CurrentPackage,
>>>>> org.omg.PortableServer.POAManagerPackage,
>>>>> org.omg.PortableServer.POAPackage, org.omg.PortableServer.portable,
>>>>> org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext,
>>>>> org.omg.stub.java.rmi
>>>>>
>>>>> # specs
>>>>> felix.auto.start.2= \
>>>>>  .......
>>>>>  file:${felix.home}/lib/ext/geronimo-activation_1.1_spec-1.1.jar \
>>>>>
>>>>> # libraries
>>>>> felix.auto.start.3= \
>>>>>  ......
>>>>>  file:${felix.home}/lib/ext/geronimo-javamail_1.4_mail-1.8.3.jar \
>>>>>  file:${felix.home}/lib/ext/jolokia-osgi-1.0.4.jar
>>>>>
>>>>>
>>>>> Relevant sections of the pom.xml for our YouTubeDistribution module
>>>>> looks like:
>>>>>     <!-- Youtube delivery dependencies -->
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-client</artifactId>
>>>>>       <version>1.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-core</artifactId>
>>>>>       <version>1.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-media</artifactId>
>>>>>       <version>1.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-youtube</artifactId>
>>>>>       <version>2.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-youtube-meta</artifactId>
>>>>>       <version>2.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>> ..........................
>>>>>       <plugin>
>>>>>         <groupId>org.apache.felix</groupId>
>>>>>         <artifactId>maven-bundle-plugin</artifactId>
>>>>>         <version>2.0.1</version>
>>>>>         <extensions>true</extensions>
>>>>>         <configuration>
>>>>>           <instructions>
>>>>>             <Bundle-SymbolicName> ${project.artifactId}
>>>>> </Bundle-SymbolicName>
>>>>>             <Private-Package>
>>>>>               com.google.*;-split-package:=merge-first,
>>>>>               org.jdom.*,
>>>>>               flexjson,
>>>>>             </Private-Package>
>>>>>             <Import-Package>
>>>>>               *;resolution:=optional
>>>>>             </Import-Package>
>>>>>             <Export-Package>
>>>>> org.opencastproject.deliver.youtube.*;version=${project.version},
>>>>> org.opencastproject.distribution.youtube.*;version=${project.version}
>>>>>             </Export-Package>
>>>>>             <Embed-Dependency>
>>>>>               flexjson;inline=true,
>>>>>               gdata-client;inline=true,
>>>>>               gdata-core;inline=true,
>>>>>               gdata-media;inline=true,
>>>>>               gdata-youtube;inline=true,
>>>>>               google-collections;inline=true,
>>>>>             </Embed-Dependency>
>>>>>             <Service-Component>
>>>>>               OSGI-INF/distribution-service-youtube.xml
>>>>>             </Service-Component>
>>>>>           </instructions>
>>>>>         </configuration>
>>>>>       </plugin>
>>>>>
>>>>>
>>>>> --
>>>>> John King
>>>>> Applications Programmer
>>>>> Learning Systems Group
>>>>> Educational Technology Services
>>>>> 9 Dwinelle Hall - Mail
>>>>> 117 Dwinelle Hall - Office
>>>>> University of California
>>>>> Berkeley, CA 94720-2535
>>>>> Phone: 510-529-5074
>>>>> Email: johnk@media.berkeley.edu
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>
>>> --
>>> John King
>>> Applications Programmer
>>> Learning Systems Group
>>> Educational Technology Services
>>> 9 Dwinelle Hall - Mail
>>> 117 Dwinelle Hall - Office
>>> University of California
>>> Berkeley, CA 94720-2535
>>> Phone: 510-529-5074
>>> Email: johnk@media.berkeley.edu
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
>
> --
> John King
> Applications Programmer
> Learning Systems Group
> Educational Technology Services
> 9 Dwinelle Hall - Mail
> 117 Dwinelle Hall - Office
> University of California
> Berkeley, CA 94720-2535
> Phone: 510-529-5074
> Email: johnk@media.berkeley.edu
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: javax.mail and javax.activation issue in Felix 4 causes upload of video file to fail

Posted by John King <jo...@media.berkeley.edu>.
Felix,

Many thanks for this information - it did fix our problem.

Ironically, I found a combined bundle built three years ago by Carl Hall 
for the Sakai Nakamura project, the project I just came off to work on 
my new project.

John King

On 10/10/12 11:30 PM, Felix Meschberger wrote:
> Hi,
>
> Am 10.10.2012 um 21:37 schrieb John King:
>
>> Hi,
>>
>> Thanks for the recommendation.  Will try forthwith.
>>
>> Do you happen to know of any publicly accessible Maven or OSGI
>> Repositories that might have that combined bundle already?
> No, I don't know of such a bundle (we have a private one)
>
> Regards
> Felix
>
>> John K
>>
>> On 10/9/12 11:54 PM, Felix Meschberger wrote:
>>> Hi,
>>>
>>> You already removed the javax.mail and javax.activation from the system packages in the felix config. This is fine.
>>>
>>> Other than that we experienced that the mail and activation libraries are quite intertwined and our best experience with those was to actually have a single bundle combining both bundles. This way, they have access to their internals, which they seem to expect...
>>>
>>> But then, some bundle must provide the "application/atom+xml" data handler and I am not sure whether this is part of either the javax.mail or javax.activation libraries ....
>>>
>>> Regards
>>> Felix
>>>
>>> Am 10.10.2012 um 03:16 schrieb John King:
>>>
>>>> Folks,
>>>>
>>>> I have recently started working on the Opencast Matterhorn project which
>>>> involves capturing, trans-coding and distribution of digital video files.
>>>>
>>>> One of the services we distribute to is YouTube.  As I understand it,
>>>> the Matterhorn module that does this worked fine in Felix 3 but now
>>>> fails in Felix 4.
>>>>
>>>> We are running the application with Java 1.6.
>>>>
>>>> The stack trace for this error:
>>>> 17:08:44 WARN (YoutubeDistributionService:418) - Error distributing
>>>> http://localhost:8080/files/mediapackage/a78f4054-9b79-4d87-b938-08547d495a9d/49a4dfe4-91bf-4450-b186-e0d8f24a53cd/test3.mp4
>>>>
>>>> javax.activation.UnsupportedDataTypeException: application/atom+xml
>>>>      at javax.activation.DataHandler.writeTo(DataHandler.java:75)
>>>>      at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
>>>>      at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
>>>>      at
>>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
>>>>      at
>>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
>>>>      at com.google.gdata.client.Service.writeRequestData(Service.java:2071)
>>>>      at
>>>> com.google.gdata.client.media.MediaService.insert(MediaService.java:398)
>>>>      at
>>>> org.opencastproject.distribution.youtube.YoutubeDistributionService.distribute(YoutubeDistributionService.java:344)
>>>>      .......................
>>>>
>>>> Obviously the google gdata code, specifically gdata-media, is in play
>>>> here along with javax.mail and javax.activation.
>>>>
>>>> In the Felix 4 context we are using the following javax.mail and
>>>> javax.activation bundles from Geronimo
>>>> geronimo-activation_1.1_spec-1.1.jar and
>>>> geronimo-javamail_1.4_mail-1.8.3.jar
>>>>
>>>> Googling for this error, I found the following thread that discusses a
>>>> problem that seems closely analogous to our problem,
>>>> http://forum.springsource.org/archive/index.php/t-69180.html
>>>>
>>>> The container in that discussion is the Spring dm Server but the error
>>>> and likely cause seem relevant.  See especially the posting on Mar 21st,
>>>> 2009 by oleg.zhurakousky.
>>>>
>>>> Note particularly that the root cause is likely not an
>>>> UnsupportedDataTypeException but a ClassNotFoundException for one of the
>>>> classes in com.sun.mail.handlers that becomes the
>>>> UnsupportedDataTypeException. Quoting the thread " This results in the
>>>> DataContentHandler for your MIME type being null which is the root of
>>>> your exception. "
>>>>
>>>> I have tried explicitly importing the Geronimo javax.mail and
>>>> javax.activation bundles using <Import-Bundle> and <Embed-Dependency> as
>>>> an analogous fix to that in the Spring thread but that doesn't fix our
>>>> problem.  I've tried several other javax.mail and javax.activation
>>>> bundles e.g. from Spring but with no luck.  Manipulating the
>>>> ClassLoaders as discussed there doesn't seem possible as the error is
>>>> being generated in the gdata code and, in any event, that approach seems
>>>> evil.
>>>>
>>>> Any pointers or suggestions are most welcome.  For example, should I
>>>> explicitly import com.sun.mail.handlers.* even though neither our code
>>>> nor the gdata code calls them directly?  That also seems evil to me.
>>>>
>>>> I've looked at all the imports in the system/console/bundles UI for our
>>>> bundle and the Geronimo bundles and everything appears consistent namely
>>>> that our YouTube bundle is importing the javax.mail packages from the
>>>> Geronimo bundle.  Also the Geronimo mail bundle is importing
>>>> javax.activation bundle from the Geronimo mail bundle.
>>>>
>>>> Relevant sections of the Felix 4 config for our app are:
>>>>
>>>> # Packages 'javax.xml.stream, javax.xml.stream.events,
>>>> javax.xml.stream.util' removed --> provided by ServiceMix STAX bundle
>>>> # Packages 'javax.mail, javax.mail.internet' removed --> provided by
>>>> Geronimo JavaMail bundle
>>>> org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0,org.osgi.framework.hooks.bundle;version=1.0.0,org.osgi.framework.hooks.resolver;version=1.0.0,org.osgi.framework.hooks.service;version=1.1.0,org.osgi.framework.hooks.weaving;version=1.0.0,org.osgi.framework.launch;version=1.0.0,org.osgi.framework.startlevel;version=1.0.0,org.osgi.framework.wiring;version=1.0.0,org.osgi.service.packageadmin;version=1.2.0,org.osgi.service.startlevel;version=1.1.0,org.osgi.service.url;version=1.0.0,org.osgi.util.tracker;version=1.5.0,javax.accessibility,
>>>> javax.activity, javax.annotation, javax.annotation.processing,
>>>> javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio,
>>>> javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp,
>>>> javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream,
>>>> javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element,
>>>> javax.lang.model.type, javax.lang.model.util, javax.management,
>>>> javax.management.loading, javax.management.modelmbean,
>>>> javax.management.monitor, javax.management.openmbean,
>>>> javax.management.relation, javax.management.remote,
>>>> javax.management.remote.rmi, javax.management.timer, javax.naming,
>>>> javax.naming.directory, javax.naming.event, javax.naming.ldap,
>>>> javax.naming.spi, javax.net, javax.net.ssl, javax.print,
>>>> javax.print.attribute, javax.print.attribute.standard,
>>>> javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl,
>>>> javax.script, javax.security.auth, javax.security.auth.callback,
>>>> javax.security.auth.kerberos, javax.security.auth.login,
>>>> javax.security.auth.spi, javax.security.auth.x500, javax.security.cert,
>>>> javax.security.sasl, javax.sound.midi, javax.sound.midi.spi,
>>>> javax.sound.sampled, javax.sound.sampled.spi, javax.sql,
>>>> javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi,
>>>> javax.swing, javax.swing.border, javax.swing.colorchooser,
>>>> javax.swing.event, javax.swing.filechooser, javax.swing.plaf,
>>>> javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi,
>>>> javax.swing.plaf.synth, javax.swing.table, javax.swing.text,
>>>> javax.swing.text.html, javax.swing.text.html.parser,
>>>> javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools,
>>>> javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind,
>>>> javax.xml.bind.annotation, javax.xml.bind.annotation.adapters,
>>>> javax.xml.bind.attachment, javax.xml.bind.helpers, javax.xml.bind.util,
>>>> javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig,
>>>> javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo,
>>>> javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace,
>>>> javax.xml.soap, javax.xml.transform, javax.xml.transform.dom,
>>>> javax.xml.transform.sax, javax.xml.transform.stax,
>>>> javax.xml.transform.stream, javax.xml.validation, javax.xml.ws,
>>>> javax.xml.ws.handler, javax.xml.ws.handler.soap, javax.xml.ws.http,
>>>> javax.xml.ws.soap, javax.xml.ws.spi, javax.xml.ws.wsaddressing1,
>>>> javax.xml.xpath, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3,
>>>> org.omg.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage,
>>>> org.omg.CORBA.ORBPackage, org.omg.CORBA.portable,
>>>> org.omg.CORBA.TypeCodePackage, org.omg.CosNaming,
>>>> org.omg.CosNaming.NamingContextExtPackage,
>>>> org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic,
>>>> org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage,
>>>> org.omg.DynamicAny.DynAnyPackage, org.omg.IOP,
>>>> org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage,
>>>> org.omg.Messaging, org.omg.PortableInterceptor,
>>>> org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer,
>>>> org.omg.PortableServer.CurrentPackage,
>>>> org.omg.PortableServer.POAManagerPackage,
>>>> org.omg.PortableServer.POAPackage, org.omg.PortableServer.portable,
>>>> org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext,
>>>> org.omg.stub.java.rmi
>>>>
>>>> # specs
>>>> felix.auto.start.2= \
>>>>   .......
>>>>   file:${felix.home}/lib/ext/geronimo-activation_1.1_spec-1.1.jar \
>>>>
>>>> # libraries
>>>> felix.auto.start.3= \
>>>>   ......
>>>>   file:${felix.home}/lib/ext/geronimo-javamail_1.4_mail-1.8.3.jar \
>>>>   file:${felix.home}/lib/ext/jolokia-osgi-1.0.4.jar
>>>>
>>>>
>>>> Relevant sections of the pom.xml for our YouTubeDistribution module
>>>> looks like:
>>>>      <!-- Youtube delivery dependencies -->
>>>>
>>>>      <dependency>
>>>>        <groupId>gdata</groupId>
>>>>        <artifactId>gdata-client</artifactId>
>>>>        <version>1.0</version>
>>>>        <classifier>1.45.0</classifier>
>>>>      </dependency>
>>>>
>>>>      <dependency>
>>>>        <groupId>gdata</groupId>
>>>>        <artifactId>gdata-core</artifactId>
>>>>        <version>1.0</version>
>>>>        <classifier>1.45.0</classifier>
>>>>      </dependency>
>>>>
>>>>      <dependency>
>>>>        <groupId>gdata</groupId>
>>>>        <artifactId>gdata-media</artifactId>
>>>>        <version>1.0</version>
>>>>        <classifier>1.45.0</classifier>
>>>>      </dependency>
>>>>
>>>>      <dependency>
>>>>        <groupId>gdata</groupId>
>>>>        <artifactId>gdata-youtube</artifactId>
>>>>        <version>2.0</version>
>>>>        <classifier>1.45.0</classifier>
>>>>      </dependency>
>>>>
>>>>      <dependency>
>>>>        <groupId>gdata</groupId>
>>>>        <artifactId>gdata-youtube-meta</artifactId>
>>>>        <version>2.0</version>
>>>>        <classifier>1.45.0</classifier>
>>>>      </dependency>
>>>> ..........................
>>>>        <plugin>
>>>>          <groupId>org.apache.felix</groupId>
>>>>          <artifactId>maven-bundle-plugin</artifactId>
>>>>          <version>2.0.1</version>
>>>>          <extensions>true</extensions>
>>>>          <configuration>
>>>>            <instructions>
>>>>              <Bundle-SymbolicName> ${project.artifactId}
>>>> </Bundle-SymbolicName>
>>>>              <Private-Package>
>>>>                com.google.*;-split-package:=merge-first,
>>>>                org.jdom.*,
>>>>                flexjson,
>>>>              </Private-Package>
>>>>              <Import-Package>
>>>>                *;resolution:=optional
>>>>              </Import-Package>
>>>>              <Export-Package>
>>>> org.opencastproject.deliver.youtube.*;version=${project.version},
>>>> org.opencastproject.distribution.youtube.*;version=${project.version}
>>>>              </Export-Package>
>>>>              <Embed-Dependency>
>>>>                flexjson;inline=true,
>>>>                gdata-client;inline=true,
>>>>                gdata-core;inline=true,
>>>>                gdata-media;inline=true,
>>>>                gdata-youtube;inline=true,
>>>>                google-collections;inline=true,
>>>>              </Embed-Dependency>
>>>>              <Service-Component>
>>>>                OSGI-INF/distribution-service-youtube.xml
>>>>              </Service-Component>
>>>>            </instructions>
>>>>          </configuration>
>>>>        </plugin>
>>>>
>>>>
>>>> --
>>>> John King
>>>> Applications Programmer
>>>> Learning Systems Group
>>>> Educational Technology Services
>>>> 9 Dwinelle Hall - Mail
>>>> 117 Dwinelle Hall - Office
>>>> University of California
>>>> Berkeley, CA 94720-2535
>>>> Phone: 510-529-5074
>>>> Email: johnk@media.berkeley.edu
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
>> --
>> John King
>> Applications Programmer
>> Learning Systems Group
>> Educational Technology Services
>> 9 Dwinelle Hall - Mail
>> 117 Dwinelle Hall - Office
>> University of California
>> Berkeley, CA 94720-2535
>> Phone: 510-529-5074
>> Email: johnk@media.berkeley.edu
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>


-- 
John King
Applications Programmer
Learning Systems Group
Educational Technology Services
9 Dwinelle Hall - Mail
117 Dwinelle Hall - Office
University of California
Berkeley, CA 94720-2535
Phone: 510-529-5074
Email: johnk@media.berkeley.edu


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: javax.mail and javax.activation issue in Felix 4 causes upload of video file to fail

Posted by Felix Meschberger <fm...@adobe.com>.
Hi,

Am 10.10.2012 um 21:37 schrieb John King:

> Hi,
> 
> Thanks for the recommendation.  Will try forthwith.
> 
> Do you happen to know of any publicly accessible Maven or OSGI
> Repositories that might have that combined bundle already?

No, I don't know of such a bundle (we have a private one)

Regards
Felix

> 
> John K
> 
> On 10/9/12 11:54 PM, Felix Meschberger wrote:
>> Hi,
>> 
>> You already removed the javax.mail and javax.activation from the system packages in the felix config. This is fine.
>> 
>> Other than that we experienced that the mail and activation libraries are quite intertwined and our best experience with those was to actually have a single bundle combining both bundles. This way, they have access to their internals, which they seem to expect...
>> 
>> But then, some bundle must provide the "application/atom+xml" data handler and I am not sure whether this is part of either the javax.mail or javax.activation libraries ....
>> 
>> Regards
>> Felix
>> 
>> Am 10.10.2012 um 03:16 schrieb John King:
>> 
>>> Folks,
>>> 
>>> I have recently started working on the Opencast Matterhorn project which
>>> involves capturing, trans-coding and distribution of digital video files.
>>> 
>>> One of the services we distribute to is YouTube.  As I understand it,
>>> the Matterhorn module that does this worked fine in Felix 3 but now
>>> fails in Felix 4.
>>> 
>>> We are running the application with Java 1.6.
>>> 
>>> The stack trace for this error:
>>> 17:08:44 WARN (YoutubeDistributionService:418) - Error distributing
>>> http://localhost:8080/files/mediapackage/a78f4054-9b79-4d87-b938-08547d495a9d/49a4dfe4-91bf-4450-b186-e0d8f24a53cd/test3.mp4
>>> 
>>> javax.activation.UnsupportedDataTypeException: application/atom+xml
>>>     at javax.activation.DataHandler.writeTo(DataHandler.java:75)
>>>     at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
>>>     at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
>>>     at
>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
>>>     at
>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
>>>     at com.google.gdata.client.Service.writeRequestData(Service.java:2071)
>>>     at
>>> com.google.gdata.client.media.MediaService.insert(MediaService.java:398)
>>>     at
>>> org.opencastproject.distribution.youtube.YoutubeDistributionService.distribute(YoutubeDistributionService.java:344)
>>>     .......................
>>> 
>>> Obviously the google gdata code, specifically gdata-media, is in play
>>> here along with javax.mail and javax.activation.
>>> 
>>> In the Felix 4 context we are using the following javax.mail and
>>> javax.activation bundles from Geronimo
>>> geronimo-activation_1.1_spec-1.1.jar and
>>> geronimo-javamail_1.4_mail-1.8.3.jar
>>> 
>>> Googling for this error, I found the following thread that discusses a
>>> problem that seems closely analogous to our problem,
>>> http://forum.springsource.org/archive/index.php/t-69180.html
>>> 
>>> The container in that discussion is the Spring dm Server but the error
>>> and likely cause seem relevant.  See especially the posting on Mar 21st,
>>> 2009 by oleg.zhurakousky.
>>> 
>>> Note particularly that the root cause is likely not an
>>> UnsupportedDataTypeException but a ClassNotFoundException for one of the
>>> classes in com.sun.mail.handlers that becomes the
>>> UnsupportedDataTypeException. Quoting the thread " This results in the
>>> DataContentHandler for your MIME type being null which is the root of
>>> your exception. "
>>> 
>>> I have tried explicitly importing the Geronimo javax.mail and
>>> javax.activation bundles using <Import-Bundle> and <Embed-Dependency> as
>>> an analogous fix to that in the Spring thread but that doesn't fix our
>>> problem.  I've tried several other javax.mail and javax.activation
>>> bundles e.g. from Spring but with no luck.  Manipulating the
>>> ClassLoaders as discussed there doesn't seem possible as the error is
>>> being generated in the gdata code and, in any event, that approach seems
>>> evil.
>>> 
>>> Any pointers or suggestions are most welcome.  For example, should I
>>> explicitly import com.sun.mail.handlers.* even though neither our code
>>> nor the gdata code calls them directly?  That also seems evil to me.
>>> 
>>> I've looked at all the imports in the system/console/bundles UI for our
>>> bundle and the Geronimo bundles and everything appears consistent namely
>>> that our YouTube bundle is importing the javax.mail packages from the
>>> Geronimo bundle.  Also the Geronimo mail bundle is importing
>>> javax.activation bundle from the Geronimo mail bundle.
>>> 
>>> Relevant sections of the Felix 4 config for our app are:
>>> 
>>> # Packages 'javax.xml.stream, javax.xml.stream.events,
>>> javax.xml.stream.util' removed --> provided by ServiceMix STAX bundle
>>> # Packages 'javax.mail, javax.mail.internet' removed --> provided by
>>> Geronimo JavaMail bundle
>>> org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0,org.osgi.framework.hooks.bundle;version=1.0.0,org.osgi.framework.hooks.resolver;version=1.0.0,org.osgi.framework.hooks.service;version=1.1.0,org.osgi.framework.hooks.weaving;version=1.0.0,org.osgi.framework.launch;version=1.0.0,org.osgi.framework.startlevel;version=1.0.0,org.osgi.framework.wiring;version=1.0.0,org.osgi.service.packageadmin;version=1.2.0,org.osgi.service.startlevel;version=1.1.0,org.osgi.service.url;version=1.0.0,org.osgi.util.tracker;version=1.5.0,javax.accessibility,
>>> javax.activity, javax.annotation, javax.annotation.processing,
>>> javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio,
>>> javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp,
>>> javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream,
>>> javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element,
>>> javax.lang.model.type, javax.lang.model.util, javax.management,
>>> javax.management.loading, javax.management.modelmbean,
>>> javax.management.monitor, javax.management.openmbean,
>>> javax.management.relation, javax.management.remote,
>>> javax.management.remote.rmi, javax.management.timer, javax.naming,
>>> javax.naming.directory, javax.naming.event, javax.naming.ldap,
>>> javax.naming.spi, javax.net, javax.net.ssl, javax.print,
>>> javax.print.attribute, javax.print.attribute.standard,
>>> javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl,
>>> javax.script, javax.security.auth, javax.security.auth.callback,
>>> javax.security.auth.kerberos, javax.security.auth.login,
>>> javax.security.auth.spi, javax.security.auth.x500, javax.security.cert,
>>> javax.security.sasl, javax.sound.midi, javax.sound.midi.spi,
>>> javax.sound.sampled, javax.sound.sampled.spi, javax.sql,
>>> javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi,
>>> javax.swing, javax.swing.border, javax.swing.colorchooser,
>>> javax.swing.event, javax.swing.filechooser, javax.swing.plaf,
>>> javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi,
>>> javax.swing.plaf.synth, javax.swing.table, javax.swing.text,
>>> javax.swing.text.html, javax.swing.text.html.parser,
>>> javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools,
>>> javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind,
>>> javax.xml.bind.annotation, javax.xml.bind.annotation.adapters,
>>> javax.xml.bind.attachment, javax.xml.bind.helpers, javax.xml.bind.util,
>>> javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig,
>>> javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo,
>>> javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace,
>>> javax.xml.soap, javax.xml.transform, javax.xml.transform.dom,
>>> javax.xml.transform.sax, javax.xml.transform.stax,
>>> javax.xml.transform.stream, javax.xml.validation, javax.xml.ws,
>>> javax.xml.ws.handler, javax.xml.ws.handler.soap, javax.xml.ws.http,
>>> javax.xml.ws.soap, javax.xml.ws.spi, javax.xml.ws.wsaddressing1,
>>> javax.xml.xpath, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3,
>>> org.omg.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage,
>>> org.omg.CORBA.ORBPackage, org.omg.CORBA.portable,
>>> org.omg.CORBA.TypeCodePackage, org.omg.CosNaming,
>>> org.omg.CosNaming.NamingContextExtPackage,
>>> org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic,
>>> org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage,
>>> org.omg.DynamicAny.DynAnyPackage, org.omg.IOP,
>>> org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage,
>>> org.omg.Messaging, org.omg.PortableInterceptor,
>>> org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer,
>>> org.omg.PortableServer.CurrentPackage,
>>> org.omg.PortableServer.POAManagerPackage,
>>> org.omg.PortableServer.POAPackage, org.omg.PortableServer.portable,
>>> org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext,
>>> org.omg.stub.java.rmi
>>> 
>>> # specs
>>> felix.auto.start.2= \
>>>  .......
>>>  file:${felix.home}/lib/ext/geronimo-activation_1.1_spec-1.1.jar \
>>> 
>>> # libraries
>>> felix.auto.start.3= \
>>>  ......
>>>  file:${felix.home}/lib/ext/geronimo-javamail_1.4_mail-1.8.3.jar \
>>>  file:${felix.home}/lib/ext/jolokia-osgi-1.0.4.jar
>>> 
>>> 
>>> Relevant sections of the pom.xml for our YouTubeDistribution module
>>> looks like:
>>>     <!-- Youtube delivery dependencies -->
>>> 
>>>     <dependency>
>>>       <groupId>gdata</groupId>
>>>       <artifactId>gdata-client</artifactId>
>>>       <version>1.0</version>
>>>       <classifier>1.45.0</classifier>
>>>     </dependency>
>>> 
>>>     <dependency>
>>>       <groupId>gdata</groupId>
>>>       <artifactId>gdata-core</artifactId>
>>>       <version>1.0</version>
>>>       <classifier>1.45.0</classifier>
>>>     </dependency>
>>> 
>>>     <dependency>
>>>       <groupId>gdata</groupId>
>>>       <artifactId>gdata-media</artifactId>
>>>       <version>1.0</version>
>>>       <classifier>1.45.0</classifier>
>>>     </dependency>
>>> 
>>>     <dependency>
>>>       <groupId>gdata</groupId>
>>>       <artifactId>gdata-youtube</artifactId>
>>>       <version>2.0</version>
>>>       <classifier>1.45.0</classifier>
>>>     </dependency>
>>> 
>>>     <dependency>
>>>       <groupId>gdata</groupId>
>>>       <artifactId>gdata-youtube-meta</artifactId>
>>>       <version>2.0</version>
>>>       <classifier>1.45.0</classifier>
>>>     </dependency>
>>> ..........................
>>>       <plugin>
>>>         <groupId>org.apache.felix</groupId>
>>>         <artifactId>maven-bundle-plugin</artifactId>
>>>         <version>2.0.1</version>
>>>         <extensions>true</extensions>
>>>         <configuration>
>>>           <instructions>
>>>             <Bundle-SymbolicName> ${project.artifactId}
>>> </Bundle-SymbolicName>
>>>             <Private-Package>
>>>               com.google.*;-split-package:=merge-first,
>>>               org.jdom.*,
>>>               flexjson,
>>>             </Private-Package>
>>>             <Import-Package>
>>>               *;resolution:=optional
>>>             </Import-Package>
>>>             <Export-Package>
>>> org.opencastproject.deliver.youtube.*;version=${project.version},
>>> org.opencastproject.distribution.youtube.*;version=${project.version}
>>>             </Export-Package>
>>>             <Embed-Dependency>
>>>               flexjson;inline=true,
>>>               gdata-client;inline=true,
>>>               gdata-core;inline=true,
>>>               gdata-media;inline=true,
>>>               gdata-youtube;inline=true,
>>>               google-collections;inline=true,
>>>             </Embed-Dependency>
>>>             <Service-Component>
>>>               OSGI-INF/distribution-service-youtube.xml
>>>             </Service-Component>
>>>           </instructions>
>>>         </configuration>
>>>       </plugin>
>>> 
>>> 
>>> --
>>> John King
>>> Applications Programmer
>>> Learning Systems Group
>>> Educational Technology Services
>>> 9 Dwinelle Hall - Mail
>>> 117 Dwinelle Hall - Office
>>> University of California
>>> Berkeley, CA 94720-2535
>>> Phone: 510-529-5074
>>> Email: johnk@media.berkeley.edu
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>> 
> 
> 
> --
> John King
> Applications Programmer
> Learning Systems Group
> Educational Technology Services
> 9 Dwinelle Hall - Mail
> 117 Dwinelle Hall - Office
> University of California
> Berkeley, CA 94720-2535
> Phone: 510-529-5074
> Email: johnk@media.berkeley.edu
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: javax.mail and javax.activation issue in Felix 4 causes upload of video file to fail

Posted by John King <jo...@media.berkeley.edu>.
Hi,

Thanks for the recommendation.  Will try forthwith.

Do you happen to know of any publicly accessible Maven or OSGI 
Repositories that might have that combined bundle already?

John K

On 10/9/12 11:54 PM, Felix Meschberger wrote:
> Hi,
>
> You already removed the javax.mail and javax.activation from the system packages in the felix config. This is fine.
>
> Other than that we experienced that the mail and activation libraries are quite intertwined and our best experience with those was to actually have a single bundle combining both bundles. This way, they have access to their internals, which they seem to expect...
>
> But then, some bundle must provide the "application/atom+xml" data handler and I am not sure whether this is part of either the javax.mail or javax.activation libraries ....
>
> Regards
> Felix
>
> Am 10.10.2012 um 03:16 schrieb John King:
>
>> Folks,
>>
>> I have recently started working on the Opencast Matterhorn project which
>> involves capturing, trans-coding and distribution of digital video files.
>>
>> One of the services we distribute to is YouTube.  As I understand it,
>> the Matterhorn module that does this worked fine in Felix 3 but now
>> fails in Felix 4.
>>
>> We are running the application with Java 1.6.
>>
>> The stack trace for this error:
>> 17:08:44 WARN (YoutubeDistributionService:418) - Error distributing
>> http://localhost:8080/files/mediapackage/a78f4054-9b79-4d87-b938-08547d495a9d/49a4dfe4-91bf-4450-b186-e0d8f24a53cd/test3.mp4
>>
>> javax.activation.UnsupportedDataTypeException: application/atom+xml
>>      at javax.activation.DataHandler.writeTo(DataHandler.java:75)
>>      at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
>>      at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
>>      at
>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
>>      at
>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
>>      at com.google.gdata.client.Service.writeRequestData(Service.java:2071)
>>      at
>> com.google.gdata.client.media.MediaService.insert(MediaService.java:398)
>>      at
>> org.opencastproject.distribution.youtube.YoutubeDistributionService.distribute(YoutubeDistributionService.java:344)
>>      .......................
>>
>> Obviously the google gdata code, specifically gdata-media, is in play
>> here along with javax.mail and javax.activation.
>>
>> In the Felix 4 context we are using the following javax.mail and
>> javax.activation bundles from Geronimo
>> geronimo-activation_1.1_spec-1.1.jar and
>> geronimo-javamail_1.4_mail-1.8.3.jar
>>
>> Googling for this error, I found the following thread that discusses a
>> problem that seems closely analogous to our problem,
>> http://forum.springsource.org/archive/index.php/t-69180.html
>>
>> The container in that discussion is the Spring dm Server but the error
>> and likely cause seem relevant.  See especially the posting on Mar 21st,
>> 2009 by oleg.zhurakousky.
>>
>> Note particularly that the root cause is likely not an
>> UnsupportedDataTypeException but a ClassNotFoundException for one of the
>> classes in com.sun.mail.handlers that becomes the
>> UnsupportedDataTypeException. Quoting the thread " This results in the
>> DataContentHandler for your MIME type being null which is the root of
>> your exception. "
>>
>> I have tried explicitly importing the Geronimo javax.mail and
>> javax.activation bundles using <Import-Bundle> and <Embed-Dependency> as
>> an analogous fix to that in the Spring thread but that doesn't fix our
>> problem.  I've tried several other javax.mail and javax.activation
>> bundles e.g. from Spring but with no luck.  Manipulating the
>> ClassLoaders as discussed there doesn't seem possible as the error is
>> being generated in the gdata code and, in any event, that approach seems
>> evil.
>>
>> Any pointers or suggestions are most welcome.  For example, should I
>> explicitly import com.sun.mail.handlers.* even though neither our code
>> nor the gdata code calls them directly?  That also seems evil to me.
>>
>> I've looked at all the imports in the system/console/bundles UI for our
>> bundle and the Geronimo bundles and everything appears consistent namely
>> that our YouTube bundle is importing the javax.mail packages from the
>> Geronimo bundle.  Also the Geronimo mail bundle is importing
>> javax.activation bundle from the Geronimo mail bundle.
>>
>> Relevant sections of the Felix 4 config for our app are:
>>
>> # Packages 'javax.xml.stream, javax.xml.stream.events,
>> javax.xml.stream.util' removed --> provided by ServiceMix STAX bundle
>> # Packages 'javax.mail, javax.mail.internet' removed --> provided by
>> Geronimo JavaMail bundle
>> org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0,org.osgi.framework.hooks.bundle;version=1.0.0,org.osgi.framework.hooks.resolver;version=1.0.0,org.osgi.framework.hooks.service;version=1.1.0,org.osgi.framework.hooks.weaving;version=1.0.0,org.osgi.framework.launch;version=1.0.0,org.osgi.framework.startlevel;version=1.0.0,org.osgi.framework.wiring;version=1.0.0,org.osgi.service.packageadmin;version=1.2.0,org.osgi.service.startlevel;version=1.1.0,org.osgi.service.url;version=1.0.0,org.osgi.util.tracker;version=1.5.0,javax.accessibility,
>> javax.activity, javax.annotation, javax.annotation.processing,
>> javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio,
>> javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp,
>> javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream,
>> javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element,
>> javax.lang.model.type, javax.lang.model.util, javax.management,
>> javax.management.loading, javax.management.modelmbean,
>> javax.management.monitor, javax.management.openmbean,
>> javax.management.relation, javax.management.remote,
>> javax.management.remote.rmi, javax.management.timer, javax.naming,
>> javax.naming.directory, javax.naming.event, javax.naming.ldap,
>> javax.naming.spi, javax.net, javax.net.ssl, javax.print,
>> javax.print.attribute, javax.print.attribute.standard,
>> javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl,
>> javax.script, javax.security.auth, javax.security.auth.callback,
>> javax.security.auth.kerberos, javax.security.auth.login,
>> javax.security.auth.spi, javax.security.auth.x500, javax.security.cert,
>> javax.security.sasl, javax.sound.midi, javax.sound.midi.spi,
>> javax.sound.sampled, javax.sound.sampled.spi, javax.sql,
>> javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi,
>> javax.swing, javax.swing.border, javax.swing.colorchooser,
>> javax.swing.event, javax.swing.filechooser, javax.swing.plaf,
>> javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi,
>> javax.swing.plaf.synth, javax.swing.table, javax.swing.text,
>> javax.swing.text.html, javax.swing.text.html.parser,
>> javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools,
>> javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind,
>> javax.xml.bind.annotation, javax.xml.bind.annotation.adapters,
>> javax.xml.bind.attachment, javax.xml.bind.helpers, javax.xml.bind.util,
>> javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig,
>> javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo,
>> javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace,
>> javax.xml.soap, javax.xml.transform, javax.xml.transform.dom,
>> javax.xml.transform.sax, javax.xml.transform.stax,
>> javax.xml.transform.stream, javax.xml.validation, javax.xml.ws,
>> javax.xml.ws.handler, javax.xml.ws.handler.soap, javax.xml.ws.http,
>> javax.xml.ws.soap, javax.xml.ws.spi, javax.xml.ws.wsaddressing1,
>> javax.xml.xpath, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3,
>> org.omg.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage,
>> org.omg.CORBA.ORBPackage, org.omg.CORBA.portable,
>> org.omg.CORBA.TypeCodePackage, org.omg.CosNaming,
>> org.omg.CosNaming.NamingContextExtPackage,
>> org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic,
>> org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage,
>> org.omg.DynamicAny.DynAnyPackage, org.omg.IOP,
>> org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage,
>> org.omg.Messaging, org.omg.PortableInterceptor,
>> org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer,
>> org.omg.PortableServer.CurrentPackage,
>> org.omg.PortableServer.POAManagerPackage,
>> org.omg.PortableServer.POAPackage, org.omg.PortableServer.portable,
>> org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext,
>> org.omg.stub.java.rmi
>>
>> # specs
>> felix.auto.start.2= \
>>   .......
>>   file:${felix.home}/lib/ext/geronimo-activation_1.1_spec-1.1.jar \
>>
>> # libraries
>> felix.auto.start.3= \
>>   ......
>>   file:${felix.home}/lib/ext/geronimo-javamail_1.4_mail-1.8.3.jar \
>>   file:${felix.home}/lib/ext/jolokia-osgi-1.0.4.jar
>>
>>
>> Relevant sections of the pom.xml for our YouTubeDistribution module
>> looks like:
>>      <!-- Youtube delivery dependencies -->
>>
>>      <dependency>
>>        <groupId>gdata</groupId>
>>        <artifactId>gdata-client</artifactId>
>>        <version>1.0</version>
>>        <classifier>1.45.0</classifier>
>>      </dependency>
>>
>>      <dependency>
>>        <groupId>gdata</groupId>
>>        <artifactId>gdata-core</artifactId>
>>        <version>1.0</version>
>>        <classifier>1.45.0</classifier>
>>      </dependency>
>>
>>      <dependency>
>>        <groupId>gdata</groupId>
>>        <artifactId>gdata-media</artifactId>
>>        <version>1.0</version>
>>        <classifier>1.45.0</classifier>
>>      </dependency>
>>
>>      <dependency>
>>        <groupId>gdata</groupId>
>>        <artifactId>gdata-youtube</artifactId>
>>        <version>2.0</version>
>>        <classifier>1.45.0</classifier>
>>      </dependency>
>>
>>      <dependency>
>>        <groupId>gdata</groupId>
>>        <artifactId>gdata-youtube-meta</artifactId>
>>        <version>2.0</version>
>>        <classifier>1.45.0</classifier>
>>      </dependency>
>> ..........................
>>        <plugin>
>>          <groupId>org.apache.felix</groupId>
>>          <artifactId>maven-bundle-plugin</artifactId>
>>          <version>2.0.1</version>
>>          <extensions>true</extensions>
>>          <configuration>
>>            <instructions>
>>              <Bundle-SymbolicName> ${project.artifactId}
>> </Bundle-SymbolicName>
>>              <Private-Package>
>>                com.google.*;-split-package:=merge-first,
>>                org.jdom.*,
>>                flexjson,
>>              </Private-Package>
>>              <Import-Package>
>>                *;resolution:=optional
>>              </Import-Package>
>>              <Export-Package>
>> org.opencastproject.deliver.youtube.*;version=${project.version},
>> org.opencastproject.distribution.youtube.*;version=${project.version}
>>              </Export-Package>
>>              <Embed-Dependency>
>>                flexjson;inline=true,
>>                gdata-client;inline=true,
>>                gdata-core;inline=true,
>>                gdata-media;inline=true,
>>                gdata-youtube;inline=true,
>>                google-collections;inline=true,
>>              </Embed-Dependency>
>>              <Service-Component>
>>                OSGI-INF/distribution-service-youtube.xml
>>              </Service-Component>
>>            </instructions>
>>          </configuration>
>>        </plugin>
>>
>>
>> -- 
>> John King
>> Applications Programmer
>> Learning Systems Group
>> Educational Technology Services
>> 9 Dwinelle Hall - Mail
>> 117 Dwinelle Hall - Office
>> University of California
>> Berkeley, CA 94720-2535
>> Phone: 510-529-5074
>> Email: johnk@media.berkeley.edu
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>


-- 
John King
Applications Programmer
Learning Systems Group
Educational Technology Services
9 Dwinelle Hall - Mail
117 Dwinelle Hall - Office
University of California
Berkeley, CA 94720-2535
Phone: 510-529-5074
Email: johnk@media.berkeley.edu


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: javax.mail and javax.activation issue in Felix 4 causes upload of video file to fail

Posted by Felix Meschberger <fm...@adobe.com>.
Hi,

You already removed the javax.mail and javax.activation from the system packages in the felix config. This is fine.

Other than that we experienced that the mail and activation libraries are quite intertwined and our best experience with those was to actually have a single bundle combining both bundles. This way, they have access to their internals, which they seem to expect...

But then, some bundle must provide the "application/atom+xml" data handler and I am not sure whether this is part of either the javax.mail or javax.activation libraries ....

Regards
Felix

Am 10.10.2012 um 03:16 schrieb John King:

> Folks,
> 
> I have recently started working on the Opencast Matterhorn project which 
> involves capturing, trans-coding and distribution of digital video files.
> 
> One of the services we distribute to is YouTube.  As I understand it, 
> the Matterhorn module that does this worked fine in Felix 3 but now 
> fails in Felix 4.
> 
> We are running the application with Java 1.6.
> 
> The stack trace for this error:
> 17:08:44 WARN (YoutubeDistributionService:418) - Error distributing 
> http://localhost:8080/files/mediapackage/a78f4054-9b79-4d87-b938-08547d495a9d/49a4dfe4-91bf-4450-b186-e0d8f24a53cd/test3.mp4 
> 
> javax.activation.UnsupportedDataTypeException: application/atom+xml
>     at javax.activation.DataHandler.writeTo(DataHandler.java:75)
>     at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
>     at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
>     at 
> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
>     at 
> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
>     at com.google.gdata.client.Service.writeRequestData(Service.java:2071)
>     at 
> com.google.gdata.client.media.MediaService.insert(MediaService.java:398)
>     at 
> org.opencastproject.distribution.youtube.YoutubeDistributionService.distribute(YoutubeDistributionService.java:344)
>     .......................
> 
> Obviously the google gdata code, specifically gdata-media, is in play 
> here along with javax.mail and javax.activation.
> 
> In the Felix 4 context we are using the following javax.mail and 
> javax.activation bundles from Geronimo
> geronimo-activation_1.1_spec-1.1.jar and 
> geronimo-javamail_1.4_mail-1.8.3.jar
> 
> Googling for this error, I found the following thread that discusses a 
> problem that seems closely analogous to our problem,
> http://forum.springsource.org/archive/index.php/t-69180.html
> 
> The container in that discussion is the Spring dm Server but the error 
> and likely cause seem relevant.  See especially the posting on Mar 21st, 
> 2009 by oleg.zhurakousky.
> 
> Note particularly that the root cause is likely not an 
> UnsupportedDataTypeException but a ClassNotFoundException for one of the 
> classes in com.sun.mail.handlers that becomes the 
> UnsupportedDataTypeException. Quoting the thread " This results in the 
> DataContentHandler for your MIME type being null which is the root of 
> your exception. "
> 
> I have tried explicitly importing the Geronimo javax.mail and 
> javax.activation bundles using <Import-Bundle> and <Embed-Dependency> as 
> an analogous fix to that in the Spring thread but that doesn't fix our 
> problem.  I've tried several other javax.mail and javax.activation 
> bundles e.g. from Spring but with no luck.  Manipulating the 
> ClassLoaders as discussed there doesn't seem possible as the error is 
> being generated in the gdata code and, in any event, that approach seems 
> evil.
> 
> Any pointers or suggestions are most welcome.  For example, should I 
> explicitly import com.sun.mail.handlers.* even though neither our code 
> nor the gdata code calls them directly?  That also seems evil to me.
> 
> I've looked at all the imports in the system/console/bundles UI for our 
> bundle and the Geronimo bundles and everything appears consistent namely 
> that our YouTube bundle is importing the javax.mail packages from the 
> Geronimo bundle.  Also the Geronimo mail bundle is importing 
> javax.activation bundle from the Geronimo mail bundle.
> 
> Relevant sections of the Felix 4 config for our app are:
> 
> # Packages 'javax.xml.stream, javax.xml.stream.events, 
> javax.xml.stream.util' removed --> provided by ServiceMix STAX bundle
> # Packages 'javax.mail, javax.mail.internet' removed --> provided by 
> Geronimo JavaMail bundle
> org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0,org.osgi.framework.hooks.bundle;version=1.0.0,org.osgi.framework.hooks.resolver;version=1.0.0,org.osgi.framework.hooks.service;version=1.1.0,org.osgi.framework.hooks.weaving;version=1.0.0,org.osgi.framework.launch;version=1.0.0,org.osgi.framework.startlevel;version=1.0.0,org.osgi.framework.wiring;version=1.0.0,org.osgi.service.packageadmin;version=1.2.0,org.osgi.service.startlevel;version=1.1.0,org.osgi.service.url;version=1.0.0,org.osgi.util.tracker;version=1.5.0,javax.accessibility, 
> javax.activity, javax.annotation, javax.annotation.processing, 
> javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio, 
> javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp, 
> javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream, 
> javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element, 
> javax.lang.model.type, javax.lang.model.util, javax.management, 
> javax.management.loading, javax.management.modelmbean, 
> javax.management.monitor, javax.management.openmbean, 
> javax.management.relation, javax.management.remote, 
> javax.management.remote.rmi, javax.management.timer, javax.naming, 
> javax.naming.directory, javax.naming.event, javax.naming.ldap, 
> javax.naming.spi, javax.net, javax.net.ssl, javax.print, 
> javax.print.attribute, javax.print.attribute.standard, 
> javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl, 
> javax.script, javax.security.auth, javax.security.auth.callback, 
> javax.security.auth.kerberos, javax.security.auth.login, 
> javax.security.auth.spi, javax.security.auth.x500, javax.security.cert, 
> javax.security.sasl, javax.sound.midi, javax.sound.midi.spi, 
> javax.sound.sampled, javax.sound.sampled.spi, javax.sql, 
> javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi, 
> javax.swing, javax.swing.border, javax.swing.colorchooser, 
> javax.swing.event, javax.swing.filechooser, javax.swing.plaf, 
> javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi, 
> javax.swing.plaf.synth, javax.swing.table, javax.swing.text, 
> javax.swing.text.html, javax.swing.text.html.parser, 
> javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools, 
> javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind, 
> javax.xml.bind.annotation, javax.xml.bind.annotation.adapters, 
> javax.xml.bind.attachment, javax.xml.bind.helpers, javax.xml.bind.util, 
> javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig, 
> javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo, 
> javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace, 
> javax.xml.soap, javax.xml.transform, javax.xml.transform.dom, 
> javax.xml.transform.sax, javax.xml.transform.stax, 
> javax.xml.transform.stream, javax.xml.validation, javax.xml.ws, 
> javax.xml.ws.handler, javax.xml.ws.handler.soap, javax.xml.ws.http, 
> javax.xml.ws.soap, javax.xml.ws.spi, javax.xml.ws.wsaddressing1, 
> javax.xml.xpath, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3, 
> org.omg.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage, 
> org.omg.CORBA.ORBPackage, org.omg.CORBA.portable, 
> org.omg.CORBA.TypeCodePackage, org.omg.CosNaming, 
> org.omg.CosNaming.NamingContextExtPackage, 
> org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic, 
> org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage, 
> org.omg.DynamicAny.DynAnyPackage, org.omg.IOP, 
> org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage, 
> org.omg.Messaging, org.omg.PortableInterceptor, 
> org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer, 
> org.omg.PortableServer.CurrentPackage, 
> org.omg.PortableServer.POAManagerPackage, 
> org.omg.PortableServer.POAPackage, org.omg.PortableServer.portable, 
> org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext, 
> org.omg.stub.java.rmi
> 
> # specs
> felix.auto.start.2= \
>  .......
>  file:${felix.home}/lib/ext/geronimo-activation_1.1_spec-1.1.jar \
> 
> # libraries
> felix.auto.start.3= \
>  ......
>  file:${felix.home}/lib/ext/geronimo-javamail_1.4_mail-1.8.3.jar \
>  file:${felix.home}/lib/ext/jolokia-osgi-1.0.4.jar
> 
> 
> Relevant sections of the pom.xml for our YouTubeDistribution module 
> looks like:
>     <!-- Youtube delivery dependencies -->
> 
>     <dependency>
>       <groupId>gdata</groupId>
>       <artifactId>gdata-client</artifactId>
>       <version>1.0</version>
>       <classifier>1.45.0</classifier>
>     </dependency>
> 
>     <dependency>
>       <groupId>gdata</groupId>
>       <artifactId>gdata-core</artifactId>
>       <version>1.0</version>
>       <classifier>1.45.0</classifier>
>     </dependency>
> 
>     <dependency>
>       <groupId>gdata</groupId>
>       <artifactId>gdata-media</artifactId>
>       <version>1.0</version>
>       <classifier>1.45.0</classifier>
>     </dependency>
> 
>     <dependency>
>       <groupId>gdata</groupId>
>       <artifactId>gdata-youtube</artifactId>
>       <version>2.0</version>
>       <classifier>1.45.0</classifier>
>     </dependency>
> 
>     <dependency>
>       <groupId>gdata</groupId>
>       <artifactId>gdata-youtube-meta</artifactId>
>       <version>2.0</version>
>       <classifier>1.45.0</classifier>
>     </dependency>
> ..........................
>       <plugin>
>         <groupId>org.apache.felix</groupId>
>         <artifactId>maven-bundle-plugin</artifactId>
>         <version>2.0.1</version>
>         <extensions>true</extensions>
>         <configuration>
>           <instructions>
>             <Bundle-SymbolicName> ${project.artifactId} 
> </Bundle-SymbolicName>
>             <Private-Package>
>               com.google.*;-split-package:=merge-first,
>               org.jdom.*,
>               flexjson,
>             </Private-Package>
>             <Import-Package>
>               *;resolution:=optional
>             </Import-Package>
>             <Export-Package>
> org.opencastproject.deliver.youtube.*;version=${project.version},
> org.opencastproject.distribution.youtube.*;version=${project.version}
>             </Export-Package>
>             <Embed-Dependency>
>               flexjson;inline=true,
>               gdata-client;inline=true,
>               gdata-core;inline=true,
>               gdata-media;inline=true,
>               gdata-youtube;inline=true,
>               google-collections;inline=true,
>             </Embed-Dependency>
>             <Service-Component>
>               OSGI-INF/distribution-service-youtube.xml
>             </Service-Component>
>           </instructions>
>         </configuration>
>       </plugin>
> 
> 
> -- 
> John King
> Applications Programmer
> Learning Systems Group
> Educational Technology Services
> 9 Dwinelle Hall - Mail
> 117 Dwinelle Hall - Office
> University of California
> Berkeley, CA 94720-2535
> Phone: 510-529-5074
> Email: johnk@media.berkeley.edu
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org