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
