Hi Andrei,

Thanks for the update. And it's what we talked about in a previous email.

What do you think about removing activation from jre.properties and
adding activation spec from karaf-spec feature ? (it's what I proposed
previously).
It should work in almost all cases.

Regards
JB

On Thu, Feb 10, 2022 at 2:35 PM Andrei Petru Mura <mapand...@gmail.com> wrote:
>
> After some investigation, I managed to make this work. I'll mentioned below a 
> few points which I had to perform.
> First of all, I switched to Karaf 4.3.6. But If you have to stick with Karaf 
> 4.3.3, you have only to skip John Taylor's comment bellow.
> In a different thread, entitled "reading mail attachments", John Taylor wrote:
>
> With either 4.3.5 or 4.3.6  I believe javax.activation was included in the 
> jre-9 export in jre.properties
> That pulls in the com.sun.activation/jakarta.activation bundle I believe and 
> that doesn't seem to work with the camel attachments processing.
>
> What I did to resolve it is comment that out in jre.properties and pull in 
> the servicemix activation package.
>
> jre.properties
> jre-9= \
>  ${jre-base}, \
>  javax.accessibility, \
>  javax.activity, \
>  javax.annotation;version="1.3", \
>  javax.annotation.processing;version="1.0", \
>  #javax.activation;version="1.2.1", \
>  javax.crypto, \
> . . .
>
> install -s 
> mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.2.1/1.2.1_3
>
> More than this, I would add that I installed the servicemix activation bundle 
> to start with level 10, and before all other installations. I observed that 
> the installation order has an impact on this too.
> Afterwards, everything seems to work fine.
>
> All the best,
> Andrei Mura
>
> On Thu, Feb 3, 2022 at 4:29 PM Andrei Petru Mura <mapand...@gmail.com> wrote:
>>
>> Ok. I installed the one provided by eu.agno3.jcifs, but didn't fix the issue.
>>
>> Andrei Mura
>>
>> On Thu, Feb 3, 2022 at 4:26 PM Andrei Petru Mura <mapand...@gmail.com> wrote:
>>>
>>> Hmmm... Can you give me the group ID too please? Thanks
>>>
>>> Andrei
>>>
>>> On Thu, Feb 3, 2022 at 4:12 PM Jean-Baptiste Onofré <j...@nanthrax.net> 
>>> wrote:
>>>>
>>>> Hi
>>>>
>>>> I know that, depending of the use, bouncycastle 1.69 needs
>>>> jcifs-ng/2.1.7 (as it introduced a breaking change).
>>>>
>>>> But probably not related to your issue (the update), but possible it's
>>>> the same issue (due to bc breaking change).
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> On 03/02/2022 14:30, Andrei Petru Mura wrote:
>>>> > Hmm... Which ones? I upgraded many others... Including java mail. I use
>>>> > jakarta.mail 1.6.7 now.
>>>> >
>>>> > Andrei M.
>>>> >
>>>> > On Thu, Feb 3, 2022 at 3:25 PM Jean-Baptiste Onofré <j...@nanthrax.net
>>>> > <mailto:j...@nanthrax.net>> wrote:
>>>> >
>>>> >     Hi Andrei,
>>>> >
>>>> >     Did you upgrade only bouncycastle 1.69 or other dependency ?
>>>> >
>>>> >     I remember another deps should be updated.
>>>> >
>>>> >     Regards
>>>> >     JB
>>>> >
>>>> >     On 03/02/2022 14:09, Andrei Petru Mura wrote:
>>>> >      > Hi all,
>>>> >      >
>>>> >      > I upgraded bouncycastle to 1.69 in karaf. When trying to run this
>>>> >     code:
>>>> >      >
>>>> >      > MimeBodyPart textPart = new MimeBodyPart();
>>>> >      > textPart.setContent(new String(body), "text/plain");
>>>> >      > textPart.setHeader("Content-Type", messageContentType);
>>>> >      > textPart.setHeader("Content-Transfer-Encoding", "binary");
>>>> >      > textPart.setHeader("Content-Disposition", "attachment; filename=" 
>>>> > +
>>>> >      > fileName);
>>>> >      >
>>>> >      > SMIMESignedGenerator gen = new SMIMESignedGenerator();
>>>> >      > gen.setContentTransferEncoding("base64");
>>>> >      > JcaSimpleSignerInfoGeneratorBuilder signerInfoGenerator = new
>>>> >      > JcaSimpleSignerInfoGeneratorBuilder();
>>>> >      > signerInfoGenerator = signerInfoGenerator.setProvider("BC");
>>>> >      > SignerInfoGenerator signerGenerator =
>>>> >      > signerInfoGenerator.build(alg.algorithmWithRSA(), privateKey,
>>>> >     certificate);
>>>> >      > gen.addSignerInfoGenerator(signerGenerator);
>>>> >      >
>>>> >      > List<X509Certificate> certList = new ArrayList<X509Certificate>();
>>>> >      > certList.add(certificate);
>>>> >      > @SuppressWarnings("rawtypes")
>>>> >      > Store certs = new JcaCertStore(certList);
>>>> >      >
>>>> >      > gen.addCertificates(certs);
>>>> >      >
>>>> >      > MimeMultipart signedReport = gen.generate(replyBody);
>>>> >      > ByteArrayOutputStream out = new ByteArrayOutputStream();
>>>> >      > mimeMsg.writeTo(out); //the line which gives problems
>>>> >      > out.close();
>>>> >      >
>>>> >      > I get this:
>>>> >      >
>>>> >      > javax.activation.UnsupportedDataTypeException: text/plain
>>>> >      > at javax.activation.DataHandler.writeTo(DataHandler.java:75)
>>>> >     ~[!/:2.9.0]
>>>> >      > at 
>>>> > javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1670)
>>>> >      > ~[!/:1.6.7]
>>>> >      > at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:972)
>>>> >      > ~[!/:1.6.7]
>>>> >      > at 
>>>> > javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:537)
>>>> >      > ~[!/:1.6.7]
>>>> >      >
>>>> >      > Trying to make the long story short, after investigation, I find
>>>> >     that BC
>>>> >      > includes a file at META-INF/mailcap
>>>> >      > This shouldn't be a problem, but it seems to me that this is a
>>>> >     problem.
>>>> >      >
>>>> >      > If I try to add the mailcap manually before the above code
>>>> >     snippet, like
>>>> >      > this:
>>>> >      >
>>>> >      >    MailcapCommandMap mc = (MailcapCommandMap)
>>>> >      > CommandMap.getDefaultCommandMap();
>>>> >      > mc.addMailcap("text/html;;
>>>> >      > x-java-content-handler=com.sun.mail.handlers.text_html");
>>>> >      > mc.addMailcap("text/xml;;
>>>> >      > x-java-content-handler=com.sun.mail.handlers.text_xml");
>>>> >      > mc.addMailcap("text/plain;;
>>>> >      > x-java-content-handler=com.sun.mail.handlers.text_plain");
>>>> >      > mc.addMailcap("multipart/*;;
>>>> >      > x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
>>>> >      > mc.addMailcap("message/rfc822;;
>>>> >      > x-java-content-handler=com.sun.mail.handlers.message_rfc822");
>>>> >      >
>>>> >      > it has no effect, although I can see that the command handler is
>>>> >     set there.
>>>> >      >
>>>> >      > After all this investigation, I conclude that this is related to
>>>> >     OSGI
>>>> >      > class loader. Any idea how to fix this or any hints?
>>>> >      >
>>>> >      > Thanks,
>>>> >      > Andrei Mura
>>>> >

Reply via email to