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 >>> >> >>>> > >>> >>
