Author: pieber Date: Tue May 22 08:51:30 2012 New Revision: 1341357 URL: http://svn.apache.org/viewvc?rev=1341357&view=rev Log: [KARAF-1203] Make invoker in karaf testcontainer configurable
Signed-off-by: Andreas Pieber <anpie...@gmail.com> Added: karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafExamSystemConfigurationOption.java Modified: karaf/trunk/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionOption.java Modified: karaf/trunk/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java?rev=1341357&r1=1341356&r2=1341357&view=diff ============================================================================== --- karaf/trunk/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java (original) +++ karaf/trunk/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java Tue May 22 08:51:30 2012 @@ -65,11 +65,13 @@ import org.apache.karaf.tooling.exam.opt import org.apache.karaf.tooling.exam.options.KarafDistributionConfigurationFileOption; import org.apache.karaf.tooling.exam.options.KarafDistributionConfigurationFilePutOption; import org.apache.karaf.tooling.exam.options.KarafDistributionConfigurationFileReplacementOption; +import org.apache.karaf.tooling.exam.options.KarafExamSystemConfigurationOption; import org.apache.karaf.tooling.exam.options.KeepRuntimeFolderOption; import org.apache.karaf.tooling.exam.options.LogLevelOption; import org.apache.karaf.tooling.exam.options.configs.CustomProperties; import org.apache.karaf.tooling.exam.options.configs.FeaturesCfg; import org.ops4j.pax.exam.ExamSystem; +import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.RelativeTimeout; import org.ops4j.pax.exam.TestAddress; import org.ops4j.pax.exam.TestContainer; @@ -126,12 +128,20 @@ public class KarafTestContainer implemen try { String name = system.createID(KARAF_TEST_CONTAINER); + KarafExamSystemConfigurationOption[] internalConfigurationOptions = + system.getOptions(KarafExamSystemConfigurationOption.class); + Option invokerConfiguration = systemProperty("pax.exam.invoker").value("junit"); + if (internalConfigurationOptions != null && internalConfigurationOptions.length != 0) { + invokerConfiguration = + systemProperty("pax.exam.invoker").value(internalConfigurationOptions[0].getInvoker()); + } + ExamSystem subsystem = system.fork( options( systemProperty(RMI_HOST_PROPERTY).value(registry.getHost()), systemProperty(RMI_PORT_PROPERTY).value("" + registry.getPort()), systemProperty(RMI_NAME_PROPERTY).value(name), - systemProperty(EXAM_INVOKER_PROPERTY).value("junit"), + invokerConfiguration, systemProperty(EXAM_INJECT_PROPERTY).value("true"), editConfigurationFileExtend("etc/system.properties", "jline.shutdownhook", "true") )); Modified: karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionOption.java URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionOption.java?rev=1341357&r1=1341356&r2=1341357&view=diff ============================================================================== --- karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionOption.java (original) +++ karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionOption.java Tue May 22 08:51:30 2012 @@ -46,6 +46,13 @@ public final class KarafDistributionOpti } /** + * Provides an option to configure the internals of the PaxExamKaraf subsystem runner. + */ + public static Option useOwnKarafExamSystemConfiguration(String invoker) { + return new KarafExamSystemConfigurationOption(invoker); + } + + /** * The karaf pax-logging configuration is typically not a file manipulated very often. Therefore we take the freedom * of adding a console logger and changing the log level directly. IF you like to configure the file manually (or * had so in your distribution) add this option to avoid any automatic modifications to this file! @@ -53,7 +60,7 @@ public final class KarafDistributionOpti public static Option doNotModifyLogConfiguration() { return new DoNotModifyLogOption(); } - + /** * This option allows to configure the start level of the bundles in the exam features descriptor. */ @@ -73,7 +80,8 @@ public final class KarafDistributionOpti * Configures which distribution options to use. Relevant are the frameworkURL, the frameworkName and the Karaf * version since all of those params are relevant to decide which wrapper configurations to use. */ - public static KarafDistributionBaseConfigurationOption karafDistributionConfiguration(String frameworkURL, String name, + public static KarafDistributionBaseConfigurationOption karafDistributionConfiguration(String frameworkURL, + String name, String karafVersion) { return new KarafDistributionConfigurationOption(frameworkURL, name, karafVersion); } Added: karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafExamSystemConfigurationOption.java URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafExamSystemConfigurationOption.java?rev=1341357&view=auto ============================================================================== --- karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafExamSystemConfigurationOption.java (added) +++ karaf/trunk/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafExamSystemConfigurationOption.java Tue May 22 08:51:30 2012 @@ -0,0 +1,40 @@ +/* + * 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.karaf.tooling.exam.options; + +import org.ops4j.pax.exam.Option; + +/** + * Option to configure the internal invoker for integration tests to be used. + */ +public class KarafExamSystemConfigurationOption implements Option { + + private String invoker; + + /** + * define the pax.exam.invoker property as system property in the environment during creating the subproject. + */ + public KarafExamSystemConfigurationOption(String invoker) { + this.invoker = invoker; + } + + public String getInvoker() { + return invoker; + } + +}