[
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)