git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1450550 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gary Tully 2013-02-27 00:36:48 +00:00
parent 2468be18fa
commit 30b20b3f38
6 changed files with 112 additions and 22 deletions

View File

@ -18,6 +18,7 @@ package org.apache.activemq.karaf.itest;
import org.apache.felix.service.command.CommandProcessor; import org.apache.felix.service.command.CommandProcessor;
import org.apache.felix.service.command.CommandSession; import org.apache.felix.service.command.CommandSession;
import org.apache.karaf.features.FeaturesService;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption; import org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption;
@ -47,6 +48,7 @@ import java.util.concurrent.TimeUnit;
import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.karafDistributionConfiguration; import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.replaceConfigurationFile; import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.replaceConfigurationFile;
import static org.ops4j.pax.exam.CoreOptions.*; import static org.ops4j.pax.exam.CoreOptions.*;
import static org.junit.Assert.assertTrue;
public abstract class AbstractFeatureTest { public abstract class AbstractFeatureTest {
@ -69,6 +71,9 @@ public abstract class AbstractFeatureTest {
@Inject @Inject
protected BundleContext bundleContext; protected BundleContext bundleContext;
@Inject
FeaturesService featuresService;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
} }
@ -127,6 +132,18 @@ public abstract class AbstractFeatureTest {
return executeCommand(command, COMMAND_TIMEOUT, false); return executeCommand(command, COMMAND_TIMEOUT, false);
} }
/**
* Installs a feature and asserts that feature is properly installed.
* @param feature
* @throws Exception
*/
public void installAndAssertFeature(String feature) throws Exception {
System.err.println(executeCommand("features:install " + feature));
System.err.println(executeCommand("osgi:list -t 0"));
assertTrue("Expected " + feature + " feature to be installed.", featuresService.isInstalled(featuresService.getFeature(feature)));
}
public static String karafVersion() { public static String karafVersion() {
return System.getProperty("karafVersion", "2.3.0"); return System.getProperty("karafVersion", "2.3.0");

View File

@ -0,0 +1,43 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.karaf.itest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
@RunWith(JUnit4TestRunner.class)
public class ObrFeatureTest extends AbstractFeatureTest {
@Configuration
public static Option[] configure() {
return configure("obr");
}
@Test
public void testClient() throws Throwable {
installAndAssertFeature("activemq-client");
}
//@Test
public void testBroker() throws Throwable {
installAndAssertFeature("activemq-broker");
}
}

View File

@ -22,19 +22,22 @@
<!-- Bundles needed if only client will be deployed in the container --> <!-- 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 name="activemq-client" description="ActiveMQ client libraries" version="${project.version}" resolver="(obr)" start-level="50">
<bundle>mvn:org.apache.activemq/activemq-osgi/${project.version}</bundle>
<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-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-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> <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle>
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle> <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle>
<bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool-version}</bundle> <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
<bundle dependency="true">mvn:commons-net/commons-net/${commons-net-version}</bundle>
<!-- uber osgi bundle means client is not that lean, todo: introduce client osgi bundle --> <!-- uber osgi bundle means client is not that lean, todo: introduce client osgi bundle -->
<feature version="[3,4)">spring</feature> <feature version="[3,4)">spring</feature>
<bundle dependency="true">mvn:org.apache.xbean/xbean-spring/${xbean-version}</bundle> <bundle dependency="true">mvn:org.apache.xbean/xbean-spring/${xbean-version}</bundle>
<bundle>mvn:org.apache.activemq/activemq-osgi/${project.version}</bundle>
</feature> </feature>
<!-- All bundles needed by the broker --> <!-- All bundles needed by the broker -->
<feature name="activemq" description="ActiveMQ broker libraries" version="${project.version}" resolver="(obr)" start-level="50"> <feature name="activemq" description="ActiveMQ broker libraries" version="${project.version}" resolver="(obr)" start-level="50">
<feature>jetty</feature>
<feature>spring-dm</feature>
<feature version="${project.version}">activemq-client</feature> <feature version="${project.version}">activemq-client</feature>
<bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections-version}</bundle> <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
<bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle> <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
@ -44,14 +47,17 @@
<bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix.specs.version}</bundle> <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix.specs.version}</bundle>
<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}</bundle> <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}</bundle>
<bundle dependency="true">mvn:joda-time/joda-time/${jodatime-bundle-version}</bundle> <bundle dependency="true">mvn:joda-time/joda-time/${jodatime-bundle-version}</bundle>
<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/${jdom-bundle-version}</bundle>
<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/${dom4j-bundle-version}</bundle>
<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}</bundle> <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}</bundle>
<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.snappy-java/${snappy-bundle-version}</bundle>
<bundle dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/${aries-version}</bundle> <bundle dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/${aries-version}</bundle>
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.5_spec/2.0.0</bundle>
<bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${aries-version}</bundle> <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${aries-version}</bundle>
<bundle dependency="true">mvn:org.apache.activemq/activeio-core/${activeio-version}</bundle>
<bundle dependency="true">mvn:org.codehaus.jettison/jettison/${jettison-version}</bundle>
<bundle dependency="true">mvn:org.codehaus.jackson/jackson-core-asl/${jackson-version}</bundle>
<bundle dependency="true">mvn:org.codehaus.jackson/jackson-mapper-asl/${jackson-version}</bundle>
<bundle>mvn:org.apache.activemq/activemq-karaf/${project.version}</bundle> <bundle>mvn:org.apache.activemq/activemq-karaf/${project.version}</bundle>
<bundle dependency="true">mvn:org.scala-lang/scala-library/${scala-version}</bundle> <bundle dependency="true">mvn:org.scala-lang/scala-library/${scala-version}</bundle>
<feature version="${project.version}">activemq-http</feature>
</feature> </feature>
<!-- Starts the broker with default configuration and web console --> <!-- Starts the broker with default configuration and web console -->
@ -62,19 +68,6 @@
<feature version="${project.version}">activemq-web-console</feature> <feature version="${project.version}">activemq-web-console</feature>
</feature> </feature>
<feature name="activemq-http" version="${project.version}" resolver="(obr)" start-level="50">
<feature>jetty</feature>
<bundle>mvn:org.apache.activemq/activemq-http/${project.version}</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.josql/${josql-version}</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/${saxon-bundle-version}</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/${xmlbeans-bundle-version}</bundle>
<bundle>mvn:org.apache.httpcomponents/httpcore-osgi/${httpclient-version}</bundle>
<bundle>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient-version}</bundle>
<bundle>mvn:javax.jmdns/jmdns/${jmdns-version}</bundle>
</feature>
<feature name="activemq-camel" version="${project.version}" resolver="(obr)" start-level="50"> <feature name="activemq-camel" version="${project.version}" resolver="(obr)" start-level="50">
<feature version="${project.version}">activemq-client</feature> <feature version="${project.version}">activemq-client</feature>
<feature version="${camel-version-range}">camel-jms</feature> <feature version="${camel-version-range}">camel-jms</feature>

View File

@ -111,7 +111,6 @@
<groupId>org.iq80.snappy</groupId> <groupId>org.iq80.snappy</groupId>
<artifactId>snappy</artifactId> <artifactId>snappy</artifactId>
<version>0.2</version> <version>0.2</version>
<optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>

View File

@ -32,13 +32,50 @@
<properties> <properties>
<activemq.osgi.import.pkg> <activemq.osgi.import.pkg>
!org.apache.commons.daemon,
!org.apache.maven*,
sun.misc*;resolution:=optional,
sun.nio*;resolution:=optional,
javax.jmdns*;resolution:=optional,
javax.resource*;resolution:=optional,
javax.servlet*;resolution:=optional,
com.thoughtworks.xstream*;resolution:=optional,
org.apache.activeio*;resolution:=optional,
org.apache.camel*;resolution:=optional,
org.apache.derby.jdbc*;resolution:=optional,
org.apache.geronimo.transaction.manager*;resolution:=optional,
org.apache.hadoop*;resolution:=optional,
org.apache.http*;resolution:=optional,
org.apache.xpath*;resolution:=optional,
org.bouncycastle*;resolution:=optional,
org.codehaus.jackson*;resolution:=optional,
org.codehaus.jettison*;resolution:=optional,
org.jasypt*;resolution:=optional,
org.eclipse.jetty*;resolution:=optional,
org.springframework.jms*;version="[3,4]";resolution:=optional,
org.springframework.osgi*;version="[3,4]";resolution:=optional,
org.springframework.transaction*;version="[3,4]";resolution:=optional,
org.xmlpull*;resolution:=optional,
scala*;resolution:=optional,
javax.annotation*,
javax.jms*,
javax.management
javax.transaction*,
org.apache.commons.pool*,
org.apache.commons.net*,
org.apache.xbean.spring*,
org.springframework*;version="[3,4]";resolution:=optional,
*
</activemq.osgi.import.pkg> </activemq.osgi.import.pkg>
<activemq.osgi.export> <activemq.osgi.export>
org.apache.activemq*;version=${project.version};-noimport:=true;-split-package:=merge-first, org.apache.activemq*;version=${project.version};-noimport:=true;-split-package:=merge-first,
org.iq80*;-noimport:=true;-split-package:=merge-first,
org.fusesource*;-noimport:=true;-split-package:=merge-first
</activemq.osgi.export> </activemq.osgi.export>
<activemq.osgi.private.pkg>
org.fusesource*,
org.apache.qpid*,
com.google.common*,
org.iq80*
</activemq.osgi.private.pkg>
<activemq.osgi.dynamic.import>*</activemq.osgi.dynamic.import> <activemq.osgi.dynamic.import>*</activemq.osgi.dynamic.import>
<surefire.argLine>-Xmx512M</surefire.argLine> <surefire.argLine>-Xmx512M</surefire.argLine>
</properties> </properties>

View File

@ -104,6 +104,7 @@
<scala-version>2.10.0</scala-version> <scala-version>2.10.0</scala-version>
<scalatest-version>1.8</scalatest-version> <scalatest-version>1.8</scalatest-version>
<slf4j-version>1.6.6</slf4j-version> <slf4j-version>1.6.6</slf4j-version>
<snappy-bundle-version>1.0.4.1_1</snappy-bundle-version>
<spring-version>3.1.3.RELEASE</spring-version> <spring-version>3.1.3.RELEASE</spring-version>
<spring-osgi-version>1.2.1</spring-osgi-version> <spring-osgi-version>1.2.1</spring-osgi-version>
<spring-oxm-version>1.5.10</spring-oxm-version> <spring-oxm-version>1.5.10</spring-oxm-version>