pax-exam 3.0.0 migration (work in progress ...).


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1531229 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FilterIndexResourceAdapterTest.java b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FilterIndexResourceAdapterTest.java
deleted file mode 100644
index 29bf371..0000000
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FilterIndexResourceAdapterTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * 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.felix.dm.test;
-//import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
-//import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
-
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import junit.framework.Assert;
-
-import org.apache.felix.dm.DependencyManager;
-import org.apache.felix.dm.ResourceHandler;
-import org.apache.felix.dm.ResourceUtil;
-import org.apache.felix.dm.ServiceUtil;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-
-
-@RunWith(JUnit4TestRunner.class)
-public class FilterIndexResourceAdapterTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            //vmOption( "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" ),
-            //waitForFrameworkStartupFor(Long.MAX_VALUE),
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }
-
-    
-    @Test
-    public void testBasicResourceAdapter(BundleContext context) throws Exception {
-        System.setProperty("org.apache.felix.dependencymanager.filterindex", "objectClass");
-        DependencyManager m = new DependencyManager(context);
-        // helper class that ensures certain steps get executed in sequence
-        Ensure e = new Ensure();
-        // create a resource provider
-        ResourceProvider provider = new ResourceProvider(e);
-        // activate it
-        m.add(m.createComponent().setImplementation(provider).add(m.createServiceDependency().setService(ResourceHandler.class).setCallbacks("add", "remove")));
-        // create a resource adapter for our single resource
-        // note that we can provide an actual implementation instance here because there will be only one
-        // adapter, normally you'd want to specify a Class here
-        m.add(m.createResourceAdapterService("(&(path=/path/to/*.txt)(host=localhost))", false, null, "changed")
-              .setImplementation(new ResourceAdapter(e)));
-        // wait until the single resource is available
-        e.waitForStep(3, 5000);
-        // trigger a 'change' in our resource
-        provider.change();
-        // wait until the changed callback is invoked
-        e.waitForStep(4, 5000);
-     }
-    
-    static class ResourceAdapter {
-        protected URL m_resource; // injected by reflection.
-        private Ensure m_ensure;
-        
-        ResourceAdapter(Ensure e) {
-            m_ensure = e;
-        }
-        
-        public void start() {
-            m_ensure.step(1);
-            Assert.assertNotNull("resource not injected", m_resource);
-            m_ensure.step(2);
-            try {
-                InputStream in = m_resource.openStream();
-            } 
-            catch (FileNotFoundException e) {
-                m_ensure.step(3);
-            }
-            catch (IOException e) {
-                Assert.fail("We should not have gotten this exception.");
-            }
-        }
-        
-        public void changed() {
-            m_ensure.step(4);
-        }
-    }
-    
-    static class ResourceProvider {
-        private volatile BundleContext m_context;
-        private final Ensure m_ensure;
-        private final Map m_handlers = new HashMap();
-        private URL[] m_resources;
-
-        public ResourceProvider(Ensure ensure) throws MalformedURLException {
-            m_ensure = ensure;
-            m_resources = new URL[] {
-                new URL("file://localhost/path/to/file1.txt")
-            };
-        }
-        
-        public void change() {
-            ResourceHandler[] handlers;
-            synchronized (m_handlers) {
-                handlers = (ResourceHandler[]) m_handlers.keySet().toArray(new ResourceHandler[m_handlers.size()]);
-            }
-            for (int i = 0; i < m_resources.length; i++) {
-                for (int j = 0; j < handlers.length; j++) {
-                    ResourceHandler handler = handlers[j];
-                    handler.changed(m_resources[i]);
-                }
-            }
-        }
-
-        public void add(ServiceReference ref, ResourceHandler handler) {
-            System.out.println("RP.add: " + ServiceUtil.toString(ref));
-            String filterString = (String) ref.getProperty("filter");
-            Filter filter = null;
-            if (filterString != null) {
-                try {
-                    filter = m_context.createFilter(filterString);
-                }
-                catch (InvalidSyntaxException e) {
-                    Assert.fail("Could not create filter for resource handler: " + e);
-                    return;
-                }
-            }
-            synchronized (m_handlers) {
-                m_handlers.put(handler, filter);
-            }
-            for (int i = 0; i < m_resources.length; i++) {
-                if (filter == null || filter.match(ResourceUtil.createProperties(m_resources[i]))) {
-                    handler.added(m_resources[i]);
-                }
-            }
-        }
-
-        public void remove(ServiceReference ref, ResourceHandler handler) {
-            Filter filter;
-            synchronized (m_handlers) {
-                filter = (Filter) m_handlers.remove(handler);
-            }
-            removeResources(handler, filter);
-        }
-
-        private void removeResources(ResourceHandler handler, Filter filter) {
-                for (int i = 0; i < m_resources.length; i++) {
-                    if (filter == null || filter.match(ResourceUtil.createProperties(m_resources[i]))) {
-                        handler.removed(m_resources[i]);
-                    }
-                }
-            }
-
-        public void destroy() {
-            Entry[] handlers;
-            synchronized (m_handlers) {
-                handlers = (Entry[]) m_handlers.entrySet().toArray(new Entry[m_handlers.size()]);
-            }
-            for (int i = 0; i < handlers.length; i++) {
-                removeResources((ResourceHandler) handlers[i].getKey(), (Filter) handlers[i].getValue());
-            }
-            
-            System.out.println("DESTROY..." + m_handlers.size());
-        }
-    }
-}
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterAndConsumerTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterAndConsumerTest.java
similarity index 86%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterAndConsumerTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterAndConsumerTest.java
index 33a56fa..806c657 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterAndConsumerTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterAndConsumerTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,15 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class AdapterAndConsumerTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class AdapterAndConsumerTest extends TestBase {
     
     @Test
-    public void testServiceWithAdapterAndConsumer(BundleContext context) {
+    public void testServiceWithAdapterAndConsumer() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterWithExtraDependenciesTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithExtraDependenciesTest.java
similarity index 85%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterWithExtraDependenciesTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithExtraDependenciesTest.java
index 7bd1f99..15d4b44 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterWithExtraDependenciesTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithExtraDependenciesTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class AdapterWithExtraDependenciesTest {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class AdapterWithExtraDependenciesTest extends TestBase {
     @Test
-    public void testAdapterWithExtraDependenciesAndCallbacks(BundleContext context) {
+    public void testAdapterWithExtraDependenciesAndCallbacks() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -75,6 +69,9 @@
         
         // make sure both adapters have their "remove" callbacks invoked
         e.waitForStep(4, 5000);
+        
+        m.remove(s1);
+        m.remove(sa);
     }
     
     static interface S1 {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterWithInstanceBoundDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithInstanceBoundDependencyTest.java
similarity index 88%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterWithInstanceBoundDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithInstanceBoundDependencyTest.java
index bc2c81f..c5f4f94 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterWithInstanceBoundDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithInstanceBoundDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class AdapterWithInstanceBoundDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class AdapterWithInstanceBoundDependencyTest extends TestBase {
     @Test
-    public void testInstanceBoundDependency(BundleContext context) {
+    public void testInstanceBoundDependency() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectChainTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectChainTest.java
similarity index 87%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectChainTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectChainTest.java
index 3510315..dabec19 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectChainTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectChainTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class AspectChainTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class AspectChainTest extends TestBase {
     @Test
-    public void testBuildAspectChain(BundleContext context) {
+    public void testBuildAspectChain() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectDynamicsTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectDynamicsTest.java
similarity index 91%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectDynamicsTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectDynamicsTest.java
index 5058846..b766283 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectDynamicsTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectDynamicsTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class AspectDynamicsTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class AspectDynamicsTest extends TestBase {
     @Test
-    public void testDynamicallyAddAndRemoveAspect(BundleContext context) {
+    public void testDynamicallyAddAndRemoveAspect() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectWhiteboardTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectWhiteboardTest.java
similarity index 92%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectWhiteboardTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectWhiteboardTest.java
index a3734e0..bfa4e7d 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectWhiteboardTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectWhiteboardTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -39,20 +39,14 @@
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 
-@RunWith(JUnit4TestRunner.class)
-public class AspectWhiteboardTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class AspectWhiteboardTest extends TestBase {
     @Test
-    public void testWhiteboardConsumer(BundleContext context) {
+    public void testWhiteboardConsumer() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/BundleDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/BundleDependencyTest.java
similarity index 88%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/BundleDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/BundleDependencyTest.java
index 0c30262..9b8a9fd 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/BundleDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/BundleDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -33,20 +33,14 @@
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class BundleDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class BundleDependencyTest extends TestBase {
     @Test
-    public void testBundleDependencies(BundleContext context) {
+    public void testBundleDependencies() {
         DependencyManager m = new DependencyManager(context);
         // create a service provider and consumer
         Consumer c = new Consumer();
@@ -72,7 +66,7 @@
     }
     
     @Test
-    public void testRequiredBundleDependency(BundleContext context) {
+    public void testRequiredBundleDependency() {
         DependencyManager m = new DependencyManager(context);
         // create a service provider and consumer
         Consumer c = new Consumer();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/CompositionTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CompositionTest.java
similarity index 86%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/CompositionTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CompositionTest.java
index e692c56..4b1d0cb 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/CompositionTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CompositionTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class CompositionTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class CompositionTest extends TestBase {
     @Test
-    public void testComposition(BundleContext context) {
+    public void testComposition() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -57,6 +51,7 @@
         m.add(sc);
         // ensure we executed all steps inside the component instance
         e.step(6);
+        m.clear();
     }
     
     static interface ServiceInterface {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/CustomDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CustomDependencyTest.java
similarity index 82%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/CustomDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CustomDependencyTest.java
index d90b14d..b01e86e 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/CustomDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CustomDependencyTest.java
@@ -1,4 +1,22 @@
-package org.apache.felix.dm.test;
+/*
+ * 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.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -20,20 +38,14 @@
 import org.osgi.framework.BundleContext;
 
 
-@RunWith(JUnit4TestRunner.class)
-public class CustomDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class CustomDependencyTest extends TestBase {
     @Test
-    public void testCustomDependency(BundleContext context) {
+    public void testCustomDependency() {
         Ensure e = new Ensure();
         DependencyManager dm = new DependencyManager(context);
         
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/DynamicProxyAspectTest.java
similarity index 92%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/DynamicProxyAspectTest.java
index 168b1dd..c92725b 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/DynamicProxyAspectTest.java
@@ -1,4 +1,4 @@
-/*
+/**
  * 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
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -37,20 +37,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class DynamicProxyAspectTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class DynamicProxyAspectTest extends TestBase {
     @Test
-    public void testImplementGenericAspectWithDynamicProxy(BundleContext context) {
+    public void testImplementGenericAspectWithDynamicProxy() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -93,6 +87,14 @@
         // make sure the proxy has been called twice
         Assert.assertEquals("Proxy should have been invoked this many times.", 2, DynamicProxyHandler.getCounter());
         
+        m.remove(sc);
+        m.remove(a2);
+        m.remove(a1);
+        m.remove(sp2);
+        m.remove(sp1);
+        m.remove(a2);
+        m.remove(a1);
+        
         try {
             Thread.sleep(2000);
         }
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2078_ServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2078_ServiceDependencyTest.java
similarity index 85%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2078_ServiceDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2078_ServiceDependencyTest.java
index 922948d..02b66fb 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2078_ServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2078_ServiceDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class FELIX2078_ServiceDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class FELIX2078_ServiceDependencyTest extends TestBase {
     @Test
-    public void testRequiredServiceRegistrationAndConsumption(BundleContext context) {
+    public void testRequiredServiceRegistrationAndConsumption() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -66,7 +60,7 @@
     }
     
     @Test
-    public void testOptionalServiceRegistrationAndConsumption(BundleContext context) {
+    public void testOptionalServiceRegistrationAndConsumption() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2344_ExtraDependencyWithAutoConfigTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
similarity index 88%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2344_ExtraDependencyWithAutoConfigTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
index 3a405f6..0e87840 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2344_ExtraDependencyWithAutoConfigTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -32,23 +32,17 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class FELIX2344_ExtraDependencyWithAutoConfigTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class FELIX2344_ExtraDependencyWithAutoConfigTest extends TestBase {
     /**
      * Test if an auto config extra dependency is injected in the expected order.
      */
     @Test
-    public void testExtraDependencyWithAutoConfig(BundleContext context) {  
+    public void testExtraDependencyWithAutoConfig() {  
         DependencyManager m = new DependencyManager(context);
         // Helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2344_ExtraDependencyWithCallbackTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithCallbackTest.java
similarity index 88%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2344_ExtraDependencyWithCallbackTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithCallbackTest.java
index 9dfda9c..4fa7245 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2344_ExtraDependencyWithCallbackTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithCallbackTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -35,23 +35,17 @@
 /**
  * Tests for extra dependencies which are declared from service's init method.
  */
-@RunWith(JUnit4TestRunner.class)
-public class FELIX2344_ExtraDependencyWithCallbackTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class FELIX2344_ExtraDependencyWithCallbackTest extends TestBase {
     /**
      * Checks if an extra optional/required dependency is properly injected into a consumer, using callbacks.
      */
     @Test
-    public void testExtraDependencyWithCallback(BundleContext context) {
+    public void testExtraDependencyWithCallback() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -82,6 +76,7 @@
         m.add(sc3);
         m.add(sp);
         e.waitForStep(12, 5000);
+        m.clear();
     }
     
     public interface ProviderInterface {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2348_ResourceAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2348_ResourceAdapterTest.java
similarity index 89%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2348_ResourceAdapterTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2348_ResourceAdapterTest.java
index 9061ddf..9fbbd37 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2348_ResourceAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2348_ResourceAdapterTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -46,20 +46,14 @@
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-@RunWith(JUnit4TestRunner.class)
-public class FELIX2348_ResourceAdapterTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class FELIX2348_ResourceAdapterTest extends TestBase {
     @Test
-    public void testBasicResourceAdapter(BundleContext context) throws Exception {
+    public void testBasicResourceAdapter() throws Exception {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -67,6 +61,7 @@
               .setImplementation(new ResourceAdapter(e)));
         m.add(m.createComponent().setImplementation(new ResourceProvider(e)).add(m.createServiceDependency().setService(ResourceHandler.class).setCallbacks("add", "remove")));
         e.waitForStep(3, 5000);
+        m.clear();
      }
     
     static class ResourceAdapter {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2369_ExtraDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2369_ExtraDependencyTest.java
similarity index 88%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2369_ExtraDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2369_ExtraDependencyTest.java
index 925a51d..ce414f4 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX2369_ExtraDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2369_ExtraDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -41,21 +41,15 @@
  * This testcase verify that a Service is not started if one of its extra required dependencies
  * is unavailable.
  */
-@RunWith(JUnit4TestRunner.class)
-public class FELIX2369_ExtraDependencyTest extends Base
-{
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class FELIX2369_ExtraDependencyTest extends TestBase
+{
     @Test
-    public void testExtraDependencies(BundleContext context) {
+    public void testExtraDependencies() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -129,4 +123,4 @@
             m_ensure.step(m_startStep+1);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3008_FilterIndexStartupTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3008_FilterIndexStartupTest.java
similarity index 80%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3008_FilterIndexStartupTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3008_FilterIndexStartupTest.java
index 2be6917..b08fd1a 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3008_FilterIndexStartupTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3008_FilterIndexStartupTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 //import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
 //import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
@@ -36,22 +36,14 @@
 import org.osgi.framework.BundleContext;
 
 
-@RunWith(JUnit4TestRunner.class)
-public class FELIX3008_FilterIndexStartupTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            //vmOption( "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" ),
-            //waitForFrameworkStartupFor(Long.MAX_VALUE),
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject().noStart()
-            )
-        );
-    }
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class FELIX3008_FilterIndexStartupTest extends TestBase {
     @Test
-    public void testNormalStart(BundleContext context) throws Exception {
+    public void testNormalStart() throws Exception {
         System.setProperty("org.apache.felix.dependencymanager.filterindex", "objectClass");
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3057_EmptyServiceReferenceArray.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3057_EmptyServiceReferenceArray.java
similarity index 74%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3057_EmptyServiceReferenceArray.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3057_EmptyServiceReferenceArray.java
index fea7273..2c962f0 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3057_EmptyServiceReferenceArray.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3057_EmptyServiceReferenceArray.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 //import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
 //import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
@@ -35,27 +35,19 @@
 import org.osgi.framework.InvalidSyntaxException;
 
 
-@RunWith(JUnit4TestRunner.class)
-public class FELIX3057_EmptyServiceReferenceArray extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            //vmOption( "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" ),
-            //waitForFrameworkStartupFor(Long.MAX_VALUE),
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject().noStart()
-            )
-        );
-    }
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class FELIX3057_EmptyServiceReferenceArray extends TestBase {
     @Test
-    public void testWithoutIndex(BundleContext context) throws Exception {
+    public void testWithoutIndex() throws Exception {
         executeTest(context);
     }
     
     @Test
-    public void testWithIndex(BundleContext context) throws Exception {
+    public void testWithIndex() throws Exception {
         System.setProperty(DependencyManager.SERVICEREGISTRY_CACHE_INDICES, "objectClass");
         executeTest(context);
     }
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3186_AspectAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3186_AspectAdapterTest.java
similarity index 89%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3186_AspectAdapterTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3186_AspectAdapterTest.java
index 7dca3a9..2f16f27 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/FELIX3186_AspectAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3186_AspectAdapterTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -32,6 +32,10 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
 /**
  * Scenario: 
  * 
@@ -40,20 +44,10 @@
  * Expected behavior is transparent replacement of the service the adapter adapts with the aspect service.
  *
  */
-@RunWith(JUnit4TestRunner.class)
-public class FELIX3186_AspectAdapterTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }
-    
+@RunWith(PaxExam.class)
+public class FELIX3186_AspectAdapterTest extends TestBase {
     @Test
-    public void testAdapterWithAspectMultipleTimes(BundleContext context) throws Exception {
+    public void testAdapterWithAspectMultipleTimes() throws Exception {
         // TODO this test is broken, it assumes that the order in which listeners are added to the BundleContext will also
         // be the order in which they're invoked (which from a spec point of view is not true)
         
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FilterIndexResourceAdapterTest.java
similarity index 89%
copy from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterTest.java
copy to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FilterIndexResourceAdapterTest.java
index a7d9f49..349f11a 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FilterIndexResourceAdapterTest.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
+//import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
+//import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -36,6 +38,7 @@
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ResourceHandler;
 import org.apache.felix.dm.ResourceUtil;
+import org.apache.felix.dm.ServiceUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Option;
@@ -46,20 +49,16 @@
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-@RunWith(JUnit4TestRunner.class)
-public class ResourceAdapterTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
 
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class FilterIndexResourceAdapterTest extends TestBase {
     @Test
-    public void testBasicResourceAdapter(BundleContext context) throws Exception {
+    public void testBasicResourceAdapter() throws Exception {
+        System.setProperty("org.apache.felix.dependencymanager.filterindex", "objectClass");
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -78,6 +77,7 @@
         provider.change();
         // wait until the changed callback is invoked
         e.waitForStep(4, 5000);
+        m.clear();
      }
     
     static class ResourceAdapter {
@@ -135,6 +135,7 @@
         }
 
         public void add(ServiceReference ref, ResourceHandler handler) {
+            System.out.println("RP.add: " + ServiceUtil.toString(ref));
             String filterString = (String) ref.getProperty("filter");
             Filter filter = null;
             if (filterString != null) {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleExtraDependenciesTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependenciesTest.java
similarity index 92%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleExtraDependenciesTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependenciesTest.java
index 8789ad5..2dc0d26 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleExtraDependenciesTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependenciesTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -35,25 +35,19 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class MultipleExtraDependenciesTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class MultipleExtraDependenciesTest extends TestBase {
     /**
      * Check that list of extra dependencies (defined from init method) are handled properly.
      * The extra dependencies are added using a List object (Component.add(List)).
      * A component c1 will define two extra dependencies over *available* c4/c5 services.
      */
      @Test
-     public void testWithTwoAvailableExtraDependency(BundleContext context) {   
+     public void testWithTwoAvailableExtraDependency() {   
          DependencyManager m = new DependencyManager(context);
          // Helper class that ensures certain steps get executed in sequence
          Ensure e = new Ensure();
@@ -103,6 +97,7 @@
          // both extra dependencies are available, so the c1 component should be started immediately.
          m.add(c1);
          e.waitForStep(3, 3000);
+         m.clear();
      }
 
     /**
@@ -114,7 +109,7 @@
      * Then c5 is added, and it triggers the c1 activation ...
      */
    @Test
-    public void testWithOneAvailableExtraDependency(BundleContext context) {  
+    public void testWithOneAvailableExtraDependency() {  
         DependencyManager m = new DependencyManager(context);
         // Helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -166,6 +161,7 @@
         System.out.println("\n+++ Adding c5 / Service3(yy)");
         m.add(c5);
         e.waitForStep(3, 3000);
+        m.clear();
     }
 
 
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleExtraDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest.java
similarity index 91%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleExtraDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest.java
index 91f4d12..75111f4 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleExtraDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -36,20 +36,14 @@
 /**
  * Test which validates multi-dependencies combination.
  */
-@RunWith(JUnit4TestRunner.class)
-public class MultipleExtraDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class MultipleExtraDependencyTest extends TestBase {
     @Test
-    public void testMultipleExtraDependencies(BundleContext context)
+    public void testMultipleExtraDependencies()
     {
         DependencyManager m = new DependencyManager(context);
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleServiceDependencyTest.java
similarity index 88%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleServiceDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleServiceDependencyTest.java
index c8f5bf4..599012c 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleServiceDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -34,20 +34,14 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 
-@RunWith(JUnit4TestRunner.class)
-public class MultipleServiceDependencyTest extends Base {
-   @Configuration
-   public static Option[] configuration() {
-       return options(
-           provision(
-               mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-               mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-           )
-       );
-   }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class MultipleServiceDependencyTest extends TestBase {
    @Test
-   public void testMultipleServiceRegistrationAndConsumption(BundleContext context) {
+   public void testMultipleServiceRegistrationAndConsumption() {
        DependencyManager m = new DependencyManager(context);
        // helper class that ensures certain steps get executed in sequence
        Ensure e = new Ensure();
@@ -68,7 +62,7 @@
    }
 
    @Test
-   public void testReplacementAutoConfig(BundleContext context) {
+   public void testReplacementAutoConfig() {
        DependencyManager m = new DependencyManager(context);
        // helper class that ensures certain steps get executed in sequence
        Ensure e = new Ensure();
@@ -89,7 +83,7 @@
    }
 
    @Test
-   public void testReplacementCallbacks(BundleContext context) {
+   public void testReplacementCallbacks() {
        DependencyManager m = new DependencyManager(context);
        // helper class that ensures certain steps get executed in sequence
        Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterDependencyAddAndRemoveTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterDependencyAddAndRemoveTest.java
similarity index 93%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterDependencyAddAndRemoveTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterDependencyAddAndRemoveTest.java
index 642d259..ddc8f91 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterDependencyAddAndRemoveTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterDependencyAddAndRemoveTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -48,20 +48,14 @@
 import org.osgi.framework.ServiceReference;
 
 
-@RunWith(JUnit4TestRunner.class)
-public class ResourceAdapterDependencyAddAndRemoveTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class ResourceAdapterDependencyAddAndRemoveTest extends TestBase {
     @Test
-    public void testBasicResourceAdapter(BundleContext context) throws Exception {
+    public void testBasicResourceAdapter() throws Exception {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterTest.java
similarity index 91%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterTest.java
index a7d9f49..11624cf 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -46,20 +46,14 @@
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-@RunWith(JUnit4TestRunner.class)
-public class ResourceAdapterTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class ResourceAdapterTest extends TestBase {
     @Test
-    public void testBasicResourceAdapter(BundleContext context) throws Exception {
+    public void testBasicResourceAdapter() throws Exception {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -78,6 +72,7 @@
         provider.change();
         // wait until the changed callback is invoked
         e.waitForStep(4, 5000);
+        m.clear();
      }
     
     static class ResourceAdapter {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceDependencyTest.java
similarity index 93%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceDependencyTest.java
index f2938a0..09a9c91 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ResourceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -47,20 +47,14 @@
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-@RunWith(JUnit4TestRunner.class)
-public class ResourceDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class ResourceDependencyTest extends TestBase {
     @Test
-    public void testResourceDependency(BundleContext context) {
+    public void testResourceDependency() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyComponentLifeCycleTest.java
similarity index 89%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyComponentLifeCycleTest.java
index 07618f3..25a5905 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyComponentLifeCycleTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 //import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
 //import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
@@ -37,22 +37,14 @@
 import org.osgi.util.tracker.ServiceTracker;
 
 
-@RunWith(JUnit4TestRunner.class)
-public class ServiceDependencyComponentLifeCycleTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            //vmOption( "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" ),
-            //waitForFrameworkStartupFor(Long.MAX_VALUE),
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class ServiceDependencyComponentLifeCycleTest extends TestBase {
     @Test
-    public void testComponentLifeCycleWhenAddingAndRemovingDependencies(BundleContext context) throws Exception {
+    public void testComponentLifeCycleWhenAddingAndRemovingDependencies() throws Exception {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyInjectionTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyInjectionTest.java
similarity index 88%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyInjectionTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyInjectionTest.java
index 0297687..34e8a05 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyInjectionTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyInjectionTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -32,20 +32,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class ServiceDependencyInjectionTest {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class ServiceDependencyInjectionTest extends TestBase {
     @Test
-    public void testServiceInjection(BundleContext context) {
+    public void testServiceInjection() {
         DependencyManager m = new DependencyManager(context);
         Ensure e = new Ensure();
         // create a service provider and consumer
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyPropagateTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyPropagateTest.java
similarity index 87%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyPropagateTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyPropagateTest.java
index 1711bda..7773b09 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyPropagateTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyPropagateTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -36,26 +36,20 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
 /**
  * Validates ServiceDependency service properties propagation.
  */
-@RunWith(JUnit4TestRunner.class)
-public class ServiceDependencyPropagateTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-
+@RunWith(PaxExam.class)
+public class ServiceDependencyPropagateTest extends TestBase {
     /**
      * Checks that a ServiceDependency propagates the dependency service properties to the provided service properties.
      */
     @Test
-    public void testServiceDependencyPropagate(BundleContext context) {
+    public void testServiceDependencyPropagate() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -77,6 +71,11 @@
         m.add(c3);
 
         e.waitForStep(3, 10000);
+        
+        m.remove(c3);
+        m.remove(c2);
+        m.remove(c1);
+        m.clear();
     }
     
     /**
@@ -84,7 +83,7 @@
      * using a callback method.
      */
     @Test
-    public void testServiceDependencyPropagateCallback(BundleContext context) {
+    public void testServiceDependencyPropagateCallback() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -107,6 +106,7 @@
         m.add(c3);
 
         e.waitForStep(3, 10000);
+        m.clear();
     }
     
     public static class C1 {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyTest.java
similarity index 84%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyTest.java
index db1540e..53e5d19 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class ServiceDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class ServiceDependencyTest extends TestBase {
     @Test
-    public void testServiceRegistrationAndConsumption(BundleContext context) {
+    public void testServiceRegistrationAndConsumption() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyThroughCallbackInstanceTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyThroughCallbackInstanceTest.java
similarity index 79%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyThroughCallbackInstanceTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyThroughCallbackInstanceTest.java
index df84897..1ebd138 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyThroughCallbackInstanceTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyThroughCallbackInstanceTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,25 +31,19 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class ServiceDependencyThroughCallbackInstanceTest {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class ServiceDependencyThroughCallbackInstanceTest extends TestBase {
     @Test
-    public void testServiceWithCallbacksAndOneDependency(BundleContext context) {
+    public void testServiceWithCallbacksAndOneDependency() {
         invokeTest(context, 1);
     }
     
     @Test
-    public void testServiceWithCallbacksAndThreeDependencies(BundleContext context) {
+    public void testServiceWithCallbacksAndThreeDependencies() {
         invokeTest(context, 3);
     }
 
@@ -81,6 +75,7 @@
 		);
 		
 		Assert.assertEquals(numberOfServices, instance.getCount());
+		m.clear();
     }
     
     public static interface Service {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceUpdateTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceUpdateTest.java
similarity index 93%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceUpdateTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceUpdateTest.java
index a285650..63c810f 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceUpdateTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceUpdateTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -47,20 +47,14 @@
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-@RunWith(JUnit4TestRunner.class)
-public class ServiceUpdateTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
+@RunWith(PaxExam.class)
+public class ServiceUpdateTest extends TestBase {
     @Test
-    public void testServiceUpdate(BundleContext context) throws Exception {
+    public void testServiceUpdate() throws Exception {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
@@ -106,6 +100,7 @@
         // wait until the changed event arrived at the component
         e.waitForStep(4, 5000);
         System.out.println("Done!");
+        m.clear();
      }
     
     static class ResourceAdapter implements ServiceInterface {
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/TemporalServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/TemporalServiceDependencyTest.java
similarity index 87%
rename from dependencymanager/test/src/test/java/org/apache/felix/dm/test/TemporalServiceDependencyTest.java
rename to dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/TemporalServiceDependencyTest.java
index 4608a7e..6a19001 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/TemporalServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/TemporalServiceDependencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.dm.test;
+package org.apache.felix.dependencymanager.test2.integration.api;
 
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
@@ -31,20 +31,14 @@
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
 
-@RunWith(JUnit4TestRunner.class)
-public class TemporalServiceDependencyTest extends Base {
-    @Configuration
-    public static Option[] configuration() {
-        return options(
-            provision(
-                mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").version(Base.OSGI_SPEC_VERSION),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.dependencymanager").versionAsInProject()
-            )
-        );
-    }    
-    
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+
+@RunWith(PaxExam.class)
+public class TemporalServiceDependencyTest extends TestBase {
     @Test
-    public void testServiceConsumptionAndIntermittentAvailability(BundleContext context) {
+    public void testServiceConsumptionAndIntermittentAvailability() {
         DependencyManager m = new DependencyManager(context);
         // helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();