Make itest karaf run as latest karaf has some rbac changes that causes pax-exam to not work and crash the JVM.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3b675536 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3b675536 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3b675536 Branch: refs/heads/master Commit: 3b6755360d8f3a7c36db4889144dd8b3519cc144 Parents: d585525 Author: Claus Ibsen <davscl...@apache.org> Authored: Sat Mar 12 09:28:53 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sat Mar 12 10:31:26 2016 +0100 ---------------------------------------------------------------------- parent/pom.xml | 2 +- .../features/src/main/resources/features.xml | 1 - tests/camel-itest-karaf/pom.xml | 415 ++++++++++--------- .../camel/itest/karaf/AbstractFeatureTest.java | 37 +- 4 files changed, 228 insertions(+), 227 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/3b675536/parent/pom.xml ---------------------------------------------------------------------- diff --git a/parent/pom.xml b/parent/pom.xml index 7b64bde..6046dcc 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -346,7 +346,7 @@ <jzlib-version>1.1.3</jzlib-version> <jzlib-bundle-version>1.1.3_2</jzlib-bundle-version> <kafka-version>0.9.0.1</kafka-version> - <karaf-version>2.4.3</karaf-version> + <karaf-version>2.4.4</karaf-version> <karaf3-version>3.0.6</karaf3-version> <karaf4-version>4.0.4</karaf4-version> <kie-version>6.3.0.Final</kie-version> http://git-wip-us.apache.org/repos/asf/camel/blob/3b675536/platforms/karaf/features/src/main/resources/features.xml ---------------------------------------------------------------------- diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml index 8a683e7..59faaa5 100644 --- a/platforms/karaf/features/src/main/resources/features.xml +++ b/platforms/karaf/features/src/main/resources/features.xml @@ -1646,7 +1646,6 @@ </feature> <feature name='camel-test' version='${project.version}' resolver='(obr)' start-level='50'> <feature version='${project.version}'>camel-core</feature> - <feature version='${project.version}'>camel-spring</feature> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/${junit-bundle-version}</bundle> <bundle>mvn:org.apache.camel/camel-test/${project.version}</bundle> </feature> http://git-wip-us.apache.org/repos/asf/camel/blob/3b675536/tests/camel-itest-karaf/pom.xml ---------------------------------------------------------------------- diff --git a/tests/camel-itest-karaf/pom.xml b/tests/camel-itest-karaf/pom.xml index 5248385..31b0051 100644 --- a/tests/camel-itest-karaf/pom.xml +++ b/tests/camel-itest-karaf/pom.xml @@ -15,221 +15,222 @@ See the License for the specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> + <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.camel</groupId> - <artifactId>tests</artifactId> - <version>2.17-SNAPSHOT</version> - </parent> + <parent> + <groupId>org.apache.camel</groupId> + <artifactId>tests</artifactId> + <version>2.17-SNAPSHOT</version> + </parent> - <artifactId>camel-itest-karaf</artifactId> - <name>Camel :: Integration Tests :: Karaf</name> - <description>Performs Karaf compliance integration tests</description> + <artifactId>camel-itest-karaf</artifactId> + <name>Camel :: Integration Tests :: Karaf</name> + <description>Performs Karaf compliance integration tests</description> - <dependencies> - <dependency> - <groupId>org.ops4j.pax.exam</groupId> - <artifactId>pax-exam-junit4</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.ops4j.pax.exam</groupId> - <artifactId>pax-exam</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.ops4j.pax.exam</groupId> - <artifactId>pax-exam-container-karaf</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.ops4j.pax.exam</groupId> - <artifactId>pax-exam-link-mvn</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.karaf</groupId> - <artifactId>apache-karaf</artifactId> - <version>${karaf-version}</version> - <type>tar.gz</type> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.dev</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse</groupId> - <artifactId>osgi</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.karaf</groupId> - <artifactId>org.apache.karaf.client</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.felix</groupId> - <artifactId>org.apache.felix.framework</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.felix</groupId> - <artifactId>org.apache.felix.configadmin</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.javax-inject</artifactId> - <version>${javax-inject-bundle-version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.junit</artifactId> - <version>${junit-bundle-version}</version> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-spring</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel.karaf</groupId> - <artifactId>apache-camel</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>test</scope> - </dependency> + <dependencies> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-junit4</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-container-karaf</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-link-mvn</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.karaf</groupId> + <artifactId>apache-karaf</artifactId> + <version>${karaf-version}</version> + <type>tar.gz</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.dev</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse</groupId> + <artifactId>osgi</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.karaf</groupId> + <artifactId>org.apache.karaf.client</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.framework</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.configadmin</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.servicemix.bundles</groupId> + <artifactId>org.apache.servicemix.bundles.javax-inject</artifactId> + <version>${javax-inject-bundle-version}</version> + </dependency> + <dependency> + <groupId>org.apache.servicemix.bundles</groupId> + <artifactId>org.apache.servicemix.bundles.junit</artifactId> + <version>${junit-bundle-version}</version> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.core</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-core</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-spring</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel.karaf</groupId> + <artifactId>apache-camel</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + </dependency> - <!-- test and logging --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <scope>test</scope> - </dependency> - </dependencies> + <!-- test and logging --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <scope>test</scope> + </dependency> + </dependencies> - <build> - <pluginManagement> - <plugins> - <!-- Eclipse m2e Lifecycle Management --> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>${lifecycle-mapping-version}</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.apache.servicemix.tooling</groupId> - <artifactId>depends-maven-plugin</artifactId> - <versionRange>${depends-maven-plugin-version}</versionRange> - <goals> - <goal>generate-depends-file</goal> - </goals> - </pluginExecutionFilter> - <action> - <ignore /> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - </plugins> - </pluginManagement> - <plugins> - <!-- generate dependencies versions --> - <plugin> - <groupId>org.apache.servicemix.tooling</groupId> - <artifactId>depends-maven-plugin</artifactId> - <executions> - <execution> - <id>generate-depends-file</id> - <goals> - <goal>generate-depends-file</goal> - </goals> - </execution> - </executions> - </plugin> + <build> + <pluginManagement> + <plugins> + <!-- Eclipse m2e Lifecycle Management --> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>${lifecycle-mapping-version}</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId>org.apache.servicemix.tooling</groupId> + <artifactId>depends-maven-plugin</artifactId> + <versionRange>${depends-maven-plugin-version}</versionRange> + <goals> + <goal>generate-depends-file</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore/> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <!-- generate dependencies versions --> + <plugin> + <groupId>org.apache.servicemix.tooling</groupId> + <artifactId>depends-maven-plugin</artifactId> + <executions> + <execution> + <id>generate-depends-file</id> + <goals> + <goal>generate-depends-file</goal> + </goals> + </execution> + </executions> + </plugin> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <forkCount>1</forkCount> - <reuseForks>false</reuseForks> - <systemPropertyVariables> - <karafVersion>${karaf-version}</karafVersion> - </systemPropertyVariables> - </configuration> - </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <!-- do not re-run these tests --> + <rerunFailingTestsCount>0</rerunFailingTestsCount> + <systemPropertyVariables> + <karafVersion>${karaf-version}</karafVersion> + </systemPropertyVariables> + </configuration> + </plugin> - </plugins> - </build> + </plugins> + </build> - <profiles> - <profile> - <id>ci-build-profile</id> - <activation> - <property> - <name>maven.repo.local</name> - </property> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds> - <!-- - when the local repo location has been specified, we need to pass - on this information to PAX mvn url - --> - <argLine>-Dorg.ops4j.pax.url.mvn.localRepository=${maven.repo.local}</argLine> - <systemPropertyVariables> - <karafVersion>${karaf-version}</karafVersion> - </systemPropertyVariables> - </configuration> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>karaf3</id> - <properties> - <karaf-version>${karaf3-version}</karaf-version> - </properties> - </profile> - <profile> - <id>karaf4</id> - <properties> - <karaf-version>${karaf4-version}</karaf-version> - </properties> - </profile> - </profiles> + <profiles> + <profile> + <id>ci-build-profile</id> + <activation> + <property> + <name>maven.repo.local</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds> + <!-- + when the local repo location has been specified, we need to pass + on this information to PAX mvn url + --> + <argLine>-Dorg.ops4j.pax.url.mvn.localRepository=${maven.repo.local}</argLine> + <systemPropertyVariables> + <karafVersion>${karaf-version}</karafVersion> + </systemPropertyVariables> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>karaf3</id> + <properties> + <karaf-version>${karaf3-version}</karaf-version> + </properties> + </profile> + <profile> + <id>karaf4</id> + <properties> + <karaf-version>${karaf4-version}</karaf-version> + </properties> + </profile> + </profiles> </project> http://git-wip-us.apache.org/repos/asf/camel/blob/3b675536/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java ---------------------------------------------------------------------- diff --git a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java index 2c1acb5..3d60a13 100644 --- a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java +++ b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java @@ -26,9 +26,9 @@ import java.util.Properties; import javax.inject.Inject; import org.apache.camel.CamelContext; -import org.apache.camel.core.osgi.OsgiDefaultCamelContext; import org.apache.camel.impl.DefaultRouteContext; import org.apache.camel.model.DataFormatDefinition; +import org.apache.camel.osgi.CamelContextFactory; import org.junit.After; import org.junit.Before; import org.ops4j.pax.exam.Option; @@ -36,6 +36,7 @@ import org.ops4j.pax.exam.karaf.options.KarafDistributionOption; import org.ops4j.pax.exam.karaf.options.LogLevelOption; import org.ops4j.pax.exam.options.MavenArtifactProvisionOption; import org.ops4j.pax.exam.options.UrlReference; +import org.ops4j.pax.exam.rbc.Constants; import org.osgi.framework.BundleContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -126,8 +127,10 @@ public abstract class AbstractFeatureTest { protected CamelContext createCamelContext() throws Exception { LOG.info("Creating the CamelContext ..."); setThreadContextClassLoader(); - OsgiDefaultCamelContext camel = new OsgiDefaultCamelContext(bundleContext); - return camel; + CamelContextFactory factory = new CamelContextFactory(); + factory.setBundleContext(bundleContext); + LOG.info("Get the bundleContext is " + bundleContext); + return factory.createContext(); } protected void setThreadContextClassLoader() { @@ -191,7 +194,7 @@ public abstract class AbstractFeatureTest { } if (karafVersion == null) { // setup the default version of it - karafVersion = "2.4.0"; + karafVersion = "2.4.4"; } return karafVersion; } @@ -208,7 +211,6 @@ public abstract class AbstractFeatureTest { LOG.info("*** The karaf version is " + karafVersion + " ***"); List<String> list = new ArrayList<String>(); - list.add("cxf-jaxb"); list.add("camel-core"); list.add("camel-spring"); list.add("camel-" + mainFeature); @@ -221,29 +223,28 @@ public abstract class AbstractFeatureTest { // for remote debugging //org.ops4j.pax.exam.CoreOptions.vmOption("-Xdebug"), //org.ops4j.pax.exam.CoreOptions.vmOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5008"), - + + // we need INFO logging otherwise we cannot see what happens + new LogLevelOption(LogLevelOption.LogLevel.INFO), + + // to allow rbac to connect to localhost + org.ops4j.pax.exam.CoreOptions.systemProperty(Constants.RMI_HOST_PROPERTY).value("localhost"), + KarafDistributionOption.karafDistributionConfiguration() .frameworkUrl(maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("tar.gz").versionAsInProject()) .karafVersion(karafVersion) .name("Apache Karaf") .useDeployFolder(false).unpackDirectory(new File("target/paxexam/unpack/")), + // keep the folder so we can look inside when something fails + KarafDistributionOption.keepRuntimeFolder(), + vmOption("-Dfile.encoding=UTF-8"), - //KarafDistributionOption.keepRuntimeFolder(), - // override the config.properties (to fix pax-exam bug) - //KarafDistributionOption.replaceConfigurationFile("etc/config.properties", new File("src/test/resources/org/apache/camel/itest/karaf/config.properties")), - // Update the jre.properties to export the sun.misc package - KarafDistributionOption.replaceConfigurationFile("etc/jre.properties", new File("src/test/resources/org/apache/camel/itest/karaf/jre.properties")), - KarafDistributionOption.replaceConfigurationFile("etc/custom.properties", new File("src/test/resources/org/apache/camel/itest/karaf/custom.properties")), - KarafDistributionOption.replaceConfigurationFile("etc/org.ops4j.pax.url.mvn.cfg", new File("src/test/resources/org/apache/camel/itest/karaf/org.ops4j.pax.url.mvn.cfg")), - + // install the unit test getJUnitBundle(), - // we need INFO logging otherwise we cannot see what happens - new LogLevelOption(LogLevelOption.LogLevel.INFO), - - // install the cxf jaxb spec as the karaf doesn't provide it by default + // install the features KarafDistributionOption.features(getCamelKarafFeatureUrl(), features) };