diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java b/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java
new file mode 100644
index 0000000..bf2578c
--- /dev/null
+++ b/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java
@@ -0,0 +1,58 @@
+/**
+ * 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.cxf.dosgi.common.policy;
+
+import static org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_CONFIGS;
+import static org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.aries.rsa.spi.ExportPolicy;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Component;
+
+@Component //
+(//
+    immediate = true, //
+    property = "name=cxf" //
+)
+public class Exporter implements ExportPolicy {
+
+    @Override
+    public Map<String, String> additionalParameters(ServiceReference<?> sref) {
+        Map<String, String> params = new HashMap<>();
+        if (sref.getProperty("org.apache.cxf.rs.address") != null) {
+            setDefault(sref, params, SERVICE_EXPORTED_INTERFACES, "*");
+            setDefault(sref, params, SERVICE_EXPORTED_CONFIGS, "org.apache.cxf.rs");
+        }
+        if (sref.getProperty("org.apache.cxf.ws.address") != null) {
+            setDefault(sref, params, SERVICE_EXPORTED_INTERFACES, "*");
+            setDefault(sref, params, SERVICE_EXPORTED_CONFIGS, "org.apache.cxf.ws");
+        }
+        return params;
+    }
+
+    private void setDefault(ServiceReference<?> sref, Map<String, String> params, String key, String value) {
+        if (sref.getProperty(key) == null) {
+            params.put(key, value);
+        }
+    }
+
+}
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 16264bd..0887cb6 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
@@ -289,6 +289,7 @@
                          systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("INFO"), //
                          systemProperty("pax.exam.osgi.unresolved.fail").value("true"), //
                          systemProperty("org.apache.cxf.stax.allowInsecureParser").value("true"), //
+                         systemProperty("rsa.export.policy.filter").value("(name=cxf)"), //
                          configLogging(),
                          frameworkStartLevel(100)
         );
diff --git a/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/TestExportPolicy.java b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/TestExportPolicy.java
new file mode 100644
index 0000000..8f4f136
--- /dev/null
+++ b/itests/multi-bundle/src/test/java/org/apache/cxf/dosgi/itests/multi/TestExportPolicy.java
@@ -0,0 +1,61 @@
+/**
+ * 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.cxf.dosgi.itests.multi;
+
+import javax.inject.Inject;
+
+import org.apache.aries.rsa.spi.ExportPolicy;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+import org.ops4j.pax.exam.util.Filter;
+
+/**
+ * Deploys the sample SOAP service and zookeeper discovery.
+ * Then checks the service can be called via plain CXF and is announced in zookeeper
+ */
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class TestExportPolicy extends AbstractDosgiTest {
+    
+    @Inject
+    @Filter("(name=cxf)")
+    ExportPolicy policy;
+    
+    @Configuration
+    public static Option[] configure() throws Exception {
+        return new Option[] //
+        {//
+         basicTestOptions(), //
+         //debug(),
+        };
+    }
+
+    @Test
+    public void testPolicyPresent() throws Exception {
+        Assert.assertNotNull(policy);
+    }
+    
+
+}
diff --git a/samples/rest/impl/pom.xml b/samples/rest/impl/pom.xml
index 250cfa5..1d586d7 100644
--- a/samples/rest/impl/pom.xml
+++ b/samples/rest/impl/pom.xml
@@ -33,6 +33,12 @@
             <artifactId>cxf-dosgi-samples-rest-api</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+        	<groupId>org.apache.aries.rsa</groupId>
+        	<artifactId>org.apache.aries.rsa.spi</artifactId>
+        	<version>1.9.0</version>
+        	<type>bundle</type>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/samples/soap/soap.bndrun b/samples/soap/soap.bndrun
index 75acd17..5ef5063 100644
--- a/samples/soap/soap.bndrun
+++ b/samples/soap/soap.bndrun
@@ -9,6 +9,7 @@
 
 -runproperties: \
 	org.ops4j.pax.logging.DefaultServiceLog.level=INFO,\
+	rsa.export.policy.filter="(name=rest)",\
 	org.apache.felix.http.jettyEnabled=true,\
 	org.osgi.framework.bootdelegation=com.sun.*,\
 	org.osgi.framework.system.packages.extra='sun.misc,javax.xml.bind.annotation;version=2.2.1,javax.xml.bind;version=2.2.1'
@@ -31,15 +32,14 @@
 	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
 	osgi.identity;filter:='(osgi.identity=org.ops4j.pax.logging.pax-logging-service)',\
 	osgi.identity;filter:='(osgi.identity=org.objectweb.asm.all)',\
-	osgi.identity;filter:='(osgi.identity=org.apache.cxf.dosgi.samples.cxf-dosgi-samples-soap-impl)',\
 	osgi.identity;filter:='(osgi.identity=org.apache.felix.http.jetty)',\
 	osgi.identity;filter:='(osgi.identity=org.apache.cxf.dosgi.cxf-dosgi-provider-ws)',\
 	osgi.identity;filter:='(osgi.identity=org.apache.aries.rsa.topology-manager)',\
 	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
-	osgi.identity;filter:='(osgi.identity=org.apache.aries.rsa.discovery.command)'
+	osgi.identity;filter:='(&(osgi.identity=org.apache.aries.rsa.discovery.command)(version>=1.9.0))',\
+	osgi.identity;filter:='(osgi.identity=org.apache.cxf.dosgi.samples.cxf-dosgi-samples-rest-impl)',\
+	osgi.identity;filter:='(osgi.identity=org.apache.cxf.dosgi.cxf-dosgi-provider-rs)'
 -runbundles: \
-	org.apache.cxf.dosgi.samples.cxf-dosgi-samples-soap-api;version='[2.0.0,2.0.1)',\
-	org.apache.cxf.dosgi.samples.cxf-dosgi-samples-soap-impl;version='[2.0.0,2.0.1)',\
 	org.apache.felix.configadmin;version='[1.8.8,1.8.9)',\
 	org.apache.felix.fileinstall;version='[3.5.2,3.5.3)',\
 	org.objectweb.asm.all;version='[5.0.4,5.0.5)',\
@@ -58,8 +58,6 @@
 	org.apache.cxf.cxf-rt-frontend-simple;version='[3.1.7,3.1.8)',\
 	org.apache.cxf.cxf-rt-transports-http;version='[3.1.7,3.1.8)',\
 	org.apache.cxf.cxf-rt-wsdl;version='[3.1.7,3.1.8)',\
-	org.apache.cxf.dosgi.cxf-dosgi-common;version='[2.0.0,2.0.1)',\
-	org.apache.cxf.dosgi.cxf-dosgi-provider-ws;version='[2.0.0,2.0.1)',\
 	org.apache.servicemix.bundles.wsdl4j;version='[1.6.3,1.6.4)',\
 	org.apache.ws.xmlschema.core;version='[2.2.1,2.2.2)',\
 	org.apache.aries.rsa.core;version='[1.9.0,1.9.1)',\
@@ -70,4 +68,13 @@
 	org.apache.felix.scr;version='[2.0.4,2.0.5)',\
 	org.apache.felix.gogo.runtime;version='[0.10.0,0.10.1)',\
 	org.apache.aries.rsa.discovery.command;version='[1.9.0,1.9.1)',\
-	org.fusesource.jansi;version='[1.13.0,1.13.1)'
\ No newline at end of file
+	org.fusesource.jansi;version='[1.13.0,1.13.1)',\
+	javax.annotation-api;version='[1.2.0,1.2.1)',\
+	org.apache.servicemix.specs.jsr339-api-2.0.1;version='[2.6.0,2.6.1)',\
+	org.apache.cxf.cxf-rt-frontend-jaxrs;version='[3.1.7,3.1.8)',\
+	org.apache.cxf.cxf-rt-rs-client;version='[3.1.7,3.1.8)',\
+	org.apache.cxf.dosgi.cxf-dosgi-common;version='[2.1.0,2.1.1)',\
+	org.apache.cxf.dosgi.cxf-dosgi-provider-rs;version='[2.1.0,2.1.1)',\
+	org.apache.cxf.dosgi.cxf-dosgi-provider-ws;version='[2.1.0,2.1.1)',\
+	org.apache.cxf.dosgi.samples.cxf-dosgi-samples-rest-api;version='[2.1.0,2.1.1)',\
+	org.apache.cxf.dosgi.samples.cxf-dosgi-samples-rest-impl;version='[2.1.0,2.1.1)'
\ No newline at end of file
