Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Building an ActiveMQ client application in OSGI. Using AMQ versions 5.16.3 through 5.17.1.
After building the application and loading it together with the ActiveMQ feature named activemq-client, a resolution error occurs with the following details:
osgi.wiring.package; filter:="(&(osgi.wiring.package=javax.jms)(version>=1.1.0)(!(version>=2.0.0)))"
Tracking this down, the activemq-client feature definition contains the following:
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_2.0_spec/1.0-alpha-2</bundle>
Using the karaf console command, package:exports | grep javax.jms, after loading the activemq-client feature, shows that this bundle ONLY exports the 2.0.0 version:
javax.jms │ 2.0.0 │ 73 │ org.apache.geronimo.specs.geronimo-jms_2.0_spec
The same feature in 5.16.2 contains the following definition:
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle>
All of the ACTIVEMQ modules, except for activemq-karaf are using the following dependency:
<dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jms_1.1_spec</artifactId> </dependency>
....
In Summary, compiling an ActiveMQ client application using activemq-client from versions 5.16.3 through 5.17.1, the application fails to resovle in Karaf by loading the activemq-client feature.
STEPS TO REPRODUCE
- feature:repo-add mvn:org.apache.activemq/activemq-karaf/5.17.1/xml/features-core
- feature:install activemq-client
- bundle:install ...application-bundle...
EXPECTED RESULTS
- Successful load of the application bundle built against version 5.17.1 of ActiveMQ artifacts after loading the activemq-client feature
ROOT CAUSE
- Replacing the JMS 1.0 geronimo specification bundle with the 2.0 one in the activemq-client feature causes this problem. It also seems very odd since no other internals of ActiveMQ use the JMS 2.0 spec at all.