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 <[email protected]>
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 <[email protected]>
> 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é <[email protected]>
>> 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é <[email protected]
>>> > <mailto:[email protected]>> 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
>>> >
>>>
>>