Hi,

Thanks for the confirmation. I already added the two bundles to my custom 
distribution, so it works for me, but I wondered if the bundles were missed out 
by accident or on purpose, so I asked on this list before creating an issue in 
JIRA.

Best regards
Stephan

-----Original Message-----
From: Freeman Fang <freeman.f...@gmail.com> 
Sent: Freitag, 7. September 2018 10:07
To: dev@karaf.apache.org
Subject: Re: org.apache.karaf.specs.locator on Karaf 4.2.1

Hi Stephan,

Thanks!
Yes, I can  reproduce and this is a bug I need to fix. And this is fixed by 
KARAF-5897[1].

For now, as a workaround, you can download [2] and copy it to 
$KARAF_HOME/lib/boot folder then it should work. 

Sorry for any inconvenience.

[1]https://issues.apache.org/jira/browse/KARAF-5897
[2]http://repo2.maven.org/maven2/org/apache/karaf/specs/org.apache.karaf.specs.activator/4.2.1/org.apache.karaf.specs.activator-4.2.1.jar
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat



> On Sep 6, 2018, at 10:05 PM, Siano, Stephan <stephan.si...@sap.com> wrote:
> 
> Hi,
> 
> I am using JDK 8 (and a custom karaf distribution). However it should not be 
> so difficult to reproduce:
> 1. Install Woodstox on the system (e.g. 
> mvn:org.codehaus.woodstox/stax2-api/3.1.4 and 
> mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1) (I am aware that these are 
> not the latest version, but that should actually not matter) What does matter 
> is that the woodstox-core-asl bundle contains a directory META-INF/services 
> with files like javax.xml.stream.XMLInputFactory containing the class name of 
> the factory implementation provided by this bundle.
> 2. set a set of system properties
>  javax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory
>  javax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory
>  javax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory
> when you restart your karaf. The system property and the value should match 
> name and the content of the files in META-INF/services of the woodstox 
> bundle. Note: for the operation of the feature to look up the factory this is 
> not necessary, but if you don't set these properties, the lookup in the next 
> step will just return the JDK implementation of the factory, which might work 
> but is not desired in this case.
> 3. have another bundle that does not import the Woodstox implementation 
> packages (only javax.xml.stream).  Call the static method 
> javax.xml.stream.XMLInputFactory.newFactory() from this bundle. This should 
> give you an instance of the com.ctc.wstx.stax.WstxInputFactory (when woodstox 
> is installed).
> 
> Best regards
> Stephan
> 
> -----Original Message-----
> From: Freeman Fang <freeman.f...@gmail.com> 
> Sent: Donnerstag, 6. September 2018 15:44
> To: dev@karaf.apache.org
> Subject: Re: org.apache.karaf.specs.locator on Karaf 4.2.1
> 
> Hi Stephan,
> 
> What’s the JDK version you are using?
> And could you please tell me the steps to reproduce this error?
> 
> I want to reproduce it and take a close look.
> 
> Thanks!
> 
> -------------
> Freeman(Yue) Fang
> 
> Red Hat, Inc. 
> FuseSource is now part of Red Hat
> 
> 
> 
>> On Sep 6, 2018, at 8:14 PM, Siano, Stephan <stephan.si...@sap.com> wrote:
>> 
>> Hi,
>> 
>> with Karaf 4.2.0 Guillaume Nodet introduced some mechanism around the 
>> org.apache.karaf.specs.activator bundle that allowed the lookup of 
>> registered service implementations (like woodstox for the Stax-API) in Karaf 
>> 4.2.0.
>> 
>> With 4.2.1 the jar is gone from the boot classpath (with two commits with 
>> Freeman Fang that say "ensure Karaf can build and run with JDK11/JDK10").
>> So with Karaf 4.2.1 the lookup for the Woodstox does not work anymore 
>> (probably because of that).
>> 
>> Caused by: javax.xml.stream.FactoryConfigurationError: Provider 
>> com.ctc.wstx.stax.WstxInputFactory not found
>>       at javax.xml.stream.$FactoryFinder.newInstance($FactoryFinder.java:97)
>>       at javax.xml.stream.$FactoryFinder.newInstance($FactoryFinder.java:74)
>>       at javax.xml.stream.$FactoryFinder.find($FactoryFinder.java:129)
>>       at javax.xml.stream.$FactoryFinder.find($FactoryFinder.java:106)
>>       at 
>> javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:52)
>>       at javax.xml.stream.XMLInputFactory.newFactory(XMLInputFactory.java:57)
>>       at ...
>>       ... 1 common frames omitted
>> Caused by: java.lang.ClassNotFoundException: 
>> com/ctc/wstx/stax/WstxInputFactory
>>       at java.lang.Class.forName0(Native Method)
>>       at java.lang.Class.forNameFW(Class.java:357)
>>       at java.lang.Class.forName(Class.java:350)
>>       at 
>> javax.xml.stream.$FactoryFinder.getProviderClass($FactoryFinder.java:64)
>>       at javax.xml.stream.$FactoryFinder.newInstance($FactoryFinder.java:87)
>>       ... 12 common frames omitted
>> 
>> 
>> Was that bundle removed on purpose from the boot classpath, or was this just 
>> an accident? Other bundles related to this are still there (except 
>> org.apache.karaf.specs.java.xml.ws which was removed from the lib/endorsed 
>> directory).
>> 
>> Best regards
>> Stephan
> 

Reply via email to