You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2019/10/20 12:33:00 UTC

[karaf] branch karaf-4.2.x updated: [KARAF-6457] KarafTestSupport doesn't "force" Karaf specific itest system properties [KARAF-6456] KarafTestSupport doesn't "force" presence of etc/org.ops4j.pax.logging.cfg test resource

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch karaf-4.2.x
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/karaf-4.2.x by this push:
     new da1590f  [KARAF-6457] KarafTestSupport doesn't "force" Karaf specific itest system properties [KARAF-6456] KarafTestSupport doesn't "force" presence of etc/org.ops4j.pax.logging.cfg test resource
da1590f is described below

commit da1590fa8a4568d33dd2a368ecfa7ca93e91828d
Author: Jean-Baptiste Onofré <jb...@apache.org>
AuthorDate: Sat Oct 19 14:56:22 2019 +0200

    [KARAF-6457] KarafTestSupport doesn't "force" Karaf specific itest system properties
    [KARAF-6456] KarafTestSupport doesn't "force" presence of etc/org.ops4j.pax.logging.cfg test resource
    
    (cherry picked from commit 68ee95174d53afdaf473b469b7209887d3a97b66)
---
 examples/karaf-itest-example/pom.xml               | 11 +++
 .../apache/karaf/examples/itests/ExampleITest.java | 79 ----------------------
 .../examples/itests/ExampleWithConfigITest.java    | 30 ++++----
 .../org/apache/karaf/itests/KarafTestSupport.java  | 26 -------
 .../java/org/apache/karaf/itests/BaseTest.java     | 44 ++++++++++++
 .../java/org/apache/karaf/itests/BundleTest.java   |  2 +-
 .../karaf/itests/ConditionalFeaturesTest.java      |  2 +-
 .../itests/ConfigManagedServiceFactoryTest.java    |  2 +-
 .../java/org/apache/karaf/itests/ConfigTest.java   |  2 +-
 .../org/apache/karaf/itests/DiagnosticTest.java    |  2 +-
 .../java/org/apache/karaf/itests/EquinoxTest.java  |  2 +-
 .../apache/karaf/itests/ExternalConfigTest.java    |  2 +-
 .../java/org/apache/karaf/itests/FeatureTest.java  |  2 +-
 .../org/apache/karaf/itests/FelixHttpTest.java     |  2 +-
 .../java/org/apache/karaf/itests/HttpTest.java     |  2 +-
 .../org/apache/karaf/itests/ImportServiceTest.java |  2 +-
 .../java/org/apache/karaf/itests/InstanceTest.java |  2 +-
 .../org/apache/karaf/itests/JMXSecurityTest.java   |  2 +-
 .../java/org/apache/karaf/itests/JaasTest.java     |  2 +-
 .../org/apache/karaf/itests/JavaSecurityTest.java  |  2 +-
 .../test/java/org/apache/karaf/itests/JmsTest.java |  2 +-
 .../java/org/apache/karaf/itests/JndiTest.java     |  2 +-
 .../test/java/org/apache/karaf/itests/KarTest.java |  2 +-
 .../test/java/org/apache/karaf/itests/LogTest.java |  3 +-
 .../java/org/apache/karaf/itests/MavenTest.java    |  2 +-
 .../test/java/org/apache/karaf/itests/ObrTest.java |  2 +-
 .../apache/karaf/itests/OverrideConfigTest.java    |  2 +-
 .../java/org/apache/karaf/itests/PackageTest.java  |  2 +-
 .../java/org/apache/karaf/itests/ServiceTest.java  |  2 +-
 .../apache/karaf/itests/SystemShutdownTest.java    |  2 +-
 .../java/org/apache/karaf/itests/SystemTest.java   |  2 +-
 .../test/java/org/apache/karaf/itests/WebTest.java |  2 +-
 .../java/org/apache/karaf/itests/WrapperTest.java  |  2 +-
 .../test/java/org/apache/karaf/itests/XATest.java  |  2 +-
 .../itests/examples/BlueprintExampleTest.java      |  4 +-
 .../karaf/itests/examples/BundleExampleTest.java   |  4 +-
 .../karaf/itests/examples/CamelExampleTest.java    |  4 +-
 .../karaf/itests/examples/CommandExampleTest.java  |  4 +-
 .../karaf/itests/examples/ConfigExampleTest.java   |  4 +-
 .../karaf/itests/examples/DeployerExampleTest.java |  4 +-
 .../karaf/itests/examples/DumpExampleTest.java     |  4 +-
 .../itests/examples/HttpResourceExampleTest.java   |  4 +-
 .../karaf/itests/examples/JdbcExampleTest.java     |  4 +-
 .../karaf/itests/examples/JmsExampleTest.java      |  4 +-
 .../karaf/itests/examples/JpaExampleTest.java      |  5 +-
 .../itests/examples/LogAppenderExampleTest.java    |  4 +-
 .../karaf/itests/examples/MBeanExampleTest.java    |  4 +-
 .../examples/NamespaceHandlerExampleTest.java      |  4 +-
 .../karaf/itests/examples/RestExampleTest.java     |  4 +-
 .../itests/examples/SchedulerExampleTest.java      |  4 +-
 .../karaf/itests/examples/ScrExampleTest.java      |  4 +-
 .../itests/examples/ScrExampleWithEquinoxTest.java |  4 +-
 .../karaf/itests/examples/ServletExampleTest.java  |  4 +-
 .../karaf/itests/examples/SoapExampleTest.java     |  4 +-
 .../karaf/itests/examples/WarExampleTest.java      |  4 +-
 .../itests/examples/WebSocketExampleTest.java      |  4 +-
 .../itests/features/EnterpriseFeaturesTest.java    |  4 +-
 .../karaf/itests/features/PaxCdiFeaturesTest.java  |  4 +-
 .../karaf/itests/features/Spring3FeaturesTest.java |  4 +-
 .../itests/features/Spring40FeaturesTest.java      |  4 +-
 .../itests/features/Spring41FeaturesTest.java      |  4 +-
 .../itests/features/Spring42FeaturesTest.java      |  4 +-
 .../itests/features/Spring43FeaturesTest.java      |  4 +-
 .../itests/features/Spring50FeaturesTest.java      |  4 +-
 .../itests/features/Spring51FeaturesTest.java      |  4 +-
 .../itests/features/StandardFeaturesTest.java      |  4 +-
 .../karaf/itests/ssh/SshCommandTestBase.java       |  4 +-
 67 files changed, 169 insertions(+), 213 deletions(-)

diff --git a/examples/karaf-itest-example/pom.xml b/examples/karaf-itest-example/pom.xml
index 2564c32..ed4102c 100644
--- a/examples/karaf-itest-example/pom.xml
+++ b/examples/karaf-itest-example/pom.xml
@@ -104,6 +104,17 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <forkCount>1</forkCount>
+                    <reuseForks>false</reuseForks>
+                    <systemPropertyVariables>
+                        <my.system.property>foo</my.system.property>
+                    </systemPropertyVariables>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 
diff --git a/examples/karaf-itest-example/src/test/java/org/apache/karaf/examples/itests/ExampleITest.java b/examples/karaf-itest-example/src/test/java/org/apache/karaf/examples/itests/ExampleITest.java
index 2daf378..16f8075 100644
--- a/examples/karaf-itest-example/src/test/java/org/apache/karaf/examples/itests/ExampleITest.java
+++ b/examples/karaf-itest-example/src/test/java/org/apache/karaf/examples/itests/ExampleITest.java
@@ -40,85 +40,6 @@ import org.ops4j.pax.exam.options.extra.VMOption;
 @ExamReactorStrategy(PerClass.class)
 public class ExampleITest extends KarafTestSupport {
 
-    @Override
-    @Configuration
-    public Option[] config() {
-        MavenArtifactUrlReference karafUrl = maven().groupId("org.apache.karaf").artifactId("apache-karaf").versionAsInProject().type("tar.gz");
-
-        String httpPort = Integer.toString(getAvailablePort(Integer.parseInt(MIN_HTTP_PORT), Integer.parseInt(MAX_HTTP_PORT)));
-        String rmiRegistryPort = Integer.toString(getAvailablePort(Integer.parseInt(MIN_RMI_REG_PORT), Integer.parseInt(MAX_RMI_REG_PORT)));
-        String rmiServerPort = Integer.toString(getAvailablePort(Integer.parseInt(MIN_RMI_SERVER_PORT), Integer.parseInt(MAX_RMI_SERVER_PORT)));
-        String sshPort = Integer.toString(getAvailablePort(Integer.parseInt(MIN_SSH_PORT), Integer.parseInt(MAX_SSH_PORT)));
-        String localRepository = System.getProperty("org.ops4j.pax.url.mvn.localRepository");
-        if (localRepository == null) {
-            localRepository = "";
-        }
-
-        if (JavaVersionUtil.getMajorVersion() >= 9) {
-            return new Option[]{
-                //KarafDistributionOption.debugConfiguration("8889", true),
-                karafDistributionConfiguration().frameworkUrl(karafUrl).name("Apache Karaf").unpackDirectory(new File("target/exam")),
-                // enable JMX RBAC security, thanks to the KarafMBeanServerBuilder
-                configureSecurity().disableKarafMBeanServerBuilder(),
-                // configureConsole().ignoreLocalConsole(),
-                keepRuntimeFolder(),
-                logLevel(LogLevelOption.LogLevel.INFO),
-                mavenBundle().groupId("org.awaitility").artifactId("awaitility").versionAsInProject(),
-                mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.hamcrest").versionAsInProject(),
-                mavenBundle().groupId("org.apache.karaf.itests").artifactId("common").versionAsInProject(),
-                editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", "org.osgi.service.http.port", httpPort),
-                editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiRegistryPort", rmiRegistryPort),
-                editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiServerPort", rmiServerPort),
-                editConfigurationFilePut("etc/org.apache.karaf.shell.cfg", "sshPort", sshPort),
-                editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg", "org.ops4j.pax.url.mvn.localRepository", localRepository),
-                new VMOption("--add-reads=java.xml=java.logging"),
-                new VMOption("--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED"),
-                new VMOption("--patch-module"),
-                new VMOption("java.base=lib/endorsed/org.apache.karaf.specs.locator-" 
-                + System.getProperty("karaf.version") + ".jar"),
-                new VMOption("--patch-module"),
-                new VMOption("java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-" 
-                + System.getProperty("karaf.version") + ".jar"),
-                new VMOption("--add-opens"),
-                new VMOption("java.base/java.security=ALL-UNNAMED"),
-                new VMOption("--add-opens"),
-                new VMOption("java.base/java.net=ALL-UNNAMED"),
-                new VMOption("--add-opens"),
-                new VMOption("java.base/java.lang=ALL-UNNAMED"),
-                new VMOption("--add-opens"),
-                new VMOption("java.base/java.util=ALL-UNNAMED"),
-                new VMOption("--add-opens"),
-                new VMOption("java.naming/javax.naming.spi=ALL-UNNAMED"),
-                new VMOption("--add-opens"),
-                new VMOption("java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED"),
-                new VMOption("--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED"),
-                new VMOption("--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED"),
-                new VMOption("--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED"),
-                new VMOption("--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED"),
-                new VMOption("-classpath"),
-                new VMOption("lib/jdk9plus/*" + File.pathSeparator + "lib/boot/*")
-            };
-        } else {
-            return new Option[]{
-                //KarafDistributionOption.debugConfiguration("8889", true),
-                karafDistributionConfiguration().frameworkUrl(karafUrl).name("Apache Karaf").unpackDirectory(new File("target/exam")),
-                // enable JMX RBAC security, thanks to the KarafMBeanServerBuilder
-                configureSecurity().disableKarafMBeanServerBuilder(),
-                // configureConsole().ignoreLocalConsole(),
-                keepRuntimeFolder(),
-                logLevel(LogLevelOption.LogLevel.INFO),
-                mavenBundle().groupId("org.awaitility").artifactId("awaitility").versionAsInProject(),
-                mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.hamcrest").versionAsInProject(),
-                mavenBundle().groupId("org.apache.karaf.itests").artifactId("common").versionAsInProject(),
-                editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", "org.osgi.service.http.port", httpPort),
-                editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiRegistryPort", rmiRegistryPort),
-                editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiServerPort", rmiServerPort),
-                editConfigurationFilePut("etc/org.apache.karaf.shell.cfg", "sshPort", sshPort),
-                editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg", "org.ops4j.pax.url.mvn.localRepository", localRepository)
-            };
-        }
-    }
-
     @Test
     public void listBundleCommand() throws Exception {
         // assert on an available service
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/LogAppenderExampleTest.java b/examples/karaf-itest-example/src/test/java/org/apache/karaf/examples/itests/ExampleWithConfigITest.java
similarity index 51%
copy from itests/test/src/test/java/org/apache/karaf/itests/examples/LogAppenderExampleTest.java
copy to examples/karaf-itest-example/src/test/java/org/apache/karaf/examples/itests/ExampleWithConfigITest.java
index e3c1d1a..2a3332a 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/LogAppenderExampleTest.java
+++ b/examples/karaf-itest-example/src/test/java/org/apache/karaf/examples/itests/ExampleWithConfigITest.java
@@ -11,30 +11,36 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.itests.examples;
+package org.apache.karaf.examples.itests;
 
 import org.apache.karaf.itests.KarafTestSupport;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.karaf.options.KarafDistributionOption;
 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
 
+import java.util.stream.Stream;
+
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class LogAppenderExampleTest extends KarafTestSupport {
-
-    @Test
-    public void test() throws Exception {
-        // adding karaf-log-appender-example features repository
-        addFeaturesRepository("mvn:org.apache.karaf.examples/karaf-log-appender-example-features/" + System.getProperty("karaf.version") + "/xml");
+public class ExampleWithConfigITest extends KarafTestSupport {
 
-        // install the karaf-log-appender-example feature
-        installAndAssertFeature("karaf-log-appender-example");
+    @Configuration
+    public Option[] config() {
+        Option[] options = new Option[]{
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "my.system.property", System.getProperty("my.system.property"))
+        };
+        return Stream.of(super.config(), options).flatMap(Stream::of).toArray(Option[]::new);
+    }
 
-        String output = executeCommand("log:log TEST");
-        System.out.println(output);
-        assertContains("INFO - TEST", output);
+    @Test
+    public void simpleTest() throws Exception {
+        System.out.println("==== System Property in probe bundle: " + System.getProperty("my.system.property"));
+        assertContains("foo", System.getProperty("my.system.property"));
     }
 
 }
diff --git a/itests/common/src/main/java/org/apache/karaf/itests/KarafTestSupport.java b/itests/common/src/main/java/org/apache/karaf/itests/KarafTestSupport.java
index 1ddf10c..e126142 100644
--- a/itests/common/src/main/java/org/apache/karaf/itests/KarafTestSupport.java
+++ b/itests/common/src/main/java/org/apache/karaf/itests/KarafTestSupport.java
@@ -195,7 +195,6 @@ public class KarafTestSupport {
                 CoreOptions.mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.hamcrest").versionAsInProject(),
                 CoreOptions.mavenBundle().groupId("org.apache.karaf.itests").artifactId("common").versionAsInProject(),
                 CoreOptions.mavenBundle().groupId("javax.annotation").artifactId("javax.annotation-api").versionAsInProject(),
-                KarafDistributionOption.replaceConfigurationFile("etc/org.ops4j.pax.logging.cfg", getConfigFile("/etc/org.ops4j.pax.logging.cfg")),
                 //replaceConfigurationFile("etc/host.key", getConfigFile("/etc/host.key")),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.apache.karaf.features.cfg", "updateSnapshots", "none"),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", "org.osgi.service.http.port", httpPort),
@@ -203,18 +202,6 @@ public class KarafTestSupport {
                 KarafDistributionOption.editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiServerPort", rmiServerPort),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.apache.karaf.shell.cfg", "sshPort", sshPort),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg", "org.ops4j.pax.url.mvn.localRepository", localRepository),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring31.version", System.getProperty("spring31.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring32.version", System.getProperty("spring32.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring40.version", System.getProperty("spring40.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring41.version", System.getProperty("spring41.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring42.version", System.getProperty("spring42.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring43.version", System.getProperty("spring43.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring50.version", System.getProperty("spring50.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring51.version", System.getProperty("spring51.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security31.version", System.getProperty("spring.security31.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security42.version", System.getProperty("spring.security42.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security51.version", System.getProperty("spring.security51.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "activemq.version", System.getProperty("activemq.version")),
                 KarafDistributionOption.editConfigurationFilePut("etc/branding.properties", "welcome", ""), // No welcome banner
                 KarafDistributionOption.editConfigurationFilePut("etc/branding-ssh.properties", "welcome", ""),
                 new VMOption("--add-reads=java.xml=java.logging"),
@@ -257,7 +244,6 @@ public class KarafTestSupport {
                 CoreOptions.mavenBundle().groupId("org.awaitility").artifactId("awaitility").versionAsInProject(),
                 CoreOptions.mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.hamcrest").versionAsInProject(),
                 CoreOptions.mavenBundle().groupId("org.apache.karaf.itests").artifactId("common").versionAsInProject(),
-                KarafDistributionOption.replaceConfigurationFile("etc/org.ops4j.pax.logging.cfg", getConfigFile("/etc/org.ops4j.pax.logging.cfg")),
                 //replaceConfigurationFile("etc/host.key", getConfigFile("/etc/host.key")),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.apache.karaf.features.cfg", "updateSnapshots", "none"),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", "org.osgi.service.http.port", httpPort),
@@ -265,18 +251,6 @@ public class KarafTestSupport {
                 KarafDistributionOption.editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiServerPort", rmiServerPort),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.apache.karaf.shell.cfg", "sshPort", sshPort),
                 KarafDistributionOption.editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg", "org.ops4j.pax.url.mvn.localRepository", localRepository),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring31.version", System.getProperty("spring31.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring32.version", System.getProperty("spring32.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring40.version", System.getProperty("spring40.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring41.version", System.getProperty("spring41.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring42.version", System.getProperty("spring42.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring43.version", System.getProperty("spring43.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring50.version", System.getProperty("spring50.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring51.version", System.getProperty("spring51.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security31.version", System.getProperty("spring.security31.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security42.version", System.getProperty("spring.security42.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security51.version", System.getProperty("spring.security51.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "activemq.version", System.getProperty("activemq.version")),
                 KarafDistributionOption.editConfigurationFilePut("etc/branding.properties", "welcome", ""), // No welcome banner
                 KarafDistributionOption.editConfigurationFilePut("etc/branding-ssh.properties", "welcome", "")
             };  
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/BaseTest.java b/itests/test/src/test/java/org/apache/karaf/itests/BaseTest.java
new file mode 100644
index 0000000..85e7dac
--- /dev/null
+++ b/itests/test/src/test/java/org/apache/karaf/itests/BaseTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed 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.itests;
+
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.karaf.options.KarafDistributionOption;
+
+import java.util.stream.Stream;
+
+public class BaseTest extends KarafTestSupport {
+
+    @Configuration
+    public Option[] config() {
+        Option[] options = new Option[]{
+                KarafDistributionOption.replaceConfigurationFile("etc/org.ops4j.pax.logging.cfg", getConfigFile("/etc/org.ops4j.pax.logging.cfg")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring31.version", System.getProperty("spring31.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring32.version", System.getProperty("spring32.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring40.version", System.getProperty("spring40.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring41.version", System.getProperty("spring41.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring42.version", System.getProperty("spring42.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring43.version", System.getProperty("spring43.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring50.version", System.getProperty("spring50.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring51.version", System.getProperty("spring51.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security31.version", System.getProperty("spring.security31.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security42.version", System.getProperty("spring.security42.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring.security51.version", System.getProperty("spring.security51.version")),
+                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "activemq.version", System.getProperty("activemq.version"))
+        };
+        return Stream.of(super.config(), options).flatMap(Stream::of).toArray(Option[]::new);
+    }
+
+}
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/BundleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/BundleTest.java
index d61769d..8168988 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/BundleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/BundleTest.java
@@ -35,7 +35,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class BundleTest extends KarafTestSupport {
+public class BundleTest extends BaseTest {
 
     private static final RolePrincipal[] ADMIN_ROLES = {
             new RolePrincipal(BundleService.SYSTEM_BUNDLES_ROLE),
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java
index 5ff4348..3acf49e 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java
@@ -29,7 +29,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ConditionalFeaturesTest extends KarafTestSupport {
+public class ConditionalFeaturesTest extends BaseTest {
 
      
     @Test
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ConfigManagedServiceFactoryTest.java b/itests/test/src/test/java/org/apache/karaf/itests/ConfigManagedServiceFactoryTest.java
index 1366cce..c02afd7 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ConfigManagedServiceFactoryTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ConfigManagedServiceFactoryTest.java
@@ -38,7 +38,7 @@ import org.osgi.service.cm.ConfigurationAdmin;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ConfigManagedServiceFactoryTest extends KarafTestSupport {
+public class ConfigManagedServiceFactoryTest extends BaseTest {
 
 	@Inject
 	ConfigurationAdmin configAdmin;
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ConfigTest.java b/itests/test/src/test/java/org/apache/karaf/itests/ConfigTest.java
index 63bf0f2..1a6a455 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ConfigTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ConfigTest.java
@@ -33,7 +33,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ConfigTest extends KarafTestSupport {
+public class ConfigTest extends BaseTest {
 
     @Test
     public void listCommand() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/DiagnosticTest.java b/itests/test/src/test/java/org/apache/karaf/itests/DiagnosticTest.java
index e0a502f..9c3a812 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/DiagnosticTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/DiagnosticTest.java
@@ -26,7 +26,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class DiagnosticTest extends KarafTestSupport {
+public class DiagnosticTest extends BaseTest {
 
     @Test
     public void dumpCreateCommand() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/EquinoxTest.java b/itests/test/src/test/java/org/apache/karaf/itests/EquinoxTest.java
index 4b18ce5..c0f14ea 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/EquinoxTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/EquinoxTest.java
@@ -31,7 +31,7 @@ import java.util.List;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class EquinoxTest extends KarafTestSupport {
+public class EquinoxTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ExternalConfigTest.java b/itests/test/src/test/java/org/apache/karaf/itests/ExternalConfigTest.java
index c2c00b7..cfc7899 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ExternalConfigTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ExternalConfigTest.java
@@ -34,7 +34,7 @@ import static org.junit.Assert.*;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ExternalConfigTest extends KarafTestSupport {
+public class ExternalConfigTest extends BaseTest {
 
     @Test
     public void externalConfigTest() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/FeatureTest.java b/itests/test/src/test/java/org/apache/karaf/itests/FeatureTest.java
index dff4a20..db2e004 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/FeatureTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/FeatureTest.java
@@ -41,7 +41,7 @@ import java.util.List;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class FeatureTest extends KarafTestSupport {
+public class FeatureTest extends BaseTest {
 
 
     @Configuration
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/FelixHttpTest.java b/itests/test/src/test/java/org/apache/karaf/itests/FelixHttpTest.java
index 2dad1c7..181ad35 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/FelixHttpTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/FelixHttpTest.java
@@ -30,7 +30,7 @@ import java.net.URL;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class FelixHttpTest extends KarafTestSupport {
+public class FelixHttpTest extends BaseTest {
 
     @Before
     public void setup() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/HttpTest.java b/itests/test/src/test/java/org/apache/karaf/itests/HttpTest.java
index e90a65e..c2e8602 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/HttpTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/HttpTest.java
@@ -33,7 +33,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class HttpTest extends KarafTestSupport {
+public class HttpTest extends BaseTest {
 
     @Before
     public void installHttpFeature() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ImportServiceTest.java b/itests/test/src/test/java/org/apache/karaf/itests/ImportServiceTest.java
index 7492d11..acaad02 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ImportServiceTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ImportServiceTest.java
@@ -34,7 +34,7 @@ import org.osgi.framework.Constants;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ImportServiceTest extends KarafTestSupport {
+public class ImportServiceTest extends BaseTest {
 
     private static final String BUNDLE2_NAME = "testbundle.require.service";
     private static final String BUNDLE1_NAME = "testbundle.import.service";
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/InstanceTest.java b/itests/test/src/test/java/org/apache/karaf/itests/InstanceTest.java
index 488ccba..8d070e2 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/InstanceTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/InstanceTest.java
@@ -31,7 +31,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class InstanceTest extends KarafTestSupport {
+public class InstanceTest extends BaseTest {
 
     @Test
     public void createDestroyCommand() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java b/itests/test/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java
index f160a52..2f60ec9 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/JMXSecurityTest.java
@@ -61,7 +61,7 @@ import org.osgi.service.cm.ConfigurationAdmin;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class JMXSecurityTest extends KarafTestSupport {
+public class JMXSecurityTest extends BaseTest {
 
     private static AtomicInteger counter = new AtomicInteger(0);
 
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/JaasTest.java b/itests/test/src/test/java/org/apache/karaf/itests/JaasTest.java
index 9964e44..4bb3370 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/JaasTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/JaasTest.java
@@ -33,7 +33,7 @@ import org.osgi.framework.BundleContext;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class JaasTest extends KarafTestSupport {
+public class JaasTest extends BaseTest {
 
     @Test
     public void realmListCommand() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/JavaSecurityTest.java b/itests/test/src/test/java/org/apache/karaf/itests/JavaSecurityTest.java
index 9fc3a05..009a9e4 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/JavaSecurityTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/JavaSecurityTest.java
@@ -41,7 +41,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.*;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class JavaSecurityTest extends KarafTestSupport {
+public class JavaSecurityTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/JmsTest.java b/itests/test/src/test/java/org/apache/karaf/itests/JmsTest.java
index 66a279d..d85f935 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/JmsTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/JmsTest.java
@@ -34,7 +34,7 @@ import javax.management.ObjectName;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class JmsTest extends KarafTestSupport {
+public class JmsTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/JndiTest.java b/itests/test/src/test/java/org/apache/karaf/itests/JndiTest.java
index 441ae91..abacb34 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/JndiTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/JndiTest.java
@@ -25,7 +25,7 @@ import org.apache.karaf.jndi.JndiService;
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
 
-public class JndiTest extends KarafTestSupport {
+public class JndiTest extends BaseTest {
 
     @Before
     public void installJndiFeature() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/KarTest.java b/itests/test/src/test/java/org/apache/karaf/itests/KarTest.java
index 286eb3b..87c39fc 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/KarTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/KarTest.java
@@ -29,7 +29,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class KarTest extends KarafTestSupport {
+public class KarTest extends BaseTest {
 
     @Test
     public void listCommand() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/LogTest.java b/itests/test/src/test/java/org/apache/karaf/itests/LogTest.java
index 0ad808b..0c73b65 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/LogTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/LogTest.java
@@ -32,7 +32,8 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class LogTest extends KarafTestSupport {
+public class LogTest extends BaseTest {
+
     private static final Logger LOGGER = LoggerFactory.getLogger(LogTest.class);
 
     @Test
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/MavenTest.java b/itests/test/src/test/java/org/apache/karaf/itests/MavenTest.java
index 22eb4fc..b7a8cd9 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/MavenTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/MavenTest.java
@@ -71,7 +71,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class MavenTest /*extends KarafTestSupport*/ {
+public class MavenTest /*extends BaseTest*/ {
 
     public static Logger LOG = LoggerFactory.getLogger(MavenTest.class);
 
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ObrTest.java b/itests/test/src/test/java/org/apache/karaf/itests/ObrTest.java
index 880c882..40ac90d 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ObrTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ObrTest.java
@@ -32,7 +32,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ObrTest extends KarafTestSupport {
+public class ObrTest extends BaseTest {
 
     @Before
     public void installObrFeature() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/OverrideConfigTest.java b/itests/test/src/test/java/org/apache/karaf/itests/OverrideConfigTest.java
index 6dc6980..c212dc9 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/OverrideConfigTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/OverrideConfigTest.java
@@ -35,7 +35,7 @@ import static org.junit.Assert.assertEquals;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class OverrideConfigTest extends KarafTestSupport {
+public class OverrideConfigTest extends BaseTest {
 
     @Test
     public void testOverrideConfig() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/PackageTest.java b/itests/test/src/test/java/org/apache/karaf/itests/PackageTest.java
index 89f58b8..029ab8d 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/PackageTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/PackageTest.java
@@ -38,7 +38,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class PackageTest extends KarafTestSupport {
+public class PackageTest extends BaseTest {
     @Inject
     PackageService packageService;
 
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ServiceTest.java b/itests/test/src/test/java/org/apache/karaf/itests/ServiceTest.java
index f2ad8ed..bbc9b90 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ServiceTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ServiceTest.java
@@ -30,7 +30,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ServiceTest extends KarafTestSupport {
+public class ServiceTest extends BaseTest {
 
     @Test
     public void listCommand() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/SystemShutdownTest.java b/itests/test/src/test/java/org/apache/karaf/itests/SystemShutdownTest.java
index fc6cb59..f857056 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/SystemShutdownTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/SystemShutdownTest.java
@@ -27,7 +27,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class SystemShutdownTest extends KarafTestSupport {
+public class SystemShutdownTest extends BaseTest {
 
     @Test
     public void shutdownCommand() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/SystemTest.java b/itests/test/src/test/java/org/apache/karaf/itests/SystemTest.java
index c9d22ca..20c6d80 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/SystemTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/SystemTest.java
@@ -29,7 +29,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class SystemTest extends KarafTestSupport {
+public class SystemTest extends BaseTest {
 
     private static final String KARAF_VERSION = "4";
 
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/WebTest.java b/itests/test/src/test/java/org/apache/karaf/itests/WebTest.java
index 9e66a17..237d407 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/WebTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/WebTest.java
@@ -37,7 +37,7 @@ import static org.junit.Assert.*;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class WebTest extends KarafTestSupport {
+public class WebTest extends BaseTest {
 
     @Before
     public void installWarFeature() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/WrapperTest.java b/itests/test/src/test/java/org/apache/karaf/itests/WrapperTest.java
index 2d14fe1..ab0eb6b 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/WrapperTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/WrapperTest.java
@@ -32,7 +32,7 @@ import java.lang.management.ManagementFactory;
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class WrapperTest extends KarafTestSupport {
+public class WrapperTest extends BaseTest {
     
        
     @Before
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/XATest.java b/itests/test/src/test/java/org/apache/karaf/itests/XATest.java
index 026a473..4f337a9 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/XATest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/XATest.java
@@ -39,7 +39,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.replaceCo
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class XATest extends KarafTestSupport {
+public class XATest extends BaseTest {
 
     private static final EnumSet<FeaturesService.Option> NO_AUTO_REFRESH = EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles);
 
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/BlueprintExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/BlueprintExampleTest.java
index db6374d..e87e325 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/BlueprintExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/BlueprintExampleTest.java
@@ -16,7 +16,7 @@ package org.apache.karaf.itests.examples;
 import org.apache.karaf.examples.blueprint.client.ClientService;
 import org.apache.karaf.examples.blueprint.common.Booking;
 import org.apache.karaf.examples.blueprint.common.BookingService;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,7 +28,7 @@ import java.util.List;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class BlueprintExampleTest extends KarafTestSupport {
+public class BlueprintExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/BundleExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/BundleExampleTest.java
index 4e59b8b..8f6b2e6 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/BundleExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/BundleExampleTest.java
@@ -16,7 +16,7 @@ package org.apache.karaf.itests.examples;
 import org.apache.karaf.examples.bundle.client.ClientService;
 import org.apache.karaf.examples.bundle.common.Booking;
 import org.apache.karaf.examples.bundle.common.BookingService;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,7 +28,7 @@ import java.util.List;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class BundleExampleTest extends KarafTestSupport {
+public class BundleExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/CamelExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/CamelExampleTest.java
index 077398f..41e841f 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/CamelExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/CamelExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -31,7 +31,7 @@ import static org.junit.Assert.assertEquals;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class CamelExampleTest extends KarafTestSupport {
+public class CamelExampleTest extends BaseTest {
 
     public void setup() throws Exception {
         addFeaturesRepository("mvn:org.apache.karaf.examples/karaf-camel-example-features/" + System.getProperty("karaf.version") + "/xml");
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/CommandExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/CommandExampleTest.java
index 648f1a3..7f26b3e 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/CommandExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/CommandExampleTest.java
@@ -14,7 +14,7 @@
 package org.apache.karaf.itests.examples;
 
 import org.apache.karaf.examples.command.api.BookingService;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -23,7 +23,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class CommandExampleTest extends KarafTestSupport {
+public class CommandExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/ConfigExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/ConfigExampleTest.java
index 2fead38..8f6a8ff 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/ConfigExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/ConfigExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,7 +34,7 @@ import java.util.Hashtable;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class ConfigExampleTest extends KarafTestSupport {
+public class ConfigExampleTest extends BaseTest {
 
     private ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
     private PrintStream originStream;
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/DeployerExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/DeployerExampleTest.java
index 7cc3b7d..38e249d 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/DeployerExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/DeployerExampleTest.java
@@ -15,7 +15,7 @@ package org.apache.karaf.itests.examples;
 
 import org.apache.felix.fileinstall.ArtifactInstaller;
 import org.apache.felix.fileinstall.ArtifactListener;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -24,7 +24,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class DeployerExampleTest extends KarafTestSupport {
+public class DeployerExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/DumpExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/DumpExampleTest.java
index a53fc16..c5dd95b 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/DumpExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/DumpExampleTest.java
@@ -14,7 +14,7 @@
 package org.apache.karaf.itests.examples;
 
 import org.apache.karaf.diagnostic.core.DumpProvider;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -23,7 +23,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class DumpExampleTest extends KarafTestSupport {
+public class DumpExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/HttpResourceExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/HttpResourceExampleTest.java
index aff8a49..cfe76eb 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/HttpResourceExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/HttpResourceExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -30,7 +30,7 @@ import java.net.URL;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class HttpResourceExampleTest extends KarafTestSupport {
+public class HttpResourceExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/JdbcExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/JdbcExampleTest.java
index 9d751f0..6128b46 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/JdbcExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/JdbcExampleTest.java
@@ -14,7 +14,7 @@
 package org.apache.karaf.itests.examples;
 
 import org.apache.karaf.examples.jdbc.api.BookingService;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -23,7 +23,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class JdbcExampleTest extends KarafTestSupport {
+public class JdbcExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/JmsExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/JmsExampleTest.java
index c4ca654..350ed89 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/JmsExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/JmsExampleTest.java
@@ -14,7 +14,7 @@
 package org.apache.karaf.itests.examples;
 
 import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Configuration;
@@ -34,7 +34,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.replaceCo
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class JmsExampleTest extends KarafTestSupport {
+public class JmsExampleTest extends BaseTest {
 
     private static final EnumSet<FeaturesService.Option> NO_AUTO_REFRESH = EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles);
 
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/JpaExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/JpaExampleTest.java
index 74b51cc..f252273 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/JpaExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/JpaExampleTest.java
@@ -14,8 +14,7 @@
 package org.apache.karaf.itests.examples;
 
 import org.apache.karaf.bundle.core.BundleService;
-import org.apache.karaf.examples.jpa.BookingService;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.apache.karaf.jaas.boot.principal.RolePrincipal;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -25,7 +24,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class JpaExampleTest extends KarafTestSupport {
+public class JpaExampleTest extends BaseTest {
 
     private static final RolePrincipal[] ADMIN_ROLES = {
             new RolePrincipal(BundleService.SYSTEM_BUNDLES_ROLE),
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/LogAppenderExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/LogAppenderExampleTest.java
index e3c1d1a..ceaf388 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/LogAppenderExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/LogAppenderExampleTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -22,7 +22,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class LogAppenderExampleTest extends KarafTestSupport {
+public class LogAppenderExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/MBeanExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/MBeanExampleTest.java
index 1197ea1..6cc7d61 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/MBeanExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/MBeanExampleTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,7 +28,7 @@ import java.lang.management.ManagementFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class MBeanExampleTest extends KarafTestSupport {
+public class MBeanExampleTest extends BaseTest {
 
     private void setup() throws Exception {
         addFeaturesRepository("mvn:org.apache.karaf.examples/karaf-mbean-example-features/" + System.getProperty("karaf.version") + "/xml");
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/NamespaceHandlerExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/NamespaceHandlerExampleTest.java
index 4695c9c..6fb5d49 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/NamespaceHandlerExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/NamespaceHandlerExampleTest.java
@@ -17,7 +17,7 @@
 package org.apache.karaf.itests.examples;
 
 import org.apache.karaf.bundle.core.BundleService;
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.apache.karaf.jaas.boot.principal.RolePrincipal;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -27,7 +27,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class NamespaceHandlerExampleTest extends KarafTestSupport {
+public class NamespaceHandlerExampleTest extends BaseTest {
 
     private static final RolePrincipal[] ADMIN_ROLES = {
             new RolePrincipal(BundleService.SYSTEM_BUNDLES_ROLE),
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/RestExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/RestExampleTest.java
index 5e4d9f4..b77455f 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/RestExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/RestExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -35,7 +35,7 @@ import static org.junit.Assert.assertEquals;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class RestExampleTest extends KarafTestSupport {
+public class RestExampleTest extends BaseTest {
 
     private void setup() throws Exception {
         addFeaturesRepository("mvn:org.apache.karaf.examples/karaf-rest-example-features/" + System.getProperty("karaf.version") + "/xml");
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java
index f1c40dd..bd1e45b 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -25,7 +25,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class SchedulerExampleTest extends KarafTestSupport {
+public class SchedulerExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleTest.java
index 0e1a47f..ec53b1f 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -25,7 +25,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ScrExampleTest extends KarafTestSupport {
+public class ScrExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleWithEquinoxTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleWithEquinoxTest.java
index 669633e..dc18003 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleWithEquinoxTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/ScrExampleWithEquinoxTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Configuration;
@@ -32,7 +32,7 @@ import java.util.List;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class ScrExampleWithEquinoxTest extends KarafTestSupport {
+public class ScrExampleWithEquinoxTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/ServletExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/ServletExampleTest.java
index c90e3ee..4ef1037 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/ServletExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/ServletExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -30,7 +30,7 @@ import java.net.URL;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
-public class ServletExampleTest extends KarafTestSupport {
+public class ServletExampleTest extends BaseTest {
 
     private void setup() throws Exception {
         addFeaturesRepository("mvn:org.apache.karaf.examples/karaf-servlet-example-features/" + System.getProperty("karaf.version") + "/xml");
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/SoapExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/SoapExampleTest.java
index 2e4d8c0..751c6e6 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/SoapExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/SoapExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -25,7 +25,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class SoapExampleTest extends KarafTestSupport {
+public class SoapExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/WarExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/WarExampleTest.java
index 9048cab..967d270 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/WarExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/WarExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -30,7 +30,7 @@ import java.net.URL;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class WarExampleTest extends KarafTestSupport {
+public class WarExampleTest extends BaseTest {
 
     @Test
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/WebSocketExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/WebSocketExampleTest.java
index 3f19115..e22fca3 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/WebSocketExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/WebSocketExampleTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.karaf.itests.examples;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.eclipse.jetty.websocket.api.Session;
 import org.eclipse.jetty.websocket.api.StatusCode;
 import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
@@ -43,7 +43,7 @@ import static junit.framework.TestCase.assertTrue;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class WebSocketExampleTest extends KarafTestSupport {
+public class WebSocketExampleTest extends BaseTest {
 
     @Test(timeout = 60000)
     public void test() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/EnterpriseFeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/EnterpriseFeaturesTest.java
index be25414..6d33be2 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/EnterpriseFeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/EnterpriseFeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.apache.karaf.itests.util.RunIfRules.RunIfNotOnJdk8;
 import org.apache.karaf.itests.util.RunIfRule;
 
@@ -37,7 +37,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class EnterpriseFeaturesTest extends KarafTestSupport {
+public class EnterpriseFeaturesTest extends BaseTest {
 
     @Rule
     public RunIfRule rule = new RunIfRule();
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/PaxCdiFeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/PaxCdiFeaturesTest.java
index c729322..5d00b54 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/PaxCdiFeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/PaxCdiFeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.apache.karaf.itests.util.RunIfRule;
 
 import org.junit.Rule;
@@ -33,7 +33,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class PaxCdiFeaturesTest extends KarafTestSupport {
+public class PaxCdiFeaturesTest extends BaseTest {
 
     @Rule
     public RunIfRule rule = new RunIfRule();
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java
index bf21fef..6fd234f 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 
 import org.junit.Ignore;
 import org.junit.Test;
@@ -34,7 +34,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class Spring3FeaturesTest extends KarafTestSupport {
+public class Spring3FeaturesTest extends BaseTest {
 
     // Spring DM
 
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java
index 4de764e..97a25c5 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -33,7 +33,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class Spring40FeaturesTest extends KarafTestSupport {
+public class Spring40FeaturesTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
index b5a700e..ce641cb 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -33,7 +33,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class Spring41FeaturesTest extends KarafTestSupport {
+public class Spring41FeaturesTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring42FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring42FeaturesTest.java
index d27da70..cd2b7d3 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring42FeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring42FeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -33,7 +33,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class Spring42FeaturesTest extends KarafTestSupport {
+public class Spring42FeaturesTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java
index c8316e7..16e0812 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Configuration;
@@ -31,7 +31,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class Spring43FeaturesTest extends KarafTestSupport {
+public class Spring43FeaturesTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring50FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring50FeaturesTest.java
index 58af9e1..1469266 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring50FeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring50FeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Configuration;
@@ -31,7 +31,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class Spring50FeaturesTest extends KarafTestSupport {
+public class Spring50FeaturesTest extends BaseTest {
 
     @Configuration
     public Option[] config() {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring51FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring51FeaturesTest.java
index 991b310..9bf1119 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring51FeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring51FeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -22,7 +22,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class Spring51FeaturesTest extends KarafTestSupport {
+public class Spring51FeaturesTest extends BaseTest {
 
     @Test
     public void installSpringFeature() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java
index 7d1ff56..11659bf 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.karaf.itests.features;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -24,7 +24,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class StandardFeaturesTest extends KarafTestSupport {
+public class StandardFeaturesTest extends BaseTest {
 
     @Test
     public void checkInstalledFeaturesBoot() throws Exception {
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java b/itests/test/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java
index ba93a77..ac1d690 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java
@@ -21,7 +21,7 @@ import java.io.PipedOutputStream;
 import java.util.EnumSet;
 import java.util.Set;
 
-import org.apache.karaf.itests.KarafTestSupport;
+import org.apache.karaf.itests.BaseTest;
 import org.apache.sshd.client.SshClient;
 import org.apache.sshd.client.channel.ClientChannel;
 import org.apache.sshd.client.channel.ClientChannelEvent;
@@ -37,7 +37,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
-public class SshCommandTestBase extends KarafTestSupport {
+public class SshCommandTestBase extends BaseTest {
 
     enum Result { OK, NOT_FOUND, NO_CREDENTIALS }