diff --git a/distribution/multi-bundle/distro.bndrun b/distribution/multi-bundle/distro.bndrun
index e4baa88..2475f42 100644
--- a/distribution/multi-bundle/distro.bndrun
+++ b/distribution/multi-bundle/distro.bndrun
@@ -48,20 +48,10 @@
 	javax.annotation-api;version='[1.3.0,1.3.1)',\
 	javax.servlet-api;version='[3.1.0,3.1.1)',\
 	javax.validation.api;version='[1.1.0,1.1.1)',\
-	org.apache.aries.rsa.core;version='[1.11.0,1.11.1)',\
-	org.apache.aries.rsa.discovery.command;version='[1.11.0,1.11.1)',\
-	org.apache.aries.rsa.discovery.local;version='[1.11.0,1.11.1)',\
-	org.apache.aries.rsa.discovery.zookeeper;version='[1.11.0,1.11.1)',\
-	org.apache.aries.rsa.spi;version='[1.11.0,1.11.1)',\
-	org.apache.aries.rsa.topology-manager;version='[1.11.0,1.11.1)',\
 	org.apache.commons.lang3;version='[3.7.0,3.7.1)',\
-	org.apache.felix.bundlerepository;version='[1.6.0,1.6.1)',\
 	org.apache.felix.configadmin;version='[1.8.8,1.8.9)',\
 	org.apache.felix.eventadmin;version='[1.4.6,1.4.7)',\
 	org.apache.felix.fileinstall;version='[3.5.2,3.5.3)',\
-	org.apache.felix.gogo.command;version='[1.0.0,1.0.1)',\
-	org.apache.felix.gogo.jline;version='[1.0.6,1.0.7)',\
-	org.apache.felix.gogo.runtime;version='[1.0.0,1.0.1)',\
 	org.apache.felix.http.api;version='[2.3.2,2.3.3)',\
 	org.apache.felix.http.jetty;version='[3.0.0,3.0.1)',\
 	org.apache.felix.metatype;version='[1.1.2,1.1.3)',\
@@ -70,9 +60,7 @@
 	org.apache.servicemix.bundles.reflections;version='[0.9.10,0.9.11)',\
 	org.apache.servicemix.bundles.wsdl4j;version='[1.6.3,1.6.4)',\
 	org.apache.servicemix.specs.jaxrs-api-2.1;version='[2.9.1,2.9.2)',\
-	org.apache.ws.xmlschema.core;version='[2.2.2,2.2.3)',\
 	org.fusesource.jansi;version='[1.13.0,1.13.1)',\
-	org.jline;version='[3.3.1,3.3.2)',\
 	org.objectweb.asm.all;version='[5.0.4,5.0.5)',\
 	org.ops4j.pax.logging.pax-logging-api;version='[1.8.5,1.8.6)',\
 	org.ops4j.pax.logging.pax-logging-service;version='[1.8.5,1.8.6)',\
@@ -82,20 +70,29 @@
 	com.fasterxml.jackson.core.jackson-annotations;version='[2.9.0,2.9.1)',\
 	com.fasterxml.jackson.core.jackson-core;version='[2.9.1,2.9.2)',\
 	com.fasterxml.jackson.core.jackson-databind;version='[2.9.1,2.9.2)',\
-	org.apache.cxf.cxf-core;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-bindings-soap;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-bindings-xml;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-databinding-aegis;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-databinding-jaxb;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-frontend-jaxrs;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-frontend-jaxws;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-frontend-simple;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-rs-client;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-rs-service-description-swagger;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-transports-http;version='[3.2.2,3.2.3)',\
-	org.apache.cxf.cxf-rt-wsdl;version='[3.2.2,3.2.3)',\
 	org.apache.cxf.dosgi.cxf-dosgi-common;version='[2.4.0,2.4.1)',\
 	org.apache.cxf.dosgi.cxf-dosgi-provider-rs;version='[2.4.0,2.4.1)',\
 	org.apache.cxf.dosgi.cxf-dosgi-provider-ws;version='[2.4.0,2.4.1)',\
-	org.apache.cxf.dosgi.samples.cxf-dosgi-samples-rest-api;version='[2.4.0,2.4.1)',\
-	org.apache.cxf.dosgi.samples.cxf-dosgi-samples-rest-impl;version='[2.4.0,2.4.1)'
+	org.apache.aries.rsa.core;version='[1.12.0,1.12.1)',\
+	org.apache.aries.rsa.discovery.command;version='[1.12.0,1.12.1)',\
+	org.apache.aries.rsa.discovery.local;version='[1.12.0,1.12.1)',\
+	org.apache.aries.rsa.discovery.zookeeper;version='[1.12.0,1.12.1)',\
+	org.apache.aries.rsa.spi;version='[1.12.0,1.12.1)',\
+	org.apache.aries.rsa.topology-manager;version='[1.12.0,1.12.1)',\
+	org.apache.cxf.cxf-core;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-bindings-soap;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-bindings-xml;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-databinding-aegis;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-databinding-jaxb;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-frontend-jaxrs;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-frontend-jaxws;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-frontend-simple;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-rs-client;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-rs-service-description-swagger;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-transports-http;version='[3.2.5,3.2.6)',\
+	org.apache.cxf.cxf-rt-wsdl;version='[3.2.5,3.2.6)',\
+	org.apache.ws.xmlschema.core;version='[2.2.3,2.2.4)',\
+	org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
+	org.apache.felix.gogo.jline;version='[1.1.0,1.1.1)',\
+	org.apache.felix.gogo.runtime;version='[1.1.0,1.1.1)',\
+	org.jline;version='[3.8.0,3.8.1)'
diff --git a/distribution/multi-bundle/pom.xml b/distribution/multi-bundle/pom.xml
index 98d8103..ea3d271 100644
--- a/distribution/multi-bundle/pom.xml
+++ b/distribution/multi-bundle/pom.xml
@@ -61,46 +61,25 @@
 			<artifactId>org.apache.felix.fileinstall</artifactId>
 			<version>3.5.2</version>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.gogo.command</artifactId>
-			<version>0.16.0</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>org.osgi.core</artifactId>
-					<groupId>org.osgi</groupId>
-				</exclusion>
-				<exclusion>
-					<artifactId>org.osgi.compendium</artifactId>
-					<groupId>org.osgi</groupId>
-				</exclusion>
-				<exclusion>
-					<artifactId>
-                        org.apache.felix.bundlerepository
-                    </artifactId>
-					<groupId>org.apache.felix</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.gogo.command</artifactId>
-            <version>1.0.0</version>
-        </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.gogo.command</artifactId>
-            <version>1.0.0</version>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.gogo.runtime</artifactId>
+            <version>1.1.0</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.gogo.jline</artifactId>
-            <version>1.0.6</version>
+            <version>1.1.0</version>
         </dependency>
         <dependency>
             <groupId>org.jline</groupId>
             <artifactId>jline</artifactId>
-            <version>3.5.1</version>
+            <version>3.8.0</version>
         </dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
@@ -138,11 +117,6 @@
 			<artifactId>pax-logging-service</artifactId>
 			<version>1.8.5</version>
 		</dependency>
-		<dependency>
-			<groupId>jline</groupId>
-			<artifactId>jline</artifactId>
-			<version>3.0.0.M1</version>
-		</dependency>
 
 		<!-- rsa -->
 		<dependency>
@@ -249,7 +223,7 @@
 			<plugin>
 				<groupId>biz.aQute.bnd</groupId>
 				<artifactId>bnd-indexer-maven-plugin</artifactId>
-				<version>3.4.0</version>
+				<version>4.0.0</version>
 				<configuration>
 					<includeGzip>false</includeGzip>
 					<localURLs>REQUIRED</localURLs>
@@ -284,6 +258,8 @@
 					</execution>
 				</executions>
 			</plugin>
+			
+			<!-- Unzip the archive created by bnd export plugin. To then repackage it in the assembly phase -->
 			<plugin>
 				<artifactId>maven-antrun-plugin</artifactId>
 				<executions>
diff --git a/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/AbstractDosgiTest.java b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/AbstractDosgiTest.java
index 40eb113..9cc5ab4 100644
--- a/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/AbstractDosgiTest.java
+++ b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/AbstractDosgiTest.java
@@ -288,6 +288,8 @@
     protected static Option basicTestOptions() throws Exception {
         return composite(CoreOptions.junitBundles(), //
                          MultiBundleTools.getDistro(), //
+                         mavenBundle("org.ops4j.pax.tinybundles", "tinybundles").versionAsInProject(),
+                         mavenBundle("biz.aQute.bnd", "biz.aQute.bndlib").versionAsInProject(),
                          
                          systemProperty("org.osgi.service.http.port").value("" + HTTP_PORT),
                          systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("INFO"), //
diff --git a/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/MultiBundleTools.java b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/MultiBundleTools.java
index cf97af7..4fd49ab 100644
--- a/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/MultiBundleTools.java
+++ b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/MultiBundleTools.java
@@ -63,8 +63,16 @@
         File distroDir = depRoot.listFiles()[0];
         Collection<String> bundles = getDistroBundles(distroDir);
         List<Option> opts = new ArrayList<Option>();
+        // Make sure annotation bundle is loaded first to make sure it is used for resolution
         for (String bundleUri : bundles) {
-            opts.add(CoreOptions.bundle(bundleUri));
+            if (bundleUri.contains("javax.annotation")) {
+                opts.add(CoreOptions.bundle(bundleUri));
+            }
+        }
+        for (String bundleUri : bundles) {
+            if (!bundleUri.contains("javax.annotation")) {
+                opts.add(CoreOptions.bundle(bundleUri));
+            }
         }
         return CoreOptions.composite(opts.toArray(new Option[opts.size()]));
     }
diff --git a/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/TestExportService.java b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/TestExportService.java
index fcc70c0..052d369 100644
--- a/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/TestExportService.java
+++ b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/TestExportService.java
@@ -52,7 +52,7 @@
     private static final String REST_SERVICE_URI = HTTP_BASE_URI + "/cxf/tasks";
     
     private static final String GREETER_ZOOKEEPER_NODE = //
-        "/osgi/service_registry/org/apache/cxf/dosgi/samples/soap/TaskService/localhost#8181##cxf#taskservice";
+        "/osgi/service_registry/http:##localhost:8181#cxf#taskservice";
 
     @Configuration
     public static Option[] configure() throws Exception {
diff --git a/parent/pom.xml b/parent/pom.xml
index 2169e45..cd9a1c6 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -28,11 +28,11 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
         <osgi.version>6.0.0</osgi.version>
-        <osgi.compendium.version>5.0.0</osgi.compendium.version>
-        <aries.rsa.version>1.11.0</aries.rsa.version>
-        <cxf.version>3.2.2</cxf.version>
+        <osgi.compendium.version>6.0.0</osgi.compendium.version>
+        <aries.rsa.version>1.12.0</aries.rsa.version>
+        <cxf.version>3.2.5</cxf.version>
         <felix.version>5.6.8</felix.version>
-        <zookeeper.version>3.4.8</zookeeper.version>
+        <zookeeper.version>3.4.12</zookeeper.version>
         <servlet.version>3.0</servlet.version>
         <servicemix.specs.version>2.6.0</servicemix.specs.version>
         <slf4j.version>1.7.14</slf4j.version>
@@ -136,7 +136,7 @@
             <dependency>
                 <groupId>org.ops4j.pax.tinybundles</groupId>
                 <artifactId>tinybundles</artifactId>
-                <version>2.1.1</version>
+                <version>3.0.0</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
@@ -175,17 +175,8 @@
         <dependency>
         	<groupId>org.apache.aries.rsa</groupId>
         	<artifactId>org.apache.aries.rsa.core</artifactId>
-        	<version>1.11.0</version>
+        	<version>${aries.rsa.version}</version>
         </dependency>
-        
-
-        <!-- 
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.cmpn</artifactId>
-            <scope>provided</scope>
-        </dependency>
- -->
         <dependency>
             <groupId>org.apache.aries.rsa</groupId>
             <artifactId>org.apache.aries.rsa.spi</artifactId>
@@ -287,7 +278,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>3.3.0</version>
+                <version>3.5.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <obrRepository>NONE</obrRepository>
