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;
+    }
+
+}


Reply via email to