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