You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Arthur Naseef (Jira)" <ji...@apache.org> on 2022/06/20 17:37:00 UTC

[jira] [Commented] (AMQ-8971) ActiveMQ OSGI feature, activemq-client, using JMS 2.0 bundle, which fails resolution, from 5.16.3 on

    [ https://issues.apache.org/jira/browse/AMQ-8971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17556482#comment-17556482 ] 

Arthur Naseef commented on AMQ-8971:
------------------------------------

I propose the *correct* fix for this is to revert the feature to use the JMS 1.1 spec, since that's was ActiveMQ uses internally, and "advertises" to all the applications building against AMQ dependencies.

Anyone that needs 2.0 can do the extra work to make it work.  If we really feel strongly the need to assist, then perhaps one of the following is worth considering:
 * A separate feature (e.g. activemq-client-jms2_spec) that uses the 2.0 spec instead of the 1.0, OR
 * A custom JMS spec bundle that resolves aginst both 1.1 and 2.0

> ActiveMQ OSGI feature, activemq-client, using JMS 2.0 bundle, which fails resolution, from 5.16.3 on
> ----------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-8971
>                 URL: https://issues.apache.org/jira/browse/AMQ-8971
>             Project: ActiveMQ
>          Issue Type: Bug
>            Reporter: Arthur Naseef
>            Priority: Major
>
> 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:
>  
> {code:java}
> osgi.wiring.package; filter:="(&(osgi.wiring.package=javax.jms)(version>=1.1.0)(!(version>=2.0.0)))" {code}
> Tracking this down, the {{activemq-client}} feature definition contains the following:
>  
>  
> {code:java}
> <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_2.0_spec/1.0-alpha-2</bundle> {code}
> 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:
>  
>  
> {code:java}
> javax.jms                                              │ 2.0.0       │ 73 │ org.apache.geronimo.specs.geronimo-jms_2.0_spec {code}
>  
> The same feature in 5.16.2 contains the following definition:
>  
> {code:java}
> <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle> {code}
>  
> All of the ACTIVEMQ modules, except for activemq-karaf are using the following dependency:
>  
> {code:java}
>     <dependency>
>       <groupId>org.apache.geronimo.specs</groupId>
>       <artifactId>geronimo-jms_1.1_spec</artifactId>
>     </dependency>{code}
> ....
> 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.
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)