diff --git a/pom.xml b/pom.xml
index 3396c07..14f2212 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 	<properties>
 		<reactor.version>3.0.7.RELEASE</reactor.version>
 		<jetty.version>8.1.15.v20140411</jetty.version>
-		<cxf.version>3.1.2</cxf.version>
+		<cxf.version>3.1.12</cxf.version>
 		<bnd.version>3.4.0-SNAPSHOT</bnd.version>
 	</properties>
 
@@ -83,6 +83,12 @@
 			<version>6.0.0</version>
 			<scope>provided</scope>
 		</dependency>
+        <dependency>
+            <groupId>biz.aQute.bnd</groupId>
+            <artifactId>biz.aQute.bndlib</artifactId>
+            <version>3.4.0</version>
+            <scope>provided</scope>
+        </dependency>
 
 		<dependency>
 			<groupId>org.slf4j</groupId>
diff --git a/rcomp-api/pom.xml b/rcomp-api/pom.xml
index a33ff5d..ed83fef 100644
--- a/rcomp-api/pom.xml
+++ b/rcomp-api/pom.xml
@@ -6,4 +6,6 @@
     <version>1.0.0-SNAPSHOT</version>
   </parent>
   <artifactId>rcomp-api</artifactId>
+  
+
 </project>
\ No newline at end of file
diff --git a/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ProvComp.java b/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ProvComp.java
new file mode 100644
index 0000000..18096f4
--- /dev/null
+++ b/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ProvComp.java
@@ -0,0 +1,8 @@
+package org.apache.karaf.rcomp.api;
+
+import aQute.bnd.annotation.headers.ProvideCapability;
+
+@ProvideCapability( ns="rcomp")
+public @interface ProvComp {
+    String name();
+}
diff --git a/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ReqComp.java b/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ReqComp.java
new file mode 100644
index 0000000..49eadf4
--- /dev/null
+++ b/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ReqComp.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.rcomp.api;
+
+import java.lang.annotation.Repeatable;
+
+import aQute.bnd.annotation.headers.RequireCapability;
+
+@RequireCapability( ns="rcomp", filter="(rcomp=${value})")
+@Repeatable(ReqComps.class)
+public @interface ReqComp {
+    String value();
+}
diff --git a/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ReqComps.java b/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ReqComps.java
new file mode 100644
index 0000000..f76979c
--- /dev/null
+++ b/rcomp-api/src/main/java/org/apache/karaf/rcomp/api/ReqComps.java
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.rcomp.api;
+
+public @interface ReqComps {
+    ReqComp[] value();
+}
diff --git a/rcomp-app/pom.xml b/rcomp-app/pom.xml
index 3fc0c12..011e0f3 100644
--- a/rcomp-app/pom.xml
+++ b/rcomp-app/pom.xml
@@ -1,234 +1,279 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.karaf.rcomp</groupId>
-		<artifactId>rcomp-parent</artifactId>
-		<version>1.0.0-SNAPSHOT</version>
-	</parent>
-	<artifactId>rcomp-app</artifactId>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.karaf.rcomp</groupId>
+        <artifactId>rcomp-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>rcomp-app</artifactId>
 
-	<properties>
-		<rcomp.version>${project.version}</rcomp.version>
-		<exam.version>4.11.0</exam.version>
-	</properties>
+    <properties>
+        <rcomp.version>${project.version}</rcomp.version>
+        <exam.version>4.11.0</exam.version>
+    </properties>
 
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.karaf.rcomp</groupId>
-			<artifactId>rcomp-api</artifactId>
-			<version>${rcomp.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.karaf.rcomp</groupId>
-			<artifactId>rcomp-eventadmin</artifactId>
-			<version>${rcomp.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.karaf.rcomp</groupId>
-			<artifactId>rcomp-mail</artifactId>
-			<version>${rcomp.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.karaf.rcomp</groupId>
-			<artifactId>rcomp-mqtt</artifactId>
-			<version>${rcomp.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.karaf.rcomp</groupId>
-			<artifactId>rcomp-examples</artifactId>
-			<version>${rcomp.version}</version>
-		</dependency>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.karaf.rcomp</groupId>
+            <artifactId>rcomp-api</artifactId>
+            <version>${rcomp.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.rcomp</groupId>
+            <artifactId>rcomp-eventadmin</artifactId>
+            <version>${rcomp.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.rcomp</groupId>
+            <artifactId>rcomp-mail</artifactId>
+            <version>${rcomp.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.rcomp</groupId>
+            <artifactId>rcomp-mqtt</artifactId>
+            <version>${rcomp.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.rcomp</groupId>
+            <artifactId>rcomp-examples</artifactId>
+            <version>${rcomp.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.rcomp</groupId>
+            <artifactId>rcomp-feature-shell</artifactId>
+            <version>${rcomp.version}</version>
+        </dependency>
 
 		<!-- Basic Felix bundles -->
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.framework</artifactId>
-			<version>5.6.4</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.eventadmin</artifactId>
-			<version>1.4.6</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.configadmin</artifactId>
-			<version>1.8.8</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.metatype</artifactId>
-			<version>1.1.2</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>kxml2</artifactId>
-					<groupId>net.sf.kxml</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<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>1.0.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>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.gogo.jline</artifactId>
-			<version>1.0.6</version>
-		</dependency>
-		<dependency>
-			<groupId>org.jline</groupId>
-			<artifactId>jline</artifactId>
-			<version>3.3.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.scr</artifactId>
-			<version>2.0.12</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>animal-sniffer-annotations</artifactId>
-					<groupId>org.codehaus.mojo</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.http.jetty</artifactId>
-			<version>3.0.0</version>
-			<exclusions>
-				<exclusion>
-					<groupId>org.eclipse.jetty</groupId>
-					<artifactId>jetty-server</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.eclipse.jetty.websocket</groupId>
-					<artifactId>websocket-server</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.apache.felix</groupId>
-					<artifactId>org.apache.felix.http.base</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>5.6.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.eventadmin</artifactId>
+            <version>1.4.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.configadmin</artifactId>
+            <version>1.8.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.metatype</artifactId>
+            <version>1.1.2</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>kxml2</artifactId>
+                    <groupId>net.sf.kxml</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <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>1.0.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>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.gogo.jline</artifactId>
+            <version>1.0.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jline</groupId>
+            <artifactId>jline</artifactId>
+            <version>3.3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr</artifactId>
+            <version>2.0.12</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>animal-sniffer-annotations</artifactId>
+                    <groupId>org.codehaus.mojo</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.http.jetty</artifactId>
+            <version>3.0.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.eclipse.jetty</groupId>
+                    <artifactId>jetty-server</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.eclipse.jetty.websocket</groupId>
+                    <artifactId>websocket-server</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>org.apache.felix.http.base</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
 
-		<dependency>
-			<groupId>org.ops4j.pax.logging</groupId>
-			<artifactId>pax-logging-service</artifactId>
-			<version>1.8.5</version>
-		</dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.logging</groupId>
+            <artifactId>pax-logging-service</artifactId>
+            <version>1.8.5</version>
+        </dependency>
 
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.bundlerepository</artifactId>
-			<version>2.0.10</version>
-		</dependency>
-		<dependency>
-			<groupId>javax.inject</groupId>
-			<artifactId>javax.inject</artifactId>
-			<version>1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam</artifactId>
-			<version>${exam.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-link-assembly</artifactId>
-			<version>${exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-container-native</artifactId>
-			<version>${exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-junit4</artifactId>
-			<version>${exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.12</version>
-			<scope>test</scope>
-		</dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.bundlerepository</artifactId>
+            <version>2.0.10</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+            <version>1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam</artifactId>
+            <version>${exam.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-link-assembly</artifactId>
+            <version>${exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-container-native</artifactId>
+            <version>${exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-junit4</artifactId>
+            <version>${exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
 
+        <dependency>
+            <groupId>biz.aQute.bnd</groupId>
+            <artifactId>biz.aQute.bndlib</artifactId>
+            <version>${bnd.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>biz.aQute.bnd</groupId>
+            <artifactId>biz.aQute.resolve</artifactId>
+            <version>${bnd.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>biz.aQute.bnd</groupId>
+            <artifactId>biz.aQute.repository</artifactId>
+            <version>${bnd.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>biz.aQute.bnd</groupId>
+            <artifactId>bnd-shared-maven-lib</artifactId>
+            <version>${bnd.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-collections</groupId>
+            <artifactId>commons-collections</artifactId>
+            <version>3.2.2</version>
+        </dependency>
+<!-- 
 		<dependency>
-			<groupId>biz.aQute.bnd</groupId>
-			<artifactId>biz.aQute.bndlib</artifactId>
-			<version>${bnd.version}</version>
+		    <groupId>org.apache.activemq</groupId>
+		    <artifactId>activemq-osgi</artifactId>
+		    <version>5.15.0</version>
 		</dependency>
 		<dependency>
-			<groupId>biz.aQute.bnd</groupId>
-			<artifactId>biz.aQute.resolve</artifactId>
-			<version>${bnd.version}</version>
+		    <groupId>org.ow2.asm</groupId>
+		    <artifactId>asm-all</artifactId>
+		    <version>5.2</version>
 		</dependency>
 		<dependency>
-			<groupId>biz.aQute.bnd</groupId>
-			<artifactId>biz.aQute.repository</artifactId>
-			<version>${bnd.version}</version>
+		    <groupId>org.apache.aries.blueprint</groupId>
+		    <artifactId>org.apache.aries.blueprint.core</artifactId>
+		    <version>1.8.2</version>
 		</dependency>
-		<dependency>
-			<groupId>biz.aQute.bnd</groupId>
-			<artifactId>bnd-shared-maven-lib</artifactId>
-			<version>${bnd.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-collections</groupId>
-			<artifactId>commons-collections</artifactId>
-			<version>3.2.2</version>
-		</dependency>
-	</dependencies>
+         -->
+    </dependencies>
 
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>biz.aQute.bnd</groupId>
-				<artifactId>bnd-export-maven-plugin</artifactId>
-				<executions>
-					<execution>
-						<phase>process-resources</phase>
-					</execution>
-				</executions>
-				<configuration>
-					<bndruns>
-						<bndrun>rcomp-example.bndrun</bndrun>
-					</bndruns>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.servicemix.tooling</groupId>
-				<artifactId>depends-maven-plugin</artifactId>
-				<version>1.4.0</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>generate-depends-file</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-indexer-maven-plugin</artifactId>
+                <version>${bnd.version}</version>
+                <configuration>
+                    <localURLs>REQUIRED</localURLs>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>index</id>
+                        <goals>
+                            <goal>index</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-export-maven-plugin</artifactId>
+                <version>${bnd.version}</version>
+                <configuration>
+                    <resolve>true</resolve>
+                    <failOnChanges>false</failOnChanges>
+                    <bndruns>
+                        <bndrun>rcomp-example.bndrun</bndrun>
+                    </bndruns>
+                    <executions>
+                        <execution>
+                            <goals>
+                                <goal>export</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.servicemix.tooling</groupId>
+                <artifactId>depends-maven-plugin</artifactId>
+                <version>1.4.0</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate-depends-file</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/rcomp-app/rcomp-example.bndrun b/rcomp-app/rcomp-example.bndrun
index f76f050..d0a1951 100644
--- a/rcomp-app/rcomp-example.bndrun
+++ b/rcomp-app/rcomp-example.bndrun
@@ -1,15 +1,15 @@
-#-standalone: ${.}/target/index.xml
--standalone: true
--plugin.rcomp-index = \
-    aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
-        snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
-        releaseUrls=https://repo1.maven.org/maven2/; \
-        pom=${.}/pom.xml; \
-        name=rcomp
+-standalone: ${.}/target/index.xml
+#-standalone: true
+#-plugin.rcomp-index = \
+#    aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+#        snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+#        releaseUrls=https://repo1.maven.org/maven2/; \
+#        pom=${.}/pom.xml; \
+#        name=rcomp
 
 -runsystemcapabilities: ${native_capability}
 
--resolve.effective: active;skip:="osgi.service"
+#-resolve.effective: active;skip:="osgi.service"
 
 -runblacklist: \
 	osgi.identity;filter:='(osgi.identity=slf4j.api)',\
@@ -31,26 +31,23 @@
 	felix.fileinstall.noInitialDelay=true,\
 	felix.fileinstall.enableConfigSave=false
 -runrequires: \
-	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.jline)',\
-	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
-	osgi.identity;filter:='(&(osgi.identity=org.apache.felix.configadmin)(version>=1.8.8))',\
-	osgi.identity;filter:='(osgi.identity=rcomp-mqtt)',\
 	osgi.identity;filter:='(osgi.identity=rcomp-examples)',\
-	osgi.identity;filter:='(osgi.identity=rcomp-eventadmin)'
+	osgi.identity;filter:='(osgi.identity=rcomp-feature-shell)'
 -runbundles: \
 	io.projectreactor.reactor-core;version='[3.0.7,3.0.8)',\
-	org.apache.felix.bundlerepository;version='[2.0.10,2.0.11)',\
-	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.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.scr;version='[2.0.12,2.0.13)',\
 	org.eclipse.paho.client.mqttv3;version='[1.1.1,1.1.2)',\
-	org.jline;version='[3.3.1,3.3.2)',\
 	org.ops4j.pax.logging.pax-logging-api;version='[1.8.5,1.8.6)',\
 	org.reactivestreams.reactive-streams;version='[1.0.0,1.0.1)',\
 	rcomp-api;version='[1.0.0,1.0.1)',\
 	rcomp-eventadmin;version='[1.0.0,1.0.1)',\
 	rcomp-examples;version='[1.0.0,1.0.1)',\
-	rcomp-mqtt;version='[1.0.0,1.0.1)'
\ No newline at end of file
+	rcomp-mqtt;version='[1.0.0,1.0.1)',\
+	org.apache.felix.bundlerepository;version='[2.0.10,2.0.11)',\
+	org.apache.felix.configadmin;version='[1.8.8,1.8.9)',\
+	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.jline;version='[3.3.1,3.3.2)',\
+	rcomp-feature-shell;version='[1.0.0,1.0.1)'
\ No newline at end of file
diff --git a/rcomp-app/src/test/java/org/apache/karaf/rcomp/itest/EventAdminTest.java b/rcomp-app/src/test/java/org/apache/karaf/rcomp/itest/EventAdminTest.java
index c8395be..afa5c78 100644
--- a/rcomp-app/src/test/java/org/apache/karaf/rcomp/itest/EventAdminTest.java
+++ b/rcomp-app/src/test/java/org/apache/karaf/rcomp/itest/EventAdminTest.java
@@ -23,6 +23,7 @@
 
 import javax.inject.Inject;
 
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Configuration;
@@ -31,7 +32,7 @@
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
 
-@RunWith(PaxExam.class)
+//@RunWith(PaxExam.class)
 public class EventAdminTest {
     @Inject
     EventAdmin eventAdmin;
@@ -42,6 +43,7 @@
     }
 
     @Test
+    @Ignore
     public void test() {
         Map<String, String> properties = new HashMap<>();
         eventAdmin.sendEvent(new Event("eainput", properties));
diff --git a/rcomp-eventadmin/src/main/java/org/apache/karaf/rcomp/eventadmin/EventAdminComponent.java b/rcomp-eventadmin/src/main/java/org/apache/karaf/rcomp/eventadmin/EventAdminComponent.java
index ba2e129..3f3158e 100644
--- a/rcomp-eventadmin/src/main/java/org/apache/karaf/rcomp/eventadmin/EventAdminComponent.java
+++ b/rcomp-eventadmin/src/main/java/org/apache/karaf/rcomp/eventadmin/EventAdminComponent.java
@@ -16,6 +16,7 @@
  */
 package org.apache.karaf.rcomp.eventadmin;
 
+import org.apache.karaf.rcomp.api.ProvComp;
 import org.apache.karaf.rcomp.api.RComponent;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.component.annotations.Activate;
@@ -26,6 +27,7 @@
 import org.reactivestreams.Publisher;
 import org.reactivestreams.Subscriber;
 
+@ProvComp(name="eventAdmin")
 @Component(property="name=eventAdmin")
 public class EventAdminComponent implements RComponent {
     
diff --git a/rcomp-examples/kafka-appender/src/main/java/net/lr/reactive/components/appender/kafka/KafkaAppender.java b/rcomp-examples/kafka-appender/src/main/java/net/lr/reactive/components/appender/kafka/KafkaAppender.java
index baf86ff..967fa3d 100644
--- a/rcomp-examples/kafka-appender/src/main/java/net/lr/reactive/components/appender/kafka/KafkaAppender.java
+++ b/rcomp-examples/kafka-appender/src/main/java/net/lr/reactive/components/appender/kafka/KafkaAppender.java
@@ -21,6 +21,7 @@
 import org.apache.kafka.clients.producer.ProducerRecord;
 import org.apache.karaf.decanter.api.marshaller.Marshaller;
 import org.apache.karaf.rcomp.api.RComponent;
+import org.apache.karaf.rcomp.api.ReqComp;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
@@ -35,6 +36,7 @@
 
 import reactor.core.publisher.Flux;
 
+@ReqComp("kafka")
 @Component(
     name = "appender.kafka",
     immediate = true,
diff --git a/rcomp-examples/pom.xml b/rcomp-examples/pom.xml
index de0c807..d16d652 100644
--- a/rcomp-examples/pom.xml
+++ b/rcomp-examples/pom.xml
@@ -13,5 +13,6 @@
     <modules>
         <module>rcomp-examples</module>
         <module>kafka-appender</module>
+        <module>rcomp-feature-shell</module>
     </modules>
 </project>
\ No newline at end of file
diff --git a/rcomp-examples/rcomp-examples/bnd.bnd b/rcomp-examples/rcomp-examples/bnd.bnd
index 6b034bd..5d220e0 100644
--- a/rcomp-examples/rcomp-examples/bnd.bnd
+++ b/rcomp-examples/rcomp-examples/bnd.bnd
@@ -1,2 +1,2 @@
 Web-ContextPath:/rcomp-examples
-Private-Package: reactor.math
\ No newline at end of file
+Private-Package: reactor.math
diff --git a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/EventAdminExample.java b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/EventAdminExample.java
index 7cbd11f..a309631 100644
--- a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/EventAdminExample.java
+++ b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/EventAdminExample.java
@@ -19,6 +19,7 @@
 import java.util.Map;
 
 import org.apache.karaf.rcomp.api.RComponent;
+import org.apache.karaf.rcomp.api.ReqComp;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
@@ -29,6 +30,7 @@
 
 import reactor.core.publisher.Flux;
 
+@ReqComp("eventAdmin")
 @Component(immediate=true)
 public class EventAdminExample {
     Logger LOG = LoggerFactory.getLogger(EventAdminExample.class);
diff --git a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttEmitter.java b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttEmitter.java
index 2896a80..14f8dbf 100644
--- a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttEmitter.java
+++ b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttEmitter.java
@@ -19,6 +19,7 @@
 import java.time.Duration;
 
 import org.apache.karaf.rcomp.api.RComponent;
+import org.apache.karaf.rcomp.api.ReqComp;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
@@ -29,6 +30,7 @@
 
 import reactor.core.publisher.Flux;
 
+@ReqComp("mqtt")
 @Component(immediate=true)
 public class MqttEmitter {
     Logger LOG = LoggerFactory.getLogger(MqttEmitter.class);
diff --git a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttExample.java b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttExample.java
index 7faaa98..3698317 100644
--- a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttExample.java
+++ b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttExample.java
@@ -17,6 +17,7 @@
 package org.apache.karaf.rcomp.examples.mqtt;
 
 import org.apache.karaf.rcomp.api.RComponent;
+import org.apache.karaf.rcomp.api.ReqComp;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
@@ -28,6 +29,7 @@
 import reactor.core.publisher.Flux;
 import reactor.math.MathFlux;
 
+@ReqComp("mqtt")
 @Component(immediate=true)
 public class MqttExample {
     Logger LOG = LoggerFactory.getLogger(MqttExample.class);
diff --git a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttReceiver.java b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttReceiver.java
index 44b9853..03eca67 100644
--- a/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttReceiver.java
+++ b/rcomp-examples/rcomp-examples/src/main/java/org/apache/karaf/rcomp/examples/mqtt/MqttReceiver.java
@@ -19,6 +19,7 @@
 import java.util.function.Consumer;
 
 import org.apache.karaf.rcomp.api.RComponent;
+import org.apache.karaf.rcomp.api.ReqComp;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
@@ -30,6 +31,7 @@
 import reactor.core.Disposable;
 import reactor.core.publisher.Flux;
 
+@ReqComp("mqtt")
 @Component(immediate=true)
 public class MqttReceiver implements Consumer<Double>{
     Logger LOG = LoggerFactory.getLogger(MqttReceiver.class);
diff --git a/rcomp-examples/rcomp-feature-shell/bnd.bnd b/rcomp-examples/rcomp-feature-shell/bnd.bnd
new file mode 100644
index 0000000..bb47985
--- /dev/null
+++ b/rcomp-examples/rcomp-feature-shell/bnd.bnd
@@ -0,0 +1,4 @@
+Require-Capability:\
+	osgi.identity;filter:='(osgi.identity=org.apache.felix.configadmin)',\
+	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
+	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.jline)'
diff --git a/rcomp-examples/rcomp-feature-shell/pom.xml b/rcomp-examples/rcomp-feature-shell/pom.xml
new file mode 100644
index 0000000..be1453c
--- /dev/null
+++ b/rcomp-examples/rcomp-feature-shell/pom.xml
@@ -0,0 +1,55 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.karaf.rcomp</groupId>
+        <artifactId>rcomp-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+    <artifactId>rcomp-feature-shell</artifactId>
+    <!-- <repositories> <repository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> 
+        <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> 
+        </snapshots> </repository> </repositories> -->
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.karaf.rcomp</groupId>
+            <artifactId>rcomp-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.projectreactor</groupId>
+            <artifactId>reactor-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.projectreactor.addons</groupId>
+            <artifactId>reactor-extra</artifactId>
+            <version>${reactor.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.projectreactor.addons</groupId>
+            <artifactId>reactor-adapter</artifactId>
+            <version>${reactor.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-rs-client</artifactId>
+            <version>${cxf.version}</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+</project>
\ No newline at end of file
diff --git a/rcomp-kafka/src/main/java/org/apache/karaf/rcomp/kafka/KafkaComponent.java b/rcomp-kafka/src/main/java/org/apache/karaf/rcomp/kafka/KafkaComponent.java
index c06c454..476f68b 100644
--- a/rcomp-kafka/src/main/java/org/apache/karaf/rcomp/kafka/KafkaComponent.java
+++ b/rcomp-kafka/src/main/java/org/apache/karaf/rcomp/kafka/KafkaComponent.java
@@ -18,6 +18,7 @@
 
 import java.util.Dictionary;
 
+import org.apache.karaf.rcomp.api.ProvComp;
 import org.apache.karaf.rcomp.api.RComponent;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.component.annotations.Activate;
@@ -27,6 +28,7 @@
 import org.reactivestreams.Publisher;
 import org.reactivestreams.Subscriber;
 
+@ProvComp(name="kafka")
 @Component(immediate = true, 
     configurationPolicy = ConfigurationPolicy.REQUIRE,
     property = "name=kafka"
diff --git a/rcomp-mail/src/main/java/org/apache/karaf/rcomp/mail/MailComponent.java b/rcomp-mail/src/main/java/org/apache/karaf/rcomp/mail/MailComponent.java
index a12328b..89c41d1 100644
--- a/rcomp-mail/src/main/java/org/apache/karaf/rcomp/mail/MailComponent.java
+++ b/rcomp-mail/src/main/java/org/apache/karaf/rcomp/mail/MailComponent.java
@@ -18,12 +18,14 @@
 
 import javax.mail.Session;
 
+import org.apache.karaf.rcomp.api.ProvComp;
 import org.apache.karaf.rcomp.api.RComponent;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.reactivestreams.Publisher;
 import org.reactivestreams.Subscriber;
 
+@ProvComp(name="mail")
 @Component(property="name=mail")
 public class MailComponent implements RComponent {
     
diff --git a/rcomp-mqtt/src/main/java/org/apache/karaf/rcomp/mqtt/MqttComponent.java b/rcomp-mqtt/src/main/java/org/apache/karaf/rcomp/mqtt/MqttComponent.java
index 2227921..6fd5f22 100644
--- a/rcomp-mqtt/src/main/java/org/apache/karaf/rcomp/mqtt/MqttComponent.java
+++ b/rcomp-mqtt/src/main/java/org/apache/karaf/rcomp/mqtt/MqttComponent.java
@@ -19,6 +19,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.karaf.rcomp.api.ProvComp;
 import org.apache.karaf.rcomp.api.RComponent;
 import org.eclipse.paho.client.mqttv3.MqttClient;
 import org.eclipse.paho.client.mqttv3.MqttException;
@@ -30,6 +31,7 @@
 import org.reactivestreams.Publisher;
 import org.reactivestreams.Subscriber;
 
+@ProvComp(name="mqtt")
 @Component(property="name=mqtt")
 public class MqttComponent implements RComponent {
     
