No, I really mean Karaf specs features:

https://github.com/apache/karaf/blob/main/assemblies/features/specs/src/main/feature/feature.xml#L42

We can update the runtime by avoiding the import from the JRE, and
instead use an activation feature.

Regards
JB

On Thu, Feb 10, 2022 at 2:49 PM Andrei Petru Mura <mapand...@gmail.com> wrote:
>
> Hi Jean-Baptiste,
>
> Hmmm... I don't see to mention this before in this thread... You mean 
> servicemix-spec?
> I'm not sure what you mean by "karaf-spec feature".
> Sorry, but I'm not very familiar with some details of Karaf.
>
> Andrei M.
>
> On Thu, Feb 10, 2022 at 3:45 PM Jean-Baptiste Onofré <j...@nanthrax.net> 
> wrote:
>>
>> 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