Hi Erwin,

Actually you can always specify jaxb version like
javax.xml.bind*;version=“[2,3)”,
in your bundle pom.xml maven-bundle-plugin configuration, to make it work both 
with jaxb2.2 and 2.3

Cheers

-------------
Freeman(Yue) Fang

Red Hat, Inc. 





> On May 29, 2019, at 9:42 PM, Erwin Hogeweg <[email protected]> wrote:
> 
> 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] 
>> <mailto:[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] <mailto:[email protected]>> 
>> Sent: Dienstag, 28. Mai 2019 00:49
>> To: [email protected] <mailto:[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