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 c59b2df43c..ea9a57d6b3 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; + } } diff --git a/activemq-karaf/src/main/resources/features-core.xml b/activemq-karaf/src/main/resources/features-core.xml index c578e152eb..04ddab794c 100644 --- a/activemq-karaf/src/main/resources/features-core.xml +++ b/activemq-karaf/src/main/resources/features-core.xml @@ -23,7 +23,6 @@ spring - spring-dm mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1 mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 diff --git a/activemq-osgi/pom.xml b/activemq-osgi/pom.xml index 89e9ba658f..2802d1b776 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, + org.springframework.osgi*, org.fusesource.hawtdispatch*, org.fusesource.mqtt*, org.fusesource.hawtbuf*, @@ -303,9 +303,9 @@ org.apache.activemq.util.osgi.Activator - *; - 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