Hi Stephan, Christian -

Thanks for your replies.

My issue was that the same set of bundles compile and run just fine with Karaf 
4.2.0, but when I compile with ref. to Karaf-4.2.5 I get this jaxb 2.3.0 
dependency error. 

It appears that the jaxb 2.3.0 dependency is pulled in during compilation from 
the org.apache.karaf.jaas.modules bundle as jakarta.xml.bind-api. The 4.2.0 
version of the jaas module did not have that dependency.

When I compile the bundles with ref to karaf-4.2.0 and only specify 4.2.5 in 
feature and distro all is well. So that problem appears to be solved.

Erwin


> On May 28, 2019, at 03:18, Siano, Stephan <[email protected]> wrote:
> 
> Hi Erwin,
>  
> the problem is that Java 8 does not contain JAXB 2.3.0 (but 2.2.8). So there 
> are actually two things to consider:
> Does your application really need JAXB 2.3.0. If it does it might be 
> challenging to run that on Java 8 (as you will also need a JAXB 
> implementation that implements the newer JAXB version and you might have all 
> kinds of interferences between the JAXB version in the JDK and the JAXB 
> version provided by you.
> If your application also works with JAXB 2.2.8, you might simply change your 
> application’s bundle manifest to wire with JAXB 2.2. You write you compile 
> your application with karaf-4.2.4. What does that mean? If you build with 
> Maven and added some Karaf artifact as a dependency you might get all kinds 
> of transitive dependencies into your stack that are not there when you deploy 
> it (the JAXB 2.3.0 API bundle will be part of Karaf, but only if you run on 
> Java 11 (that does not contain JAXB)). You’d probably better remove that 
> karaf artifact dependency and only add the dependencies you really need (and 
> in version that you will have in the end).
>  
> Best regards
> Stephan
>  
> From: Erwin Hogeweg <[email protected]> 
> Sent: Dienstag, 28. Mai 2019 00:49
> To: [email protected]
> Subject: javax.xml.bind.annotation issue with Karaf-4.2.5 with Java-8
>  
> All -
>  
> I am pretty sure I have seen a discussion here re. Karaf, 
> javax.xml.bind.annotation and Java 8. I can’t find the thread anymore though.
>  
> The issue I am running into is this:
>  
>                 missing requirement 
> [com.my.service/1.2.1.SNAPSHOT_20190527-1640] osgi.wiring.package; 
> filter:="(&(osgi.wiring.package=javax.xml.bind.annotation)(version>=2.3.0)(!(version>=3.0.0)))”]]
>  
> Obviously that is because the jre-1.8 section in jre.properties specifies 
> 2.2.8.
>  
> If I change that section to:
>  
>                 javax.xml.bind;version="2.3.0", \
>                 javax.xml.bind.annotation;version="2.3.0", \
>                 javax.xml.bind.annotation.adapters;version="2.3.0", \
>                 javax.xml.bind.attachment;version="2.3.0", \
>                 javax.xml.bind.helpers;version="2.3.0", \
>                 javax.xml.bind.util;version="2.3.0", \
>  
> Everything is fine again. I assume I can also find a 2.3.0 api bundle and 
> include that in my distro. Haven’t tried that yet.
>  
> Couple of questions remain…
>  
> 1. Where does that 2.3.0 dependency come from when I compile against 
> Karaf-4.2.5? 
> 2. Is this the right approach, if not, what is the recommended way? 
>  
>  
> Thanks as always,
>  
> Erwin

Reply via email to