http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/discovery/local/src/test/resources/ed3.xml
----------------------------------------------------------------------
diff --git a/discovery/local/src/test/resources/ed3.xml 
b/discovery/local/src/test/resources/ed3.xml
deleted file mode 100644
index 7d4d681..0000000
--- a/discovery/local/src/test/resources/ed3.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  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.
--->
-
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0";>
-  <endpoint-description>
-    <property name="objectClass">
-      <array>
-        <value>SomeService</value>
-      </array>
-    </property>
-    <property name="endpoint.id">http://somewhere:12345</property>
-    <property name="service.imported.configs" value="org.apache.cxf.ws"/>
-  </endpoint-description>
-</endpoint-descriptions>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/discovery/local/src/test/resources/ed4.xml
----------------------------------------------------------------------
diff --git a/discovery/local/src/test/resources/ed4.xml 
b/discovery/local/src/test/resources/ed4.xml
deleted file mode 100644
index cef5d18..0000000
--- a/discovery/local/src/test/resources/ed4.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  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.
--->
-
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0";
-  xmlns:other="http://www.acme.org/xmlns/other/v1.0.0";>
-  <endpoint-description>
-    <property name="objectClass">
-      <array>
-        <value>org.example.ClassA</value>
-      </array>
-    </property>
-    <property name="endpoint.id">http://somewhere</property>
-    <property name="service.imported.configs" value="org.apache.cxf.ws"/>
-  </endpoint-description>
-
-  <endpoint-description>
-    <property name="objectClass">
-      <array>
-        <value>org.example.ClassB</value>
-      </array>
-    </property>
-    <property name="endpoint.id">http://somewhere:1</property>
-    <property name="service.imported.configs" value="org.apache.cxf.ws"/>
-  </endpoint-description>
-</endpoint-descriptions>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/discovery/local/src/test/resources/sd.xml
----------------------------------------------------------------------
diff --git a/discovery/local/src/test/resources/sd.xml 
b/discovery/local/src/test/resources/sd.xml
deleted file mode 100644
index c476116..0000000
--- a/discovery/local/src/test/resources/sd.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-  <!--
-    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.
-  -->
-<service-descriptions xmlns="http://www.osgi.org/xmlns/sd/v1.0.0";>
-  <service-description>
-    <provide interface="org.apache.cxf.dosgi.samples.greeter.GreeterService" />
-    <property name="service.exported.interfaces">*</property>
-    <property name="service.exported.configs">org.apache.cxf.ws</property>
-    <property 
name="org.apache.cxf.ws.address">http://localhost:9090/greeter</property>
-  </service-description>
-</service-descriptions>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/discovery/local/src/test/resources/sd2.xml
----------------------------------------------------------------------
diff --git a/discovery/local/src/test/resources/sd2.xml 
b/discovery/local/src/test/resources/sd2.xml
deleted file mode 100644
index 5a156ea..0000000
--- a/discovery/local/src/test/resources/sd2.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  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.
--->
-
-<service-descriptions xmlns="http://www.osgi.org/xmlns/sd/v1.0.0";>
-  <service-description>
-    <provide interface="org.example.SomeService" />
-    <property name="service.intents">confidentiality</property>
-  </service-description>
-  <service-description>
-    <provide interface="SomeOtherService" />
-    <provide interface="WithSomeSecondInterface" />
-    <property name="blah">5</property>
-  </service-description>
-</service-descriptions>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/discovery/pom.xml
----------------------------------------------------------------------
diff --git a/discovery/pom.xml b/discovery/pom.xml
deleted file mode 100644
index f176e51..0000000
--- a/discovery/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' ?>
-<!--
-  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.
--->
-<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/maven-v4_0_0.xsd";>
-
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.cxf.dosgi</groupId>
-    <artifactId>cxf-dosgi-ri-discovery</artifactId>
-    <packaging>pom</packaging>
-    <name>Distributed OSGI Discovery Service Modules</name>
-    <version>1.8-SNAPSHOT</version>
-
-    <parent>
-      <groupId>org.apache.cxf.dosgi</groupId>
-      <artifactId>cxf-dosgi-ri-parent</artifactId>
-      <version>1.8-SNAPSHOT</version>
-      <relativePath>../parent/pom.xml</relativePath>
-    </parent>
-
-    <modules>
-      <module>local</module>
-      <module>distributed</module>
-    </modules>
-
-</project>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/distribution/features/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/distribution/features/src/main/resources/features.xml 
b/distribution/features/src/main/resources/features.xml
index d8f74d4..26932b1 100644
--- a/distribution/features/src/main/resources/features.xml
+++ b/distribution/features/src/main/resources/features.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0"; 
name="cxf-dosgi-${project.version}">
     
<repository>mvn:org.apache.cxf.karaf/apache-cxf/${cxf.version}/xml/features</repository>
+    
<repository>mvn:org.apache.aries.rsa/rsa-features/1.8-SNAPSHOT/xml/features</repository>
 
        <feature name="cxf-dosgi-base" description="base libs needed outside 
karaf" version="${project.version}" resolver="(obr)">
         <bundle 
start-level="8">mvn:org.ops4j.pax.logging/pax-logging-api/1.8.5</bundle>
@@ -15,20 +16,8 @@
         <bundle 
start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/1.0.7</bundle>
     </feature>
 
-    <feature name="cxf-dosgi-core" version="${project.version}">
-        <bundle 
start-level="8">mvn:${project.groupId}/cxf-dosgi-ri-osgi-api/${project.version}</bundle>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-provider-api/${project.version}</bundle>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-rsa/${project.version}</bundle>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-topology-manager/${project.version}</bundle>
-    </feature>
-    
-    <feature name="cxf-dosgi-provider-tcp" version="${project.version}">
-        <feature>cxf-dosgi-core</feature>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-tcp/${project.version}</bundle>
-    </feature>
-    
     <feature name="cxf-dosgi-provider-cxf" version="${project.version}">
-        <feature>cxf-dosgi-core</feature>
+        <feature>aries-rsa-core</feature>
         <feature>cxf-specs</feature>
         <feature>cxf-jaxws</feature>
         <feature>cxf-jaxrs</feature>
@@ -37,23 +26,7 @@
         <feature>cxf-http</feature>
         <feature>http</feature>
         
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-dsw-cxf/${project.version}</bundle>
+        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-dsw-cxf/${project.version}</bundle>
     </feature>
     
-
-    <feature name="cxf-dosgi-discovery-local" version="${project.version}">
-        <feature>cxf-dosgi-core</feature>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-discovery-local/${project.version}</bundle>
-    </feature>
-
-    <feature name="cxf-dosgi-discovery-distributed" 
version="${project.version}">
-        <feature>cxf-dosgi-core</feature>
-        
<bundle>mvn:org.apache.zookeeper/zookeeper/${zookeeper.version}</bundle>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-discovery-local/${project.version}</bundle>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-discovery-distributed/${project.version}</bundle>
-    </feature>
-
-    <feature name="cxf-dosgi-zookeeper-server">
-        
<bundle>mvn:org.apache.zookeeper/zookeeper/${zookeeper.version}</bundle>
-        
<bundle>mvn:${project.groupId}/cxf-dosgi-ri-discovery-distributed-zookeeper-server/${project.version}</bundle>
-    </feature>
 </features>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/distribution/multi-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/distribution/multi-bundle/pom.xml 
b/distribution/multi-bundle/pom.xml
index 1b835ff..3053200 100644
--- a/distribution/multi-bundle/pom.xml
+++ b/distribution/multi-bundle/pom.xml
@@ -66,10 +66,9 @@
               </descriptors>
               <features>
                 <feature>cxf-dosgi-base</feature>
-                <feature>cxf-dosgi-core</feature>
+                <feature>aries-rsa-discovery-zookeeper</feature>
+                <feature>aries-rsa-zookeeper-server</feature>
                 <feature>cxf-dosgi-provider-cxf</feature>
-                <feature>cxf-dosgi-discovery-distributed</feature>
-                <feature>cxf-dosgi-zookeeper-server</feature>
               </features>
               <repository>target/distribution_bundles</repository>
               
<resolveDefinedRepositoriesRecursively>true</resolveDefinedRepositoriesRecursively>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-provider-api/pom.xml
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-provider-api/pom.xml 
b/dsw/cxf-dosgi-provider-api/pom.xml
deleted file mode 100644
index 0deab6c..0000000
--- a/dsw/cxf-dosgi-provider-api/pom.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<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.cxf.dosgi</groupId>
-        <artifactId>cxf-dosgi-ri-parent</artifactId>
-        <version>1.8-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
-    </parent>
-    <artifactId>cxf-dosgi-ri-provider-api</artifactId>
-    <packaging>bundle</packaging>
-    <name>Distributed OSGI Distributed Software Modules</name>
-
-    <properties>
-        <topDirectoryLocation>../..</topDirectoryLocation>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jdk14</artifactId>
-            <version>1.7.14</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java
 
b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java
deleted file mode 100644
index d7c648b..0000000
--- 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java
+++ /dev/null
@@ -1,56 +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.cxf.dosgi.dsw.api;
-
-import java.util.Map;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-
-@SuppressWarnings("rawtypes")
-public interface DistributionProvider {
-
-    String[] getSupportedTypes();
-
-    /**
-     * @param serviceO service instance to be exported
-     * @param serviceContext bundle context of the bundle exporting the sevice
-     * @param effectiveProperties combined properties of the service and 
additional properties from rsa
-     * @param exportedInterfaces name of the interface to be exported
-     * @return Endpoint that represents the service that is exposed to the 
outside world
-     */
-    Endpoint exportService(Object serviceO, 
-                           BundleContext serviceContext,
-                           Map<String, Object> effectiveProperties,
-                           Class[] exportedInterfaces);
-
-    /**
-     * @param cl classloader of the consumer bundle
-     * @param consumerContext bundle context of the consumer bundle
-     * @param interfaces interfaces of the service to proxy
-     * @param endpoint description of the remote endpoint
-     * @return service proxy to be given to the requesting bundle
-     * @throws IntentUnsatisfiedException
-     */
-    Object importEndpoint(ClassLoader cl,
-                          BundleContext consumerContext, 
-                          Class[] interfaces, 
-                          EndpointDescription endpoint)
-        throws IntentUnsatisfiedException;
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java
 
b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java
deleted file mode 100644
index f45b562..0000000
--- 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java
+++ /dev/null
@@ -1,27 +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.cxf.dosgi.dsw.api;
-
-import java.io.Closeable;
-
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-
-public interface Endpoint extends Closeable {
-    EndpointDescription description();
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java
 
b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java
deleted file mode 100644
index cdc66ad..0000000
--- 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java
+++ /dev/null
@@ -1,41 +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.cxf.dosgi.dsw.api;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-public final class EndpointHelper {
-
-    private EndpointHelper() {
-    }
-
-    public static void addObjectClass(Map<String, Object> props, Class<?>[] 
interfaces) {
-        props.put(org.osgi.framework.Constants.OBJECTCLASS, 
getClassNames(interfaces));
-    }
-    
-    public static String[] getClassNames(Class<?>[] ifaces) {
-        List<String> ifaceNames = new ArrayList<String>();
-        for (Class<?> iface : ifaces) {
-            ifaceNames.add(iface.getName());
-        }
-        return ifaceNames.toArray(new String[]{});
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java
 
b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java
deleted file mode 100644
index 9e82c04..0000000
--- 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java
+++ /dev/null
@@ -1,46 +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.cxf.dosgi.dsw.api;
-
-import java.util.Map;
-
-import org.osgi.framework.ServiceReference;
-
-
-/**
- * SPI for TopologyManagerExport. Allows to export services that are
- * not marked for export as well customize the way services are exported.
- * 
- * Use cases:
- * - Mandate SSL and basic authoriziation by adding the respective intents and 
configs
- * - Add logging interceptor as intent
- * - Remove exported interfaces to filter out services
- */
-public interface ExportPolicy {
-    /**
-     * Allows to supply additional properties for a service that are then
-     * given to RemoteServiceAdmin. The service will be exported
-     * if the original service or the additional properties contain the
-     * non empty property service.exported.interfaces. 
-     * 
-     * @param service to export
-     * @return additional properties for exported Service (must not be null)
-     */
-    Map<String, ?> additionalParameters(ServiceReference<?> sref);
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java
 
b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java
deleted file mode 100644
index 4e27938..0000000
--- 
a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java
+++ /dev/null
@@ -1,35 +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.cxf.dosgi.dsw.api;
-
-public class IntentUnsatisfiedException extends RuntimeException {
-
-    private static final long serialVersionUID = 1L;
-
-    private final String intent;
-
-    public IntentUnsatisfiedException(String intent) {
-        super(intent);
-        this.intent = intent;
-    }
-
-    public String getIntent() {
-        return intent;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/pom.xml
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-rsa/pom.xml b/dsw/cxf-dosgi-rsa/pom.xml
deleted file mode 100644
index b96828b..0000000
--- a/dsw/cxf-dosgi-rsa/pom.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<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.cxf.dosgi</groupId>
-        <artifactId>cxf-dosgi-ri-parent</artifactId>
-        <version>1.8-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
-    </parent>
-    <artifactId>cxf-dosgi-ri-rsa</artifactId>
-    <packaging>bundle</packaging>
-    <name>CXF dOSGi Remote Service Admin Implementation</name>
-    <description>The CXF Remote Service Admin as described in the OSGi Remote 
Service Admin specification</description>
-
-    <properties>
-        <topDirectoryLocation>../..</topDirectoryLocation>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf.dosgi</groupId>
-            <artifactId>cxf-dosgi-ri-provider-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jdk14</artifactId>
-            <version>1.7.14</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        
<Bundle-Activator>org.apache.cxf.dosgi.dsw.service.Activator</Bundle-Activator>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java
deleted file mode 100644
index 4c4d7ad..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java
+++ /dev/null
@@ -1,37 +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.cxf.dosgi.dsw.service;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-    private DistributionProviderTracker tracker;
-
-    public void start(BundleContext bundlecontext) throws Exception {
-        tracker = new DistributionProviderTracker(bundlecontext);
-        tracker.open();
-    }
-
-    public void stop(BundleContext context) throws Exception {
-        tracker.close();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java
deleted file mode 100644
index 7c292db..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java
+++ /dev/null
@@ -1,110 +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.cxf.dosgi.dsw.service;
-
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.cxf.dosgi.dsw.api.DistributionProvider;
-import org.apache.cxf.dosgi.dsw.api.IntentUnsatisfiedException;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceFactory;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.framework.wiring.BundleWiring;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("rawtypes")
-public class ClientServiceFactory implements ServiceFactory {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(ClientServiceFactory.class);
-
-    private EndpointDescription endpoint;
-    private DistributionProvider handler;
-    private ImportRegistrationImpl importRegistration;
-
-    private boolean closeable;
-    private int serviceCounter;
-
-    public ClientServiceFactory(EndpointDescription endpoint,
-                                DistributionProvider handler, 
ImportRegistrationImpl ir) {
-        this.endpoint = endpoint;
-        this.handler = handler;
-        this.importRegistration = ir;
-    }
-
-    public Object getService(final Bundle requestingBundle, final 
ServiceRegistration sreg) {
-        List<String> interfaceNames = endpoint.getInterfaces();
-        final BundleContext consumerContext = 
requestingBundle.getBundleContext();
-        final ClassLoader consumerLoader = 
requestingBundle.adapt(BundleWiring.class).getClassLoader();
-        try {
-            LOG.debug("getService() from serviceFactory for {}", 
interfaceNames);
-            final List<Class<?>> interfaces = new ArrayList<Class<?>>();
-            for (String ifaceName : interfaceNames) {
-                interfaces.add(consumerLoader.loadClass(ifaceName));
-            }
-            Object proxy = AccessController.doPrivileged(new 
PrivilegedAction<Object>() {
-                public Object run() {
-                    Class<?>[] ifAr = interfaces.toArray(new Class[]{});
-                    return handler.importEndpoint(consumerLoader, 
consumerContext, ifAr, endpoint);
-                }
-            });
-
-            synchronized (this) {
-                serviceCounter++;
-            }
-            return proxy;
-        } catch (IntentUnsatisfiedException iue) {
-            LOG.info("Did not create proxy for {} because intent {} could not 
be satisfied",
-                    interfaceNames, iue.getIntent());
-        } catch (Exception e) {
-            LOG.warn("Problem creating a remote proxy for {}", interfaceNames, 
e);
-        }
-        return null;
-    }
-
-    public void ungetService(Bundle requestingBundle, ServiceRegistration 
sreg, Object serviceObject) {
-        String[] interfaces = 
(String[])sreg.getReference().getProperty(org.osgi.framework.Constants.OBJECTCLASS);
-        LOG.info("Releasing a client object, interfaces: {}", 
Arrays.toString(interfaces));
-
-        synchronized (this) {
-            serviceCounter--;
-            LOG.debug("Services still provided by this ServiceFactory: {}", 
serviceCounter);
-            closeIfUnused();
-        }
-    }
-
-    public void setCloseable(boolean closeable) {
-        synchronized (this) {
-            this.closeable = closeable;
-            closeIfUnused();
-        }
-    }
-
-    private synchronized void closeIfUnused() {
-        if (serviceCounter <= 0 && closeable) {
-            importRegistration.closeAll();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java
deleted file mode 100644
index 675fcc6..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java
+++ /dev/null
@@ -1,73 +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.cxf.dosgi.dsw.service;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.apache.cxf.dosgi.dsw.api.DistributionProvider;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.remoteserviceadmin.RemoteServiceAdmin;
-import org.osgi.util.tracker.ServiceTracker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("rawtypes")
-public class DistributionProviderTracker extends 
ServiceTracker<DistributionProvider, ServiceRegistration> {
-    private static final Logger LOG = LoggerFactory.getLogger(Activator.class);
-
-    public DistributionProviderTracker(BundleContext context) {
-        super(context, DistributionProvider.class, null);
-    }
-
-    @Override
-    public ServiceRegistration 
addingService(ServiceReference<DistributionProvider> reference) {
-        LOG.debug("RemoteServiceAdmin Implementation is starting up");
-        DistributionProvider provider = context.getService(reference);
-        BundleContext apiContext = getAPIContext();
-        RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(context, 
-                                                                    
apiContext, 
-                                                                    provider);
-        RemoteServiceadminFactory rsaf = new 
RemoteServiceadminFactory(rsaCore);
-        Dictionary<String, Object> props = new Hashtable<String, Object>();
-        props.put("remote.intents.supported", 
reference.getProperty("remote.intents.supported"));
-        props.put("remote.configs.supported", 
reference.getProperty("remote.configs.supported"));
-        LOG.info("Registering RemoteServiceAdmin for provider " + 
provider.getClass().getName());
-        return context.registerService(RemoteServiceAdmin.class.getName(), 
rsaf, props);
-    }
-
-    protected BundleContext getAPIContext() {
-        Bundle apiBundle = FrameworkUtil.getBundle(DistributionProvider.class);
-        BundleContext apiContext = apiBundle.getBundleContext();
-        return apiContext;
-    }
-    
-    @Override
-    public void removedService(ServiceReference<DistributionProvider> 
reference,
-                               ServiceRegistration reg) {
-        LOG.debug("RemoteServiceAdmin Implementation is shutting down now");
-        reg.unregister();
-        super.removedService(reference, reg);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java
deleted file mode 100644
index 4868efa..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java
+++ /dev/null
@@ -1,151 +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.cxf.dosgi.dsw.service;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventAdmin;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class EventAdminHelper {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(EventAdminHelper.class);
-
-    private BundleContext bctx;
-
-    public EventAdminHelper(BundleContext bc) {
-        bctx = bc;
-    }
-
-    private Event createEvent(Map<String, Object> props, String type) {
-        String topic = "org/osgi/service/remoteserviceadmin/" + type;
-        props.put("bundle", bctx.getBundle());
-        props.put("bundle.id", bctx.getBundle().getBundleId());
-        props.put("bundle.symbolicname", bctx.getBundle().getSymbolicName());
-
-        String version = 
(String)bctx.getBundle().getHeaders().get("Bundle-Version");
-        Version v = version != null ? new Version(version) : 
Version.emptyVersion;
-        setIfNotNull(props, "bundle.version", v);
-
-        return new Event(topic, props);
-    }
-
-    public void notifyEventAdmin(RemoteServiceAdminEvent rsae) {
-        String topic = remoteServiceAdminEventTypeToString(rsae.getType());
-
-        Map<String, Object> props = new HashMap<String, Object>();
-        setIfNotNull(props, "cause", rsae.getException());
-
-        EndpointDescription endpoint = null;
-        if (rsae.getImportReference() != null) {
-            endpoint = 
((ImportRegistrationImpl)rsae.getImportReference()).getImportedEndpointAlways();
-            setIfNotNull(props, "import.registration", endpoint);
-        } else if (rsae.getExportReference() != null) {
-            endpoint = rsae.getExportReference().getExportedEndpoint();
-            setIfNotNull(props, "export.registration", endpoint);
-        }
-
-        if (endpoint != null) {
-            setIfNotNull(props, "service.remote.id", endpoint.getServiceId());
-            setIfNotNull(props, "service.remote.uuid", 
endpoint.getFrameworkUUID());
-            setIfNotNull(props, "service.remote.uri", endpoint.getId());
-            setIfNotNull(props, "objectClass", 
endpoint.getInterfaces().toArray());
-            setIfNotNull(props, "service.imported.configs", 
endpoint.getConfigurationTypes());
-        }
-        props.put("timestamp", System.currentTimeMillis());
-        props.put("event", rsae);
-
-        Event event = createEvent(props, topic);
-        notifyEventAdmins(topic, event);
-    }
-
-    @SuppressWarnings({
-     "rawtypes", "unchecked"
-    })
-    private void notifyEventAdmins(String topic, Event event) {
-        ServiceReference[] refs = null;
-        try {
-            refs = bctx.getAllServiceReferences(EventAdmin.class.getName(), 
null);
-        } catch (InvalidSyntaxException e) {
-            LOG.error("Failed to get EventAdmin: " + e.getMessage(), e);
-        }
-
-        if (refs != null) {
-            LOG.debug("Publishing event to {} EventAdmins; Topic:[{}]", 
refs.length, topic);
-            for (ServiceReference serviceReference : refs) {
-                EventAdmin eventAdmin = (EventAdmin) 
bctx.getService(serviceReference);
-                try {
-                    eventAdmin.postEvent(event);
-                } finally {
-                    if (eventAdmin != null) {
-                        bctx.ungetService(serviceReference);
-                    }
-                }
-            }
-        }
-    }
-
-    private <K, V> void setIfNotNull(Map<K, V> map, K key, V val) {
-        if (val != null) {
-            map.put(key, val);
-        }
-    }
-
-    private static String remoteServiceAdminEventTypeToString(int type) {
-        String retval;
-        switch (type) {
-        case RemoteServiceAdminEvent.EXPORT_ERROR:
-            retval = "EXPORT_ERROR";
-            break;
-        case RemoteServiceAdminEvent.EXPORT_REGISTRATION:
-            retval = "EXPORT_REGISTRATION";
-            break;
-        case RemoteServiceAdminEvent.EXPORT_UNREGISTRATION:
-            retval = "EXPORT_UNREGISTRATION";
-            break;
-        case RemoteServiceAdminEvent.EXPORT_WARNING:
-            retval = "EXPORT_WARNING";
-            break;
-        case RemoteServiceAdminEvent.IMPORT_ERROR:
-            retval = "IMPORT_ERROR";
-            break;
-        case RemoteServiceAdminEvent.IMPORT_REGISTRATION:
-            retval = "IMPORT_REGISTRATION";
-            break;
-        case RemoteServiceAdminEvent.IMPORT_UNREGISTRATION:
-            retval = "IMPORT_UNREGISTRATION";
-            break;
-        case RemoteServiceAdminEvent.IMPORT_WARNING:
-            retval = "IMPORT_WARNING";
-            break;
-        default:
-            retval = "UNKNOWN_EVENT";
-        }
-        return retval;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java
deleted file mode 100644
index 26a46ab..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java
+++ /dev/null
@@ -1,114 +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.cxf.dosgi.dsw.service;
-
-import java.util.List;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.remoteserviceadmin.ExportRegistration;
-import org.osgi.service.remoteserviceadmin.ImportRegistration;
-import org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent;
-import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class EventProducer {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(EventProducer.class);
-    private final BundleContext bctx;
-    private final EventAdminHelper eaHelper;
-
-    public EventProducer(BundleContext bc) {
-        bctx = bc;
-        eaHelper = new EventAdminHelper(bctx);
-    }
-
-    protected void publishNotification(List<ExportRegistration> erl) {
-        for (ExportRegistration exportRegistration : erl) {
-            publishNotification(exportRegistration);
-        }
-    }
-
-    protected void publishNotification(ExportRegistration er) {
-        int type = er.getException() == null
-            ? RemoteServiceAdminEvent.EXPORT_REGISTRATION
-            : RemoteServiceAdminEvent.EXPORT_ERROR;
-        notify(type, null, er);
-    }
-
-    protected void publishNotification(ImportRegistration ir) {
-        int type = ir.getException() == null
-            ? RemoteServiceAdminEvent.IMPORT_REGISTRATION
-            : RemoteServiceAdminEvent.IMPORT_ERROR;
-        notify(type, ir, null);
-    }
-
-    public void notifyRemoval(ExportRegistration er) {
-        notify(RemoteServiceAdminEvent.EXPORT_UNREGISTRATION, null, er);
-    }
-
-    public void notifyRemoval(ImportRegistration ir) {
-        notify(RemoteServiceAdminEvent.IMPORT_UNREGISTRATION, ir, null);
-    }
-
-    // only one of ir or er must be set, and the other must be null
-    private void notify(int type, ImportRegistration ir, ExportRegistration 
er) {
-        try {
-            RemoteServiceAdminEvent event = ir != null
-                ? new RemoteServiceAdminEvent(type, bctx.getBundle(), 
ir.getImportReference(), ir.getException())
-                : new RemoteServiceAdminEvent(type, bctx.getBundle(), 
er.getExportReference(), er.getException());
-            notifyListeners(event);
-            eaHelper.notifyEventAdmin(event);
-        } catch (IllegalStateException ise) {
-            LOG.debug("can't send notifications since bundle context is no 
longer valid");
-        }
-    }
-
-    @SuppressWarnings({
-     "rawtypes", "unchecked"
-    })
-    private void notifyListeners(RemoteServiceAdminEvent rsae) {
-        try {
-            ServiceReference[] listenerRefs = bctx.getServiceReferences(
-                    RemoteServiceAdminListener.class.getName(), null);
-            if (listenerRefs != null) {
-                for (ServiceReference sref : listenerRefs) {
-                    RemoteServiceAdminListener rsal = 
(RemoteServiceAdminListener)bctx.getService(sref);
-                    if (rsal != null) {
-                        try {
-                            Bundle bundle = sref.getBundle();
-                            if (bundle != null) {
-                                LOG.debug("notify RemoteServiceAdminListener 
{} of bundle {}",
-                                        rsal, bundle.getSymbolicName());
-                                rsal.remoteAdminEvent(rsae);
-                            }
-                        } finally {
-                            bctx.ungetService(sref);
-                        }
-                    }
-                }
-            }
-        } catch (InvalidSyntaxException e) {
-            LOG.error(e.getMessage(), e);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java
deleted file mode 100644
index 497aa9c..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java
+++ /dev/null
@@ -1,77 +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.cxf.dosgi.dsw.service;
-
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.ExportReference;
-
-@SuppressWarnings("rawtypes")
-public class ExportReferenceImpl implements ExportReference {
-
-    private ServiceReference serviceReference;
-    private EndpointDescription endpoint;
-
-    public ExportReferenceImpl(ServiceReference serviceReference, 
EndpointDescription endpoint) {
-        this.serviceReference = serviceReference;
-        this.endpoint = endpoint;
-    }
-
-    public ExportReferenceImpl(ExportReference exportReference) {
-        this(exportReference.getExportedService(), 
exportReference.getExportedEndpoint());
-    }
-
-    public EndpointDescription getExportedEndpoint() {
-        return endpoint;
-    }
-
-    public ServiceReference getExportedService() {
-        return serviceReference;
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + (endpoint == null ? 0 : endpoint.hashCode());
-        result = prime * result + (serviceReference == null ? 0 : 
serviceReference.hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null || getClass() != obj.getClass()) {
-            return false;
-        }
-        ExportReferenceImpl other = (ExportReferenceImpl) obj;
-        boolean ed = endpoint == null ? other.endpoint == null
-                : endpoint.equals(other.endpoint);
-        boolean sr = serviceReference == null ? other.serviceReference == null
-                : serviceReference.equals(other.serviceReference);
-        return ed && sr;
-    }
-
-    synchronized void close() {
-        this.endpoint = null;
-        this.serviceReference = null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
deleted file mode 100644
index d80bd40..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java
+++ /dev/null
@@ -1,152 +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.cxf.dosgi.dsw.service;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.cxf.dosgi.dsw.api.Endpoint;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.ExportReference;
-import org.osgi.service.remoteserviceadmin.ExportRegistration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("rawtypes")
-public class ExportRegistrationImpl implements ExportRegistration {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(ExportRegistrationImpl.class);
-
-    private final RemoteServiceAdminCore rsaCore;
-    private final ExportReferenceImpl exportReference;
-    private final Closeable server;
-    private final Throwable exception;
-
-    private final ExportRegistrationImpl parent;
-    private int instanceCount;
-    private volatile boolean closed;
-
-    private ExportRegistrationImpl(ExportRegistrationImpl parent, 
RemoteServiceAdminCore rsaCore,
-            ExportReferenceImpl exportReference, Closeable server, Throwable 
exception) {
-        this.parent = parent != null ? parent.parent : this; // a parent 
points to itself
-        this.parent.addInstance();
-        this.rsaCore = rsaCore;
-        this.exportReference = exportReference;
-        this.server = server;
-        this.exception = exception;
-    }
-
-    // create a clone of the provided ExportRegistrationImpl that is linked to 
it
-    public ExportRegistrationImpl(ExportRegistrationImpl parent) {
-        this(parent, parent.rsaCore, new 
ExportReferenceImpl(parent.exportReference),
-            parent.server, parent.exception);
-    }
-
-    // create a new (parent) instance which was exported successfully with the 
given server
-    public ExportRegistrationImpl(ServiceReference sref, Endpoint endpoint, 
RemoteServiceAdminCore rsaCore) {
-        this(null, rsaCore, new ExportReferenceImpl(sref, 
endpoint.description()), endpoint, null);
-    }
-
-    // create a new (parent) instance which failed to be exported with the 
given exception
-    public ExportRegistrationImpl(RemoteServiceAdminCore rsaCore, Throwable 
exception) {
-        this(null, rsaCore, null, null, exception);
-    }
-
-    private void ensureParent() {
-        if (parent != this) {
-            throw new IllegalStateException("this method may only be called on 
the parent");
-        }
-    }
-
-    public ExportReference getExportReference() {
-        if (exportReference == null) {
-            throw new IllegalStateException(getException());
-        }
-        return closed ? null : exportReference;
-    }
-
-    public Throwable getException() {
-        return closed ? null : exception;
-    }
-
-    public final void close() {
-        synchronized (this) {
-            if (closed) {
-                return;
-            }
-            closed = true;
-        }
-
-        rsaCore.removeExportRegistration(this);
-        exportReference.close();
-        parent.removeInstance();
-    }
-
-    private void addInstance() {
-        ensureParent();
-        synchronized (this) {
-            instanceCount++;
-        }
-    }
-
-    private void removeInstance() {
-        ensureParent();
-        synchronized (this) {
-            instanceCount--;
-            if (instanceCount <= 0) {
-                LOG.debug("really closing ExportRegistration now!");
-
-                if (server != null) {
-                    try {
-                        server.close();
-                    } catch (IOException e) {
-                        LOG.warn("Error closing ExportRegistration", e);
-                    }
-                }
-            }
-        }
-    }
-
-    @Override
-    public String toString() {
-        if (closed) {
-            return "ExportRegistration closed";
-        }
-        EndpointDescription endpoint = 
getExportReference().getExportedEndpoint();
-        ServiceReference serviceReference = 
getExportReference().getExportedService();
-        String r = "EndpointDescription for ServiceReference " + 
serviceReference;
-
-        r += "\n*** EndpointDescription: ****\n";
-        if (endpoint == null) {
-            r += "---> NULL <---- \n";
-        } else {
-            Set<Map.Entry<String, Object>> props = 
endpoint.getProperties().entrySet();
-            for (Map.Entry<String, Object> entry : props) {
-                Object value = entry.getValue();
-                r += entry.getKey() + " => "
-                    + (value instanceof Object[] ? Arrays.toString((Object[]) 
value) : value) + "\n";
-            }
-        }
-        return r;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java
deleted file mode 100644
index 2b896db..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java
+++ /dev/null
@@ -1,230 +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.cxf.dosgi.dsw.service;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.ImportReference;
-import org.osgi.service.remoteserviceadmin.ImportRegistration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("rawtypes")
-public class ImportRegistrationImpl implements ImportRegistration, 
ImportReference {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(ImportRegistrationImpl.class);
-
-    private volatile Throwable exception;
-    private volatile ServiceRegistration importedService; // used only in 
parent
-    private EndpointDescription endpoint;
-    private volatile ClientServiceFactory clientServiceFactory;
-    private RemoteServiceAdminCore rsaCore;
-    private boolean closed;
-    private boolean detached; // used only in parent
-
-    private ImportRegistrationImpl parent;
-    private List<ImportRegistrationImpl> children; // used only in parent
-
-    public ImportRegistrationImpl(Throwable ex) {
-        exception = ex;
-        initParent();
-    }
-
-    public ImportRegistrationImpl(EndpointDescription endpoint, 
RemoteServiceAdminCore rsac) {
-        this.endpoint = endpoint;
-        this.rsaCore = rsac;
-        initParent();
-    }
-
-    /**
-     * Creates a clone of the given parent instance.
-     */
-    public ImportRegistrationImpl(ImportRegistrationImpl ir) {
-        // we always want a link to the parent...
-        parent = ir.getParent();
-        exception = parent.getException();
-        endpoint = parent.getImportedEndpointDescription();
-        clientServiceFactory = parent.clientServiceFactory;
-        rsaCore = parent.rsaCore;
-
-        parent.instanceAdded(this);
-    }
-
-    private void initParent() {
-        parent = this;
-        children = new ArrayList<ImportRegistrationImpl>(1);
-    }
-
-    private void ensureParent() {
-        if (parent != this) {
-            throw new IllegalStateException("this method may only be called on 
the parent");
-        }
-    }
-
-    /**
-     * Called on parent when a child is added.
-     *
-     * @param iri the child
-     */
-    private synchronized void instanceAdded(ImportRegistrationImpl iri) {
-        ensureParent();
-        children.add(iri);
-    }
-
-    /**
-     * Called on parent when a child is closed.
-     *
-     * @param iri the child
-     */
-    private void instanceClosed(ImportRegistrationImpl iri) {
-        ensureParent();
-        synchronized (this) {
-            children.remove(iri);
-            if (!children.isEmpty() || detached || !closed) {
-                return;
-            }
-            detached = true;
-        }
-
-        LOG.debug("really closing ImportRegistration now");
-
-        if (importedService != null) {
-            try {
-                importedService.unregister();
-            } catch (IllegalStateException ise) {
-                LOG.debug("imported service is already unregistered");
-            }
-            importedService = null;
-        }
-        if (clientServiceFactory != null) {
-            clientServiceFactory.setCloseable(true);
-        }
-    }
-
-    public void close() {
-        LOG.debug("close() called");
-
-        synchronized (this) {
-            if (isInvalid()) {
-                return;
-            }
-            closed = true;
-        }
-        rsaCore.removeImportRegistration(this);
-        parent.instanceClosed(this);
-    }
-
-    /**
-     * Closes all ImportRegistrations which share the same parent as this one.
-     */
-    public void closeAll() {
-        if (this == parent) {
-            LOG.info("closing down all child ImportRegistrations");
-
-            // we must iterate over a copy of children since close() removes 
the child
-            // from the list (which would cause a 
ConcurrentModificationException)
-            for (ImportRegistrationImpl ir : copyChildren()) {
-                ir.close();
-            }
-            this.close();
-        } else {
-            parent.closeAll();
-        }
-    }
-
-    private List<ImportRegistrationImpl> copyChildren() {
-        synchronized (this) {
-            return new ArrayList<ImportRegistrationImpl>(children);
-        }
-    }
-
-    public EndpointDescription getImportedEndpointDescription() {
-        return isInvalid() ? null : endpoint;
-    }
-
-    @Override
-    public EndpointDescription getImportedEndpoint() {
-        return getImportedEndpointDescription();
-    }
-
-    @Override
-    public ServiceReference getImportedService() {
-        return isInvalid() || parent.importedService == null ? null : 
parent.importedService.getReference();
-    }
-
-    @Override
-    public ImportReference getImportReference() {
-        return this;
-    }
-
-    @Override
-    public Throwable getException() {
-        return exception;
-    }
-
-    public void setException(Throwable ex) {
-        exception = ex;
-    }
-
-    private synchronized boolean isInvalid() {
-        return exception != null || closed;
-    }
-
-    /**
-     * Sets the {@link ServiceRegistration} representing the locally
-     * registered {@link ClientServiceFactory} service which provides
-     * proxies to the remote imported service. It is set only on the parent.
-     *
-     * @param sreg the ServiceRegistration
-     */
-    public void setImportedServiceRegistration(ServiceRegistration sreg) {
-        ensureParent();
-        importedService = sreg;
-    }
-
-    /**
-     * Sets the {@link ClientServiceFactory} which is the implementation
-     * of the locally registered service which provides proxies to the
-     * remote imported service. It is set only on the parent.
-     *
-     * @param csf the ClientServiceFactory
-     */
-    public void setClientServiceFactory(ClientServiceFactory csf) {
-        ensureParent();
-        clientServiceFactory = csf;
-    }
-
-    public ImportRegistrationImpl getParent() {
-        return parent;
-    }
-
-    /**
-     * Returns the imported endpoint even if this
-     * instance is closed or has an exception.
-     *
-     * @return the imported endpoint
-     */
-    public EndpointDescription getImportedEndpointAlways() {
-        return endpoint;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java
----------------------------------------------------------------------
diff --git 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java
 
b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java
deleted file mode 100644
index effcef1..0000000
--- 
a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java
+++ /dev/null
@@ -1,85 +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.cxf.dosgi.dsw.service;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.ExportedPackage;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("deprecation")
-public final class PackageUtil {
-
-    public static final Logger LOG = 
LoggerFactory.getLogger(PackageUtil.class);
-
-    private PackageUtil() {
-    }
-
-    /**
-     * Tries to retrieve the version of iClass via the PackageAdmin.
-     *
-     * @param iClass tThe interface for which the version should be found
-     * @param bc any valid BundleContext
-     * @return the version of the interface or "0.0.0" if no version 
information could be found or an error
-     *         occurred during the retrieval
-     */
-    public static String getVersion(Class<?> iClass, BundleContext bc) {
-        ServiceReference<PackageAdmin> paRef = 
bc.getServiceReference(PackageAdmin.class);
-        if (paRef != null) {
-            PackageAdmin pa = bc.getService(paRef);
-            try {
-                Bundle b = pa.getBundle(iClass);
-                if (b == null) {
-                    LOG.info("Unable to find interface version for interface " 
+ iClass.getName()
-                            + ". Falling back to 0.0.0");
-                    return "0.0.0";
-                }
-                LOG.debug("Interface source bundle: {}", b.getSymbolicName());
-
-                ExportedPackage[] ep = pa.getExportedPackages(b);
-                LOG.debug("Exported Packages of the source bundle: {}", 
(Object)ep);
-
-                String pack = iClass.getPackage().getName();
-                LOG.debug("Looking for Package: {}", pack);
-                if (ep != null) {
-                    for (ExportedPackage p : ep) {
-                        if (p != null
-                            && pack.equals(p.getName())) {
-                            LOG.debug("found package -> Version: {}", 
p.getVersion());
-                            return p.getVersion().toString();
-                        }
-                    }
-                }
-            } finally {
-                if (pa != null) {
-                    bc.ungetService(paRef);
-                }
-            }
-        } else {
-            LOG.error("Was unable to obtain the package admin service -> can't 
resolve interface versions");
-        }
-
-        LOG.info("Unable to find interface version for interface " + 
iClass.getName()
-                 + ". Falling back to 0.0.0");
-        return "0.0.0";
-    }
-}

Reply via email to