To clarify our situation a bit, the activation bundle finds its own 
META-INF/mailcap.defaults but is unable to see META-INF/mailcap in the javamail 
bundle because of the separation of classloaders.  Given this needed 
relationship, I believe we've run out of options except to put activation and 
javamail in the same bundle.

We also have the Felix commons-email bundle deployed but it only brings along 
org/apache/commons/mail/ classes.  The pom for that artifact explicitly 
excludes javax.mail and javax.activation.


----- "Carsten Ziegeler" <cziege...@apache.org> wrote:

> I think we faced this problem when we just bundle mail and activation
> a
> long time ago. I don't remember the details, but the bundle at Apache
> Felix Commons:
> http://svn.apache.org/repos/asf/felix/trunk/commons/mail
> 
> should already contain everything you need and work :)
> 
> HTH
> Carsten
> 
> Ian Boston wrote:
> > The problem is:
> > 
> > we have
> > javax.mail  in bundle A as mail.jar
> > javax.activation in bundle B as activation.jar
> > 
> > These jars have no OSGi activation but just export javax.mail.* and
> > javax.activation.* respectively.
> > 
> > and a 3rd bundle that tries to send an email encoded as plain/text.
> > 
> > This causes, the exception below since META-INF/mailcap.default
> inside
> > activation.jar is not found.
> > 
> > We (I should say Carl Hall as he can take all the investigation
> credit)
> > think that this would normally have been loaded when a static class
> > inside mail was loaded, perhaps with a context classloader (not
> sure
> > about that).
> > 
> > I think that one work around will be to force the static into
> existence
> > inside the appropriate bundle probably activation, but I wondered
> if
> > there is a standard way to load resources cross bundle in Felix ?
> > 
> > Ian
> > 
> > 
> > Caused by: javax.activation.UnsupportedDataTypeException: no object
> DCH
> > for MIME type text/plain
> >        at
> >
> javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:885)
> >        at
> javax.activation.DataHandler.writeTo(DataHandler.java:316)
> >        at
> javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350)
> >        at
> javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683)
> >        at
> > com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:585)
> >        ... 13 more
> > 
> > On 26 Oct 2009, at 22:09, Karl Pauls wrote:
> > 
> >> There is no such thing as buddy classloading in OSGi and we don't
> have
> >> something like this in the felix framework either. Maybe you can
> >> explain a bit about what the problem is exactly and we can see
> whether
> >> there is a different solution...
> >>
> >> regards,
> >>
> >> Karl
> >>
> >> On Mon, Oct 26, 2009 at 10:50 PM, Ian Boston <i...@tfd.co.uk>
> wrote:
> >>> Hi,
> >>> We have a situation using javax.mail and javax.activation as
> bundles in
> >>> Sling where the resources (META-INF/mailcap* ) inside the
> activation
> >>> jar are
> >>> not visible.
> >>>
> >>> I understand from others that if the OSGi container was Equinox,
> >>> Eclipse-BuddyPolicy et al would fix the problem (ie buddy
> >>> classloading). Is
> >>> there a way to achieve the same thing in Sling with Felix or are
> we
> >>> going to
> >>> have to start intercepting the context classloader which comes in
> >>> somewhere?
> >>>
> >>> Ian
> >>>
> >>
> >>
> >>
> >> -- 
> >> Karl Pauls
> >> karlpa...@gmail.com
> > 
> > 
> 
> 
> -- 
> Carsten Ziegeler
> cziege...@apache.org

Reply via email to