Repository: activemq Updated Branches: refs/heads/activemq-5.13.x 9c483fa47 -> 9da728407
AMQ-6301: Changed activemq-osgi so that it embeds the spring-dm bundles so that we can avoid loading the spring-dm feature which causes Spring version conflicts. Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/982f739e Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/982f739e Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/982f739e Branch: refs/heads/activemq-5.13.x Commit: 982f739e24fce445dc58a1814ba30d479442ea29 Parents: 9c483fa Author: Seth Leger <[email protected]> Authored: Sun May 22 17:49:44 2016 -0400 Committer: Christopher L. Shannon (cshannon) <[email protected]> Committed: Tue Jul 12 12:29:01 2016 -0400 ---------------------------------------------------------------------- .../activemq/karaf/itest/ObrFeatureTest.java | 55 ++++++++++++++++++++ .../src/main/resources/features-core.xml | 1 - activemq-osgi/pom.xml | 8 +-- 3 files changed, 59 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/982f739e/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ObrFeatureTest.java ---------------------------------------------------------------------- diff --git a/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ObrFeatureTest.java b/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ObrFeatureTest.java index c59b2df..ea9a57d 100644 --- a/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ObrFeatureTest.java +++ b/activemq-karaf-itest/src/test/java/org/apache/activemq/karaf/itest/ObrFeatureTest.java @@ -18,6 +18,7 @@ package org.apache.activemq.karaf.itest; import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut; +import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.Configuration; @@ -25,6 +26,8 @@ import org.ops4j.pax.exam.CoreOptions; import org.ops4j.pax.exam.MavenUtils; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.junit.PaxExam; +import org.osgi.framework.Bundle; +import org.osgi.framework.ServiceReference; @RunWith(PaxExam.class) @@ -67,4 +70,56 @@ public class ObrFeatureTest extends AbstractFeatureTest { executeCommand("feature:repo-add " + getCamelFeatureUrl()); installAndAssertFeature("activemq-camel"); } + + @Test(timeout=5 * 60 * 1000) + public void testClientWithSpring31() throws Throwable { + executeCommand("feature:install spring/3.1.4.RELEASE"); + installAndAssertFeature("activemq-client"); + verifyBundleInstalledAndRegisteredServices("activemq-osgi", 2); + } + + @Test(timeout=5 * 60 * 1000) + public void testClientWithSpring32() throws Throwable { + executeCommand("feature:install spring/3.2.14.RELEASE_1"); + installAndAssertFeature("activemq-client"); + verifyBundleInstalledAndRegisteredServices("activemq-osgi", 2); + } + + @Test(timeout=5 * 60 * 1000) + public void testClientWithSpring40() throws Throwable { + executeCommand("feature:install spring/4.0.7.RELEASE_3"); + installAndAssertFeature("activemq-client"); + verifyBundleInstalledAndRegisteredServices("activemq-osgi", 2); + } + + @Test(timeout=5 * 60 * 1000) + public void testClientWithSpring41() throws Throwable { + executeCommand("feature:install spring/4.1.7.RELEASE_2"); + installAndAssertFeature("activemq-client"); + verifyBundleInstalledAndRegisteredServices("activemq-osgi", 2); + } + + @Test(timeout=5 * 60 * 1000) + public void testClientWithSpring42() throws Throwable { + executeCommand("feature:install spring/4.2.2.RELEASE_1"); + installAndAssertFeature("activemq-client"); + verifyBundleInstalledAndRegisteredServices("activemq-osgi", 2); + } + + public boolean verifyBundleInstalledAndRegisteredServices(final String bundleName, final int numberOfServices) throws Exception { + boolean found = false; + for (final Bundle bundle : bundleContext.getBundles()) { + LOG.debug("Checking: " + bundle.getSymbolicName()); + if (bundle.getSymbolicName().contains(bundleName)) { + Assert.assertEquals(Bundle.ACTIVE, bundle.getState()); + // Assert that the bundle has registered some services via blueprint + Assert.assertNotNull(bundle.getRegisteredServices()); + // Assert that the bundle has registered the correct number of services + Assert.assertEquals(numberOfServices, bundle.getRegisteredServices().length); + found = true; + break; + } + } + return found; + } } http://git-wip-us.apache.org/repos/asf/activemq/blob/982f739e/activemq-karaf/src/main/resources/features-core.xml ---------------------------------------------------------------------- diff --git a/activemq-karaf/src/main/resources/features-core.xml b/activemq-karaf/src/main/resources/features-core.xml index c578e15..04ddab7 100644 --- a/activemq-karaf/src/main/resources/features-core.xml +++ b/activemq-karaf/src/main/resources/features-core.xml @@ -23,7 +23,6 @@ <!-- Bundles needed if only client will be deployed in the container --> <feature name="activemq-client" description="ActiveMQ client libraries" version="${project.version}" resolver="(obr)" start-level="50"> <feature version="[3.2,4)">spring</feature> - <feature>spring-dm</feature> <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1</bundle> <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle> <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle> http://git-wip-us.apache.org/repos/asf/activemq/blob/982f739e/activemq-osgi/pom.xml ---------------------------------------------------------------------- diff --git a/activemq-osgi/pom.xml b/activemq-osgi/pom.xml index 8801443..6389022 100644 --- a/activemq-osgi/pom.xml +++ b/activemq-osgi/pom.xml @@ -57,7 +57,6 @@ org.fusesource.leveldbjni*;resolution:=optional, org.fusesource.hawtjni*;resolution:=optional, org.springframework.jms*;version="[3,5)";resolution:=optional, - org.springframework.osgi*;version="[1,4]";resolution:=optional, org.springframework.transaction*;version="[3,5)";resolution:=optional, org.springframework*;version="[3,5)";resolution:=optional, org.xmlpull*;resolution:=optional, @@ -86,6 +85,7 @@ org.apache.activemq.web*;version=${project.version};-noimport:=true;-split-package:=merge-first, </activemq.osgi.export> <activemq.osgi.private.pkg> + org.springframework.osgi*, org.fusesource.hawtdispatch*, org.fusesource.mqtt*, org.fusesource.hawtbuf*, @@ -303,9 +303,9 @@ <instructions> <Bundle-Activator>org.apache.activemq.util.osgi.Activator</Bundle-Activator> <Embed-Dependency> - *; - groupId=org.apache.activemq;inline=META-INF/services/*, - groupId=org.apache.qpid;inline=META-INF/services/* + *;groupId=org.apache.activemq;inline=META-INF/services/*, + *;groupId=org.apache.qpid;inline=META-INF/services/*, + *;groupId=org.springframework.osgi;inline=true <!-- groupId=org.fusesource.leveldbjni;inline=META-INF/native/*, groupId=org.xerial.snappy;inline=org/xerial/snappy/*
