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

Seth Leger commented on AMQ-6301:
---------------------------------

Embedding spring-dm in activemq-osgi 5.13.X (and merging forward to master) 
would fix the following version combinations which do not currently load 
because of the conflicts with the spring-dm feature:
* Spring 4.X + Camel 2.15 + ActiveMQ 5.13
* Spring 4.X + Camel 2.16 + ActiveMQ 5.13
* Spring 4.X + Camel 2.16 + ActiveMQ 5.14-SNAPSHOT

Another peripheral issue here is that Camel 2.17 has changed their Karaf 
feature definitions so that the camel-jms feature excludes Spring 4.0 and lower:

* 
https://github.com/apache/camel/blob/camel-2.17.x/platforms/karaf/features/src/main/resources/features.xml
* https://github.com/apache/camel/blob/camel-2.17.x/parent/pom.xml

{code:xml}
<spring-version-range>[4.1,5)</spring-version-range>
{code}

This further restricts the combinations of Spring 4.0, Camel, and ActiveMQ that 
are compatible within Karaf.

> Embed spring-dm in activemq-osgi to avoid loading spring-dm in Karaf
> --------------------------------------------------------------------
>
>                 Key: AMQ-6301
>                 URL: https://issues.apache.org/jira/browse/AMQ-6301
>             Project: ActiveMQ
>          Issue Type: Improvement
>          Components: OSGi/Karaf
>    Affects Versions: 5.13.0
>            Reporter: Seth Leger
>              Labels: patch
>
> Embed spring-dm in activemq-osgi to avoid loading spring-dm in Karaf
> In commit 3a6d67e8f95320bea91b7c7106173c9b34773bc5, a test was fixed in issue 
> AMQ-4727 by reusing the spring-dm OsgiBundleXmlApplicationContext class 
> inside the ActiveMQServiceFactory managed service factory.
> To satisfy the import packages for activemq-osgi, the 'spring-dm' Karaf 
> feature was added to the main 'activemq-client' feature.
> This is problematic because loading the 'spring-dm' Karaf feature enables the 
> Spring DM deployer. This deployer is unnecessary in environments that rely on 
> Blueprint or CDI wiring and it may unexpectedly activate Spring DM bundles in 
> those environments. Because spring-dm was compiled against older versions of 
> Spring 3.0 and 3.1, it can also cause older versions of Spring features to be 
> loaded into the container.
> To avoid using the ‘spring-dm’ Karaf feature to provide the classes, I 
> propose embedding the spring-dm bundles inside activemq-osgi. Since they are 
> only used as library code to provide the BundleContext when parsing the 
> BrokerService context, they can be embedded safely without any dependency 
> issues.
> This is the root cause of the following issue:
> http://karaf.922171.n3.nabble.com/Karaf-4-0-3-unable-to-start-bundle-activemq-osgi-5-13-0-td4044640.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to