diff --git a/pojosr/DEPENDENCIES b/connect/DEPENDENCIES
similarity index 100%
rename from pojosr/DEPENDENCIES
rename to connect/DEPENDENCIES
diff --git a/pojosr/LICENSE b/connect/LICENSE
similarity index 100%
rename from pojosr/LICENSE
rename to connect/LICENSE
diff --git a/pojosr/NOTICE b/connect/NOTICE
similarity index 100%
rename from pojosr/NOTICE
rename to connect/NOTICE
diff --git a/connect/pom.xml b/connect/pom.xml
new file mode 100644
index 0000000..10be23c
--- /dev/null
+++ b/connect/pom.xml
@@ -0,0 +1,164 @@
+<!--
+
+    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">
+    <parent>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>felix-parent</artifactId>
+        <version>2.1</version>
+        <relativePath>../pom/pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>bundle</packaging>
+    <name>Apache Felix Connect</name>
+    <artifactId>org.apache.felix.connect</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+    <description>A service registry that enables OSGi style service registry programs without using an OSGi framework.
+    </description>
+    <url>http://felix.apache.org/</url>
+    <licenses>
+        <license>
+            <name>The Apache Software License, Version 2.0</name>
+            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/connect</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/connect</developerConnection>
+        <url>http://svn.apache.org/repos/asf/felix/connect</url>
+    </scm>
+    <developers>
+        <developer>
+            <id>karlpauls</id>
+            <name>Karl Pauls</name>
+            <email>karlpauls@gmail.com</email>
+        </developer>
+    </developers>
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <version>4.3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+            <version>4.2.0</version>
+        </dependency>
+    </dependencies>
+    <repositories/>
+    <pluginRepositories/>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <includes>
+                        <include>src/**</include>
+                    </includes>
+                    <excludes>
+                        <exclude>src/main/resources/META-INF/services/org.apache.felix.connect.launch.PojoServiceRegistryFactory</exclude>
+                        <exclude>src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <target>1.5</target>
+                    <source>1.5</source>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>2.1.2</version>
+                <executions>
+                    <execution>
+                        <id>attach-sources</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>jar-no-fork</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>2.8</version>
+                <executions>
+                    <execution>
+                        <id>attach-javadoc</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>2.3.4</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>org.apache.felix.connect</Bundle-SymbolicName>
+                        <Bundle-Name>Pojo Service Registry</Bundle-Name>
+                        <Bundle-Vendor>Apache Software Foundation</Bundle-Vendor>
+                        <Private-Package>org.osgi.framework.*, org.osgi.service.url, org.osgi.service.packageadmin,
+                            org.osgi.service.startlevel, org.osgi.util.tracker, org.apache.felix.connect.*
+                        </Private-Package>
+                        <Import-Package>!*</Import-Package>
+                        <Include-Resource>
+                            META-INF/LICENSE=LICENSE,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES,{src/main/resources/}
+                        </Include-Resource>
+                        <Main-Class>org.apache.felix.connect.PojoSR</Main-Class>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+            <resource>
+                <directory>.</directory>
+                <targetPath>META-INF</targetPath>
+                <includes>
+                    <include>LICENSE*</include>
+                    <include>NOTICE*</include>
+                    <include>DEPENDENCIES*</include>
+                </includes>
+            </resource>
+        </resources>
+    </build>
+</project>
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/DirRevision.java b/connect/src/main/java/org/apache/felix/connect/DirRevision.java
similarity index 90%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/DirRevision.java
rename to connect/src/main/java/org/apache/felix/connect/DirRevision.java
index 7772585..29a8328 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/DirRevision.java
+++ b/connect/src/main/java/org/apache/felix/connect/DirRevision.java
@@ -16,16 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Enumeration;
-import java.util.Map;
-
-import de.kalpatec.pojosr.framework.felix.framework.util.StringMap;
 
 class DirRevision extends Revision
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/EntriesEnumeration.java b/connect/src/main/java/org/apache/felix/connect/EntriesEnumeration.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/EntriesEnumeration.java
rename to connect/src/main/java/org/apache/felix/connect/EntriesEnumeration.java
index 879dae3..c5c4990 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/EntriesEnumeration.java
+++ b/connect/src/main/java/org/apache/felix/connect/EntriesEnumeration.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.util.Enumeration;
 import java.util.zip.ZipEntry;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/EntryFilterEnumeration.java b/connect/src/main/java/org/apache/felix/connect/EntryFilterEnumeration.java
similarity index 98%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/EntryFilterEnumeration.java
rename to connect/src/main/java/org/apache/felix/connect/EntryFilterEnumeration.java
index d91092e..2e3de55 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/EntryFilterEnumeration.java
+++ b/connect/src/main/java/org/apache/felix/connect/EntryFilterEnumeration.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -27,7 +27,7 @@
 import java.util.NoSuchElementException;
 import java.util.Set;
 
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.SimpleFilter;
+import org.apache.felix.connect.felix.framework.capabilityset.SimpleFilter;
 
 class EntryFilterEnumeration<T> implements Enumeration<T>
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/FileEntriesEnumeration.java b/connect/src/main/java/org/apache/felix/connect/FileEntriesEnumeration.java
similarity index 98%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/FileEntriesEnumeration.java
rename to connect/src/main/java/org/apache/felix/connect/FileEntriesEnumeration.java
index f6478eb..ab9aa60 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/FileEntriesEnumeration.java
+++ b/connect/src/main/java/org/apache/felix/connect/FileEntriesEnumeration.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.io.File;
 import java.util.Enumeration;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/JarRevision.java b/connect/src/main/java/org/apache/felix/connect/JarRevision.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/JarRevision.java
rename to connect/src/main/java/org/apache/felix/connect/JarRevision.java
index cbfaff0..aa8f442 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/JarRevision.java
+++ b/connect/src/main/java/org/apache/felix/connect/JarRevision.java
@@ -16,19 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.io.*;
 import java.net.URLStreamHandler;
 import java.net.URLConnection;
 import java.net.URL;
 import java.util.Enumeration;
-import java.util.Map;
 import java.util.jar.JarFile;
 import java.util.jar.JarEntry;
-import java.util.zip.ZipEntry;
-
-import de.kalpatec.pojosr.framework.felix.framework.util.StringMap;
 
 class JarRevision extends Revision
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSR.java b/connect/src/main/java/org/apache/felix/connect/PojoSR.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSR.java
rename to connect/src/main/java/org/apache/felix/connect/PojoSR.java
index 13c5ff7..0fcc480 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSR.java
+++ b/connect/src/main/java/org/apache/felix/connect/PojoSR.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.io.File;
 import java.net.JarURLConnection;
@@ -49,12 +49,12 @@
 import org.osgi.service.packageadmin.RequiredBundle;
 import org.osgi.service.startlevel.StartLevel;
 
-import de.kalpatec.pojosr.framework.felix.framework.ServiceRegistry;
-import de.kalpatec.pojosr.framework.felix.framework.util.EventDispatcher;
-import de.kalpatec.pojosr.framework.launch.BundleDescriptor;
-import de.kalpatec.pojosr.framework.launch.ClasspathScanner;
-import de.kalpatec.pojosr.framework.launch.PojoServiceRegistry;
-import de.kalpatec.pojosr.framework.launch.PojoServiceRegistryFactory;
+import org.apache.felix.connect.felix.framework.ServiceRegistry;
+import org.apache.felix.connect.felix.framework.util.EventDispatcher;
+import org.apache.felix.connect.launch.BundleDescriptor;
+import org.apache.felix.connect.launch.ClasspathScanner;
+import org.apache.felix.connect.launch.PojoServiceRegistry;
+import org.apache.felix.connect.launch.PojoServiceRegistryFactory;
 
 public class PojoSR implements PojoServiceRegistry
 {
@@ -78,11 +78,11 @@
     {
         final Map<String, String> headers = new HashMap<String, String>();
         headers.put(Constants.BUNDLE_SYMBOLICNAME,
-                "de.kalpatec.pojosr.framework");
-        headers.put(Constants.BUNDLE_VERSION, "0.3.0-SNAPSHOT");
+                "org.apache.felix.connect");
+        headers.put(Constants.BUNDLE_VERSION, "0.1.0-SNAPSHOT");
         headers.put(Constants.BUNDLE_NAME, "System Bundle");
         headers.put(Constants.BUNDLE_MANIFESTVERSION, "2");
-		headers.put(Constants.BUNDLE_VENDOR, "kalpatec");
+		headers.put(Constants.BUNDLE_VENDOR, "Apache Software Foundation");
         bundleConfig = new HashMap(config);
         final Bundle b = new PojoSRBundle(new Revision()
         {
@@ -106,7 +106,7 @@
                 return getClass().getClassLoader().getResource(entryName);
             }
         }, headers, new Version(0, 0, 1), "file:pojosr", m_reg, m_dispatcher,
-                null, 0, "de.kalpatec.pojosr.framework", m_bundles, getClass()
+                null, 0, "org.apache.felix.connect", m_bundles, getClass()
                         .getClassLoader(), bundleConfig)
         {
         	@Override
@@ -181,7 +181,7 @@
 					}
 				};
 				m_state = Bundle.STOPPING;
-				if ("true".equalsIgnoreCase(System.getProperty("de.kalpatec.pojosr.framework.events.sync"))) {
+				if ("true".equalsIgnoreCase(System.getProperty("org.apache.felix.connect.events.sync"))) {
 					r.run();
 				}
 				else {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSRBundle.java b/connect/src/main/java/org/apache/felix/connect/PojoSRBundle.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSRBundle.java
rename to connect/src/main/java/org/apache/felix/connect/PojoSRBundle.java
index 3d61e04..9c7a570 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSRBundle.java
+++ b/connect/src/main/java/org/apache/felix/connect/PojoSRBundle.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.io.File;
 import java.io.IOException;
@@ -53,10 +53,10 @@
 import org.osgi.framework.wiring.BundleWiring;
 
 
-import de.kalpatec.pojosr.framework.felix.framework.ServiceRegistry;
-import de.kalpatec.pojosr.framework.felix.framework.util.EventDispatcher;
-import de.kalpatec.pojosr.framework.felix.framework.util.MapToDictionary;
-import de.kalpatec.pojosr.framework.felix.framework.util.StringMap;
+import org.apache.felix.connect.felix.framework.ServiceRegistry;
+import org.apache.felix.connect.felix.framework.util.EventDispatcher;
+import org.apache.felix.connect.felix.framework.util.MapToDictionary;
+import org.apache.felix.connect.felix.framework.util.StringMap;
 
 class PojoSRBundle implements Bundle, BundleRevisions, BundleRevision
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSRBundleContext.java b/connect/src/main/java/org/apache/felix/connect/PojoSRBundleContext.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSRBundleContext.java
rename to connect/src/main/java/org/apache/felix/connect/PojoSRBundleContext.java
index 9829aad..e4e3b3c 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoSRBundleContext.java
+++ b/connect/src/main/java/org/apache/felix/connect/PojoSRBundleContext.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.io.File;
 import java.io.InputStream;
@@ -25,11 +25,9 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Dictionary;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.osgi.framework.AllServiceListener;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
@@ -38,14 +36,13 @@
 import org.osgi.framework.FrameworkListener;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceEvent;
 import org.osgi.framework.ServiceListener;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 
-import de.kalpatec.pojosr.framework.felix.framework.ServiceRegistry;
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.SimpleFilter;
-import de.kalpatec.pojosr.framework.felix.framework.util.EventDispatcher;
+import org.apache.felix.connect.felix.framework.ServiceRegistry;
+import org.apache.felix.connect.felix.framework.capabilityset.SimpleFilter;
+import org.apache.felix.connect.felix.framework.util.EventDispatcher;
 
 class PojoSRBundleContext implements BundleContext
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoServiceRegistryFactoryImpl.java b/connect/src/main/java/org/apache/felix/connect/PojoServiceRegistryFactoryImpl.java
similarity index 93%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoServiceRegistryFactoryImpl.java
rename to connect/src/main/java/org/apache/felix/connect/PojoServiceRegistryFactoryImpl.java
index 099ba3f..5fdab63 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/PojoServiceRegistryFactoryImpl.java
+++ b/connect/src/main/java/org/apache/felix/connect/PojoServiceRegistryFactoryImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.io.File;
 import java.io.IOException;
@@ -31,20 +31,16 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.BundleException;
-import org.osgi.framework.BundleListener;
 import org.osgi.framework.FrameworkEvent;
-import org.osgi.framework.FrameworkListener;
-import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceListener;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.SynchronousBundleListener;
 import org.osgi.framework.Version;
 import org.osgi.framework.launch.Framework;
 import org.osgi.framework.launch.FrameworkFactory;
 
-import de.kalpatec.pojosr.framework.launch.ClasspathScanner;
-import de.kalpatec.pojosr.framework.launch.PojoServiceRegistry;
-import de.kalpatec.pojosr.framework.launch.PojoServiceRegistryFactory;
+import org.apache.felix.connect.launch.ClasspathScanner;
+import org.apache.felix.connect.launch.PojoServiceRegistry;
+import org.apache.felix.connect.launch.PojoServiceRegistryFactory;
 
 public class PojoServiceRegistryFactoryImpl implements
 		PojoServiceRegistryFactory, FrameworkFactory {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/Revision.java b/connect/src/main/java/org/apache/felix/connect/Revision.java
similarity index 91%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/Revision.java
rename to connect/src/main/java/org/apache/felix/connect/Revision.java
index b884ad1..cf4fd36 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/Revision.java
+++ b/connect/src/main/java/org/apache/felix/connect/Revision.java
@@ -16,13 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.net.URL;
 import java.util.Enumeration;
 
-import org.osgi.framework.wiring.BundleRevision;
-
 abstract class Revision
 {
     public abstract long getLastModified();
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/URLRevision.java b/connect/src/main/java/org/apache/felix/connect/URLRevision.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/URLRevision.java
rename to connect/src/main/java/org/apache/felix/connect/URLRevision.java
index dcd0031..efbe650 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/URLRevision.java
+++ b/connect/src/main/java/org/apache/felix/connect/URLRevision.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework;
+package org.apache.felix.connect;
 
 import java.net.MalformedURLException;
 import java.net.URL;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/ServiceRegistrationImpl.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/ServiceRegistrationImpl.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/ServiceRegistrationImpl.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/ServiceRegistrationImpl.java
index e222873..b29e587 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/ServiceRegistrationImpl.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/ServiceRegistrationImpl.java
@@ -16,18 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework;
+package org.apache.felix.connect.felix.framework;
 
 import java.util.*;
 
 import org.osgi.framework.*;
 
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.Attribute;
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.Capability;
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.Directive;
-import de.kalpatec.pojosr.framework.felix.framework.util.MapToDictionary;
-import de.kalpatec.pojosr.framework.felix.framework.util.StringMap;
-import de.kalpatec.pojosr.framework.felix.framework.util.Util;
+import org.apache.felix.connect.felix.framework.util.MapToDictionary;
+import org.apache.felix.connect.felix.framework.util.StringMap;
+import org.apache.felix.connect.felix.framework.util.Util;
 import org.osgi.framework.wiring.BundleCapability;
 import org.osgi.framework.wiring.BundleRevision;
 
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/ServiceRegistry.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/ServiceRegistry.java
similarity index 98%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/ServiceRegistry.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/ServiceRegistry.java
index f61a3c7..d46f613 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/ServiceRegistry.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/ServiceRegistry.java
@@ -16,17 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework;
+package org.apache.felix.connect.felix.framework;
 
 import java.util.*;
 
 import org.osgi.framework.*;
-import org.osgi.framework.hooks.service.*;
-import org.osgi.framework.launch.Framework;
 
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.Capability;
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.CapabilitySet;
-import de.kalpatec.pojosr.framework.felix.framework.capabilityset.SimpleFilter;
+import org.apache.felix.connect.felix.framework.capabilityset.CapabilitySet;
+import org.apache.felix.connect.felix.framework.capabilityset.SimpleFilter;
 import org.osgi.framework.wiring.BundleCapability;
 
 public class ServiceRegistry
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Attribute.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Attribute.java
similarity index 94%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Attribute.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Attribute.java
index 26539ab..ea8b01f 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Attribute.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Attribute.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.capabilityset;
+package org.apache.felix.connect.felix.framework.capabilityset;
 
 public class Attribute
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Capability.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Capability.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Capability.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Capability.java
index 9609e94..7c4e0f5 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Capability.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Capability.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.capabilityset;
+package org.apache.felix.connect.felix.framework.capabilityset;
 
 import java.util.List;
 
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/CapabilitySet.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/CapabilitySet.java
similarity index 98%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/CapabilitySet.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/CapabilitySet.java
index 1c4f7ee..895809b 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/CapabilitySet.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/CapabilitySet.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.capabilityset;
+package org.apache.felix.connect.felix.framework.capabilityset;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Constructor;
@@ -31,7 +31,7 @@
 import java.util.Set;
 import java.util.TreeMap;
 
-import de.kalpatec.pojosr.framework.felix.framework.util.StringComparator;
+import org.apache.felix.connect.felix.framework.util.StringComparator;
 import org.osgi.framework.wiring.BundleCapability;
 
 public class CapabilitySet
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Directive.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Directive.java
similarity index 94%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Directive.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Directive.java
index fa310e3..9c6963d 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Directive.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Directive.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.capabilityset;
+package org.apache.felix.connect.felix.framework.capabilityset;
 
 public class Directive
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Requirement.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Requirement.java
similarity index 93%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Requirement.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Requirement.java
index bb280c0..0995898 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/Requirement.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/Requirement.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.capabilityset;
+package org.apache.felix.connect.felix.framework.capabilityset;
 
 import java.util.List;
 
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/SimpleFilter.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/SimpleFilter.java
similarity index 99%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/SimpleFilter.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/SimpleFilter.java
index 8ab4668..22f57cf 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/capabilityset/SimpleFilter.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/capabilityset/SimpleFilter.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.capabilityset;
+package org.apache.felix.connect.felix.framework.capabilityset;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/EventDispatcher.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/EventDispatcher.java
similarity index 98%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/EventDispatcher.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/EventDispatcher.java
index 50912f2..ffd59b5 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/EventDispatcher.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/EventDispatcher.java
@@ -16,18 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Dictionary;
 import java.util.EventListener;
 import java.util.EventObject;
-import java.util.Iterator;
 import java.util.List;
-import java.util.NoSuchElementException;
 
-import org.osgi.framework.AllServiceListener;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
@@ -37,13 +34,12 @@
 import org.osgi.framework.FrameworkListener;
 import org.osgi.framework.ServiceEvent;
 import org.osgi.framework.ServiceListener;
-import org.osgi.framework.ServicePermission;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.SynchronousBundleListener;
 import org.osgi.framework.hooks.service.ListenerHook;
 import org.osgi.framework.launch.Framework;
 
-import de.kalpatec.pojosr.framework.felix.framework.ServiceRegistry;
+import org.apache.felix.connect.felix.framework.ServiceRegistry;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -69,7 +65,7 @@
     private static final List<Request> m_requestPool = new ArrayList<Request>();
 
     private static final boolean m_sync = "true".equalsIgnoreCase(System
-            .getProperty("de.kalpatec.pojosr.framework.events.sync"));
+            .getProperty("org.apache.felix.connect.events.sync"));
     
     public EventDispatcher(ServiceRegistry registry)
     {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ListenerHookInfoImpl.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ListenerHookInfoImpl.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ListenerHookInfoImpl.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/ListenerHookInfoImpl.java
index 2ef572b..86dbffd 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ListenerHookInfoImpl.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ListenerHookInfoImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceListener;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ListenerInfo.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ListenerInfo.java
similarity index 98%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ListenerInfo.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/ListenerInfo.java
index dcdc5f4..3e5bb59 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ListenerInfo.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ListenerInfo.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.util.EventListener;
 import org.osgi.framework.Bundle;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/MapToDictionary.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/MapToDictionary.java
similarity index 96%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/MapToDictionary.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/MapToDictionary.java
index 084a1f4..a882def 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/MapToDictionary.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/MapToDictionary.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.util.*;
 
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ShrinkableCollection.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ShrinkableCollection.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ShrinkableCollection.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/ShrinkableCollection.java
index 1420d31..cc62168 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ShrinkableCollection.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ShrinkableCollection.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.util.Collection;
 import java.util.Iterator;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ShrinkableMap.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ShrinkableMap.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ShrinkableMap.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/ShrinkableMap.java
index b058609..7235bde 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/ShrinkableMap.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/ShrinkableMap.java
@@ -16,11 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.util.Collection;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
 
 public class ShrinkableMap<K, V> implements Map<K, V>
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/StringComparator.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/StringComparator.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/StringComparator.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/StringComparator.java
index 6d359f0..25030b7 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/StringComparator.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/StringComparator.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.util.Comparator;
 
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/StringMap.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/StringMap.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/StringMap.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/StringMap.java
index 8280961..09709ea 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/StringMap.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/StringMap.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.util.*;
 
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/Util.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/Util.java
similarity index 99%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/Util.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/Util.java
index bdbdbfb..1bebffa 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/Util.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/Util.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/VersionRange.java b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/VersionRange.java
similarity index 98%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/VersionRange.java
rename to connect/src/main/java/org/apache/felix/connect/felix/framework/util/VersionRange.java
index 345e65c..a13b0a7 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/felix/framework/util/VersionRange.java
+++ b/connect/src/main/java/org/apache/felix/connect/felix/framework/util/VersionRange.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.felix.framework.util;
+package org.apache.felix.connect.felix.framework.util;
 
 import org.osgi.framework.Version;
 
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/BundleDescriptor.java b/connect/src/main/java/org/apache/felix/connect/launch/BundleDescriptor.java
similarity index 96%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/BundleDescriptor.java
rename to connect/src/main/java/org/apache/felix/connect/launch/BundleDescriptor.java
index 74de0ac..68b849e 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/BundleDescriptor.java
+++ b/connect/src/main/java/org/apache/felix/connect/launch/BundleDescriptor.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.launch;
+package org.apache.felix.connect.launch;
 
 import java.net.URL;
 import java.util.Map;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/ClasspathScanner.java b/connect/src/main/java/org/apache/felix/connect/launch/ClasspathScanner.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/ClasspathScanner.java
rename to connect/src/main/java/org/apache/felix/connect/launch/ClasspathScanner.java
index 03ecc7c..e1f794e 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/ClasspathScanner.java
+++ b/connect/src/main/java/org/apache/felix/connect/launch/ClasspathScanner.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.launch;
+package org.apache.felix.connect.launch;
 
 import java.io.InputStream;
 import java.net.URL;
@@ -25,14 +25,11 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
 
-import org.osgi.framework.Constants;
 import org.osgi.framework.Filter;
 import org.osgi.framework.FrameworkUtil;
 
-import de.kalpatec.pojosr.framework.felix.framework.util.MapToDictionary;
+import org.apache.felix.connect.felix.framework.util.MapToDictionary;
 
 public class ClasspathScanner
 {
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/PojoServiceRegistry.java b/connect/src/main/java/org/apache/felix/connect/launch/PojoServiceRegistry.java
similarity index 97%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/PojoServiceRegistry.java
rename to connect/src/main/java/org/apache/felix/connect/launch/PojoServiceRegistry.java
index 58447d0..2da7807 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/PojoServiceRegistry.java
+++ b/connect/src/main/java/org/apache/felix/connect/launch/PojoServiceRegistry.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.launch;
+package org.apache.felix.connect.launch;
 
 import java.util.Dictionary;
 import java.util.List;
diff --git a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/PojoServiceRegistryFactory.java b/connect/src/main/java/org/apache/felix/connect/launch/PojoServiceRegistryFactory.java
similarity index 95%
rename from pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/PojoServiceRegistryFactory.java
rename to connect/src/main/java/org/apache/felix/connect/launch/PojoServiceRegistryFactory.java
index 9c611ae..1084486 100644
--- a/pojosr/src/main/java/de/kalpatec/pojosr/framework/launch/PojoServiceRegistryFactory.java
+++ b/connect/src/main/java/org/apache/felix/connect/launch/PojoServiceRegistryFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package de.kalpatec.pojosr.framework.launch;
+package org.apache.felix.connect.launch;
 
 import java.util.Map;
 
diff --git a/connect/src/main/resources/META-INF/services/org.apache.felix.connect.launch.PojoServiceRegistryFactory b/connect/src/main/resources/META-INF/services/org.apache.felix.connect.launch.PojoServiceRegistryFactory
new file mode 100644
index 0000000..84bd8a0
--- /dev/null
+++ b/connect/src/main/resources/META-INF/services/org.apache.felix.connect.launch.PojoServiceRegistryFactory
@@ -0,0 +1 @@
+org.apache.felix.connect.PojoServiceRegistryFactoryImpl
\ No newline at end of file
diff --git a/connect/src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory b/connect/src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory
new file mode 100644
index 0000000..84bd8a0
--- /dev/null
+++ b/connect/src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory
@@ -0,0 +1 @@
+org.apache.felix.connect.PojoServiceRegistryFactoryImpl
\ No newline at end of file
diff --git a/pojosr/pom.xml b/pojosr/pom.xml
deleted file mode 100644
index 0b7ff8f..0000000
--- a/pojosr/pom.xml
+++ /dev/null
@@ -1,144 +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.
--->
-<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">
-  <parent>
-    <groupId>org.sonatype.oss</groupId>
-    <artifactId>oss-parent</artifactId>
-    <version>7</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <packaging>bundle</packaging>
-  <name>Pojo Service Registry</name>
-  <groupId>com.googlecode.pojosr</groupId>
-  <artifactId>de.kalpatec.pojosr.framework</artifactId>
-  <version>0.3.0-SNAPSHOT</version>
-  <description>A service registry that enables OSGi style service registry programs without using an OSGi framework.</description>
-  <url>http://pojosr.googlecode.com/</url>
-  <licenses>
-    <license>
-      <name>The Apache Software License, Version 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  <scm>
-    <url>http://pojosr.googlecode.com/svn/trunk/</url>
-    <connection>scm:svn:http://pojosr.googlecode.com/svn/trunk/framework/</connection>
-    <developerConnection>scm:svn:https://pojosr.googlecode.com/svn/trunk/framework/</developerConnection>
-  </scm>
-  <developers>
-    <developer>
-      <id>karlpauls</id>
-      <name>Karl Pauls</name>
-      <email>karlpauls@gmail.com</email>
-    </developer>
-  </developers>
-  <dependencies>
-      <dependency>
-          <groupId>org.osgi</groupId>
-          <artifactId>org.osgi.core</artifactId>
-          <version>4.3.1</version>
-      </dependency>
-      <dependency>
-          <groupId>org.osgi</groupId>
-          <artifactId>org.osgi.compendium</artifactId>
-          <version>4.2.0</version>
-      </dependency> 
-  </dependencies>
-  <repositories />
-  <pluginRepositories />
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-release-plugin</artifactId>
-        <configuration>
-          <tagBase>https://pojosr.googlecode.com/svn/tags</tagBase>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration>
-          <target>1.5</target>
-          <source>1.5</source>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-        <version>2.1.2</version>
-        <executions>
-          <execution>
-            <id>attach-sources</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>jar-no-fork</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.8</version>
-        <executions>
-          <execution>
-            <id>attach-javadoc</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <version>2.3.4</version>
-        <extensions>true</extensions>
-        <configuration>
-          <instructions>
-            <Bundle-SymbolicName>de.kalpatec.pojosr.framework</Bundle-SymbolicName>
-            <Bundle-Name>Pojo Service Registry</Bundle-Name>
-            <Bundle-Vendor>Apache Software Foundation</Bundle-Vendor>
-            <Private-Package>org.osgi.framework.*, org.osgi.service.url, org.osgi.service.packageadmin, org.osgi.service.startlevel, org.osgi.util.tracker, de.kalpatec.pojosr.framework.*</Private-Package>
-            <Import-Package>!*</Import-Package>
-            <Include-Resource>META-INF/LICENSE=LICENSE,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES,{src/main/resources/}</Include-Resource> 
-            <Main-Class>de.kalpatec.pojosr.framework.PojoSR</Main-Class>
-          </instructions>
-        </configuration>
-      </plugin>
-    </plugins>
-     <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-      </resource>
-      <resource>
-      <directory>.</directory>
-      <targetPath>META-INF</targetPath>
-      <includes>
-        <include>LICENSE*</include>
-        <include>NOTICE*</include>
-        <include>DEPENDENCIES*</include>
-      </includes>
-    </resource>
-    </resources> 
-  </build>
-</project>
diff --git a/pojosr/src/main/resources/META-INF/services/de.kalpatec.pojosr.framework.launch.PojoServiceRegistryFactory b/pojosr/src/main/resources/META-INF/services/de.kalpatec.pojosr.framework.launch.PojoServiceRegistryFactory
deleted file mode 100644
index 180be46..0000000
--- a/pojosr/src/main/resources/META-INF/services/de.kalpatec.pojosr.framework.launch.PojoServiceRegistryFactory
+++ /dev/null
@@ -1 +0,0 @@
-de.kalpatec.pojosr.framework.PojoServiceRegistryFactoryImpl
\ No newline at end of file
diff --git a/pojosr/src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory b/pojosr/src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory
deleted file mode 100644
index 180be46..0000000
--- a/pojosr/src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory
+++ /dev/null
@@ -1 +0,0 @@
-de.kalpatec.pojosr.framework.PojoServiceRegistryFactoryImpl
\ No newline at end of file
