[
https://issues.apache.org/jira/browse/AMQ-6301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15296339#comment-15296339
]
Seth Leger commented on AMQ-6301:
---------------------------------
Hi everyone, I just wanted to let you know that my primary motivation is to get
ActiveMQ 5.13+ to load in a Karaf container where Spring 4+ is also present.
Since the feature version ranges for Spring in the ActiveMQ features restrict
Spring to [3.2,4), Spring 3.2 will be installed with ActiveMQ and it will
satisfy the Spring dependencies of spring-dm.
I understand that this is a stopgap measure and that removing the spring-dm
dependency would be a better solution (and would be required for full Spring
4.X compatibility). I thought that embedding would be a not-too-invasive way to
make ActiveMQ 5.13 compatible with containers where Spring 4 is in use.
> 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)