For now, this seems to be a good solution.

Andrei

On Thu, Feb 10, 2022 at 4:33 PM Jean-Baptiste Onofré <[email protected]>
wrote:

> Catcha. We can then provide two features: Jakarta and SMX based.
>
> Le jeu. 10 févr. 2022 à 15:08, Andrei Petru Mura <[email protected]> a
> écrit :
>
>> Hi Jean-Baptiste,
>>
>> Maybe in some cases this is working. For me it didn't. (I tried to
>> install "activation" feature. I think this is what you are suggesting).
>> I was able to fix my issue only using the servicemix
>> activation-api-1.2.1. This is because the MailcapCommandMap doesn't seem to
>> load all the specified mailcaps because of some OSGI class loading issue.
>>
>> All the best,
>> Andrei Mura
>>
>> On Thu, Feb 10, 2022 at 4:02 PM Jean-Baptiste Onofré <[email protected]>
>> wrote:
>>
>>> 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 <[email protected]>
>>> 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é <[email protected]>
>>> 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 <
>>> [email protected]> 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 <
>>> [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
>>> >> >>>> >
>>>
>>

Reply via email to