diff --git a/karaf/jaas/jaas-boot/pom.xml b/karaf/jaas/jaas-boot/pom.xml
index 4cf046e..022e6e3 100644
--- a/karaf/jaas/jaas-boot/pom.xml
+++ b/karaf/jaas/jaas-boot/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.servicemix.kernel.jaas</groupId>
+        <groupId>org.apache.felix.karaf.jaas</groupId>
         <artifactId>jaas</artifactId>
         <version>1.2.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.servicemix.kernel.jaas</groupId>
-    <artifactId>org.apache.servicemix.kernel.jaas.boot</artifactId>
+    <groupId>org.apache.felix.karaf.jaas</groupId>
+    <artifactId>org.apache.felix.karaf.jaas.boot</artifactId>
     <packaging>bundle</packaging>
     <version>1.2.0-SNAPSHOT</version>
-    <name>Apache ServiceMix Kernel :: JAAS Boot</name>
+    <name>Apache Felix Karaf :: JAAS Boot</name>
 
     <description>
         Provides the JAAS Boot classes
@@ -53,7 +53,7 @@
                 <configuration>
                     <instructions>
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
-                        <Export-Package>org.apache.servicemix*;version=${project.version};-split-package:=merge-first
+                        <Export-Package>${artifactId}*;version=${project.version};-split-package:=merge-first
                         </Export-Package>
                         <Import-Package>*</Import-Package>
                         <Private-Package>!*</Private-Package>
@@ -62,4 +62,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/karaf/jaas/jaas-boot/src/main/java/org/apache/servicemix/kernel/jaas/boot/ProxyLoginModule.java b/karaf/jaas/jaas-boot/src/main/java/org/apache/felix/karaf/jaas/boot/ProxyLoginModule.java
similarity index 94%
rename from karaf/jaas/jaas-boot/src/main/java/org/apache/servicemix/kernel/jaas/boot/ProxyLoginModule.java
rename to karaf/jaas/jaas-boot/src/main/java/org/apache/felix/karaf/jaas/boot/ProxyLoginModule.java
index 3b3aed0..50b2dff 100644
--- a/karaf/jaas/jaas-boot/src/main/java/org/apache/servicemix/kernel/jaas/boot/ProxyLoginModule.java
+++ b/karaf/jaas/jaas-boot/src/main/java/org/apache/felix/karaf/jaas/boot/ProxyLoginModule.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.boot;
+package org.apache.felix.karaf.jaas.boot;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -37,8 +37,8 @@
  */
 public class ProxyLoginModule implements LoginModule {
 
-    public static final String PROPERTY_MODULE = "org.apache.servicemix.kernel.jaas.module";
-    public static final String PROPERTY_BUNDLE = "org.apache.servicemix.kernel.jaas.bundle";
+    public static final String PROPERTY_MODULE = "org.apache.felix.karaf.jaas.module";
+    public static final String PROPERTY_BUNDLE = "org.apache.felix.karaf.jaas.bundle";
 
     private static BundleContext bundleContext = null;
     
diff --git a/karaf/jaas/jaas-config/pom.xml b/karaf/jaas/jaas-config/pom.xml
index bc47433..3c9c0b3 100644
--- a/karaf/jaas/jaas-config/pom.xml
+++ b/karaf/jaas/jaas-config/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.servicemix.kernel.jaas</groupId>
+        <groupId>org.apache.felix.karaf.jaas</groupId>
         <artifactId>jaas</artifactId>
         <version>1.2.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.servicemix.kernel.jaas</groupId>
-    <artifactId>org.apache.servicemix.kernel.jaas.config</artifactId>
+    <groupId>org.apache.felix.karaf.jaas</groupId>
+    <artifactId>org.apache.felix.karaf.jaas.config</artifactId>
     <packaging>bundle</packaging>
     <version>1.2.0-SNAPSHOT</version>
-    <name>Apache ServiceMix Kernel :: JAAS Config</name>
+    <name>Apache Felix Karaf :: JAAS Config</name>
 
     <description>
         Provides the JAAS Config
@@ -39,8 +39,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.servicemix.kernel.jaas</groupId>
-            <artifactId>org.apache.servicemix.kernel.jaas.boot</artifactId>
+            <groupId>org.apache.felix.karaf.jaas</groupId>
+            <artifactId>org.apache.felix.karaf.jaas.boot</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -92,4 +92,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/JaasRealm.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/JaasRealm.java
similarity index 94%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/JaasRealm.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/JaasRealm.java
index b5237d1..d1a40f5 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/JaasRealm.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/JaasRealm.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config;
+package org.apache.felix.karaf.jaas.config;
 
 import javax.security.auth.login.AppConfigurationEntry;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeyIsLocked.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeyIsLocked.java
similarity index 95%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeyIsLocked.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeyIsLocked.java
index 5ff4736..bfaaba2 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeyIsLocked.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeyIsLocked.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config;
+package org.apache.felix.karaf.jaas.config;
 
 import java.security.GeneralSecurityException;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreInstance.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreInstance.java
similarity index 97%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreInstance.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreInstance.java
index 022d95b..4f0890b 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreInstance.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreInstance.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config;
+package org.apache.felix.karaf.jaas.config;
 
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreIsLocked.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreIsLocked.java
similarity index 95%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreIsLocked.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreIsLocked.java
index 34c9a2b..ae5efe6 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreIsLocked.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreIsLocked.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config;
+package org.apache.felix.karaf.jaas.config;
 
 import java.security.GeneralSecurityException;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreManager.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreManager.java
similarity index 98%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreManager.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreManager.java
index 74fa466..afa2adf 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/KeystoreManager.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreManager.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config;
+package org.apache.felix.karaf.jaas.config;
 
 import java.security.GeneralSecurityException;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/Config.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java
similarity index 95%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/Config.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java
index 7ad0b04..5a6b809 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/Config.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import javax.security.auth.login.AppConfigurationEntry;
 
-import org.apache.servicemix.kernel.jaas.boot.ProxyLoginModule;
-import org.apache.servicemix.kernel.jaas.config.JaasRealm;
+import org.apache.felix.karaf.jaas.boot.ProxyLoginModule;
+import org.apache.felix.karaf.jaas.config.JaasRealm;
 import org.osgi.framework.BundleContext;
 import org.springframework.osgi.context.BundleContextAware;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ConfigParser.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ConfigParser.java
similarity index 96%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ConfigParser.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ConfigParser.java
index 5f8e16a..ec5d1e8 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ConfigParser.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ConfigParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -25,8 +25,8 @@
 
 import org.w3c.dom.Element;
 
-import org.apache.servicemix.kernel.jaas.boot.ProxyLoginModule;
-import org.apache.servicemix.kernel.jaas.config.JaasRealm;
+import org.apache.felix.karaf.jaas.boot.ProxyLoginModule;
+import org.apache.felix.karaf.jaas.config.JaasRealm;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.config.BeanDefinitionHolder;
 import org.springframework.beans.factory.parsing.BeanComponentDefinition;
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/Module.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java
similarity index 96%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/Module.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java
index 488f19a..baaa352 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/Module.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import java.util.Map;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/NamespaceHandler.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
similarity index 95%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/NamespaceHandler.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
index d1b8192..6129a37 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/NamespaceHandler.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/OsgiConfiguration.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java
similarity index 94%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/OsgiConfiguration.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java
index a2e6119..a5489d8 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/OsgiConfiguration.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import java.util.List;
 import java.util.Map;
@@ -23,7 +23,7 @@
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.Configuration;
 
-import org.apache.servicemix.kernel.jaas.config.JaasRealm;
+import org.apache.felix.karaf.jaas.config.JaasRealm;
 
 public class OsgiConfiguration extends Configuration {
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/OsgiKeystoreManager.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiKeystoreManager.java
similarity index 93%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/OsgiKeystoreManager.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiKeystoreManager.java
index 41135c2..bb75dce 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/OsgiKeystoreManager.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiKeystoreManager.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import java.security.GeneralSecurityException;
 import java.security.SecureRandom;
@@ -26,9 +26,9 @@
 import javax.net.ssl.SSLServerSocketFactory;
 import javax.net.ssl.SSLSocketFactory;
 
-import org.apache.servicemix.kernel.jaas.config.KeystoreInstance;
-import org.apache.servicemix.kernel.jaas.config.KeystoreIsLocked;
-import org.apache.servicemix.kernel.jaas.config.KeystoreManager;
+import org.apache.felix.karaf.jaas.config.KeystoreInstance;
+import org.apache.felix.karaf.jaas.config.KeystoreIsLocked;
+import org.apache.felix.karaf.jaas.config.KeystoreManager;
 
 /**
  * Implementation of KeystoreManager
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ProxyLoginModuleInitializer.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
similarity index 91%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ProxyLoginModuleInitializer.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
index f2b8c32..da4380d 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ProxyLoginModuleInitializer.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
-import org.apache.servicemix.kernel.jaas.boot.ProxyLoginModule;
+import org.apache.felix.karaf.jaas.boot.ProxyLoginModule;
 import org.osgi.framework.BundleContext;
 import org.springframework.osgi.context.BundleContextAware;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ResourceKeystoreInstance.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
similarity index 97%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ResourceKeystoreInstance.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
index 7974ed6..7c79fb9 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ResourceKeystoreInstance.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import java.io.BufferedInputStream;
 import java.io.File;
@@ -41,8 +41,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.servicemix.kernel.jaas.config.KeystoreInstance;
-import org.apache.servicemix.kernel.jaas.config.KeystoreIsLocked;
+import org.apache.felix.karaf.jaas.config.KeystoreInstance;
+import org.apache.felix.karaf.jaas.config.KeystoreIsLocked;
 import org.springframework.core.io.Resource;
 
 /**
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ResourceKeystoreInstanceParser.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstanceParser.java
similarity index 96%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ResourceKeystoreInstanceParser.java
rename to karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstanceParser.java
index 01f3531..c818a46 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ResourceKeystoreInstanceParser.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstanceParser.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config.impl;
+package org.apache.felix.karaf.jaas.config.impl;
 
 import org.w3c.dom.Element;
 
-import org.apache.servicemix.kernel.jaas.config.KeystoreInstance;
+import org.apache.felix.karaf.jaas.config.KeystoreInstance;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.config.BeanDefinitionHolder;
 import org.springframework.beans.factory.parsing.BeanComponentDefinition;
diff --git a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.handlers b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.handlers
index fe59e34..c8b49a7 100644
--- a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.handlers
+++ b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.handlers
@@ -16,5 +16,5 @@
 #    limitations under the License.
 #
 ################################################################################
-http\://servicemix.apache.org/jaas = org.apache.servicemix.kernel.jaas.config.impl.NamespaceHandler
- 
\ No newline at end of file
+http\://servicemix.apache.org/jaas = org.apache.felix.karaf.jaas.config.impl.NamespaceHandler
+ 
diff --git a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.schemas b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.schemas
index 3001be1..352002b 100644
--- a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.schemas
+++ b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring.schemas
@@ -16,4 +16,4 @@
 #    limitations under the License.
 #
 ################################################################################
-http\://servicemix.apache.org/schema/servicemix-jaas.xsd = org/apache/servicemix/kernel/jaas/config/servicemix-jaas.xsd
+http\://servicemix.apache.org/schema/servicemix-jaas.xsd = org/apache/felix/karaf/jaas/config/servicemix-jaas.xsd
diff --git a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml
index eca5fbd..d878a3d 100644
--- a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml
+++ b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml
@@ -30,30 +30,30 @@
   http://www.springframework.org/schema/osgi/spring-osgi.xsd">
 
     <bean id="config"
-          class="org.apache.servicemix.kernel.jaas.config.impl.OsgiConfiguration"
+          class="org.apache.felix.karaf.jaas.config.impl.OsgiConfiguration"
           init-method="init"
           destroy-method="close"/>
 
     <osgi:list id="realms"
-               interface="org.apache.servicemix.kernel.jaas.config.JaasRealm"
+               interface="org.apache.felix.karaf.jaas.config.JaasRealm"
                cardinality="0..N">
         <osgi:listener ref="config" bind-method="register" unbind-method="unregister" />
     </osgi:list>
 
     <bean id="proxyLoginModuleInitializer"
-          class="org.apache.servicemix.kernel.jaas.config.impl.ProxyLoginModuleInitializer"
+          class="org.apache.felix.karaf.jaas.config.impl.ProxyLoginModuleInitializer"
           init-method="init"/>
 
     <!-- Register the Straight-Through flow -->
-    <bean id="keystoreManager" class="org.apache.servicemix.kernel.jaas.config.impl.OsgiKeystoreManager" />
+    <bean id="keystoreManager" class="org.apache.felix.karaf.jaas.config.impl.OsgiKeystoreManager" />
     <osgi:service ref="keystoreManager">
         <osgi:interfaces>
-            <value>org.apache.servicemix.kernel.jaas.config.KeystoreManager</value>
+            <value>org.apache.felix.karaf.jaas.config.KeystoreManager</value>
         </osgi:interfaces>
     </osgi:service>
 
     <osgi:list id="keystores"
-               interface="org.apache.servicemix.kernel.jaas.config.KeystoreInstance"
+               interface="org.apache.felix.karaf.jaas.config.KeystoreInstance"
                cardinality="0..N">
         <osgi:listener ref="keystoreManager" bind-method="register" unbind-method="unregister" />
     </osgi:list>
diff --git a/karaf/jaas/jaas-config/src/main/resources/org/apache/servicemix/kernel/jaas/config/servicemix-jaas.xsd b/karaf/jaas/jaas-config/src/main/resources/org/apache/felix/karaf/jaas/config/servicemix-jaas.xsd
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/resources/org/apache/servicemix/kernel/jaas/config/servicemix-jaas.xsd
rename to karaf/jaas/jaas-config/src/main/resources/org/apache/felix/karaf/jaas/config/servicemix-jaas.xsd
diff --git a/karaf/jaas/jaas-config/src/test/java/org/apache/servicemix/kernel/jaas/config/NamespaceHandlerTest.java b/karaf/jaas/jaas-config/src/test/java/org/apache/felix/karaf/jaas/config/NamespaceHandlerTest.java
similarity index 91%
rename from karaf/jaas/jaas-config/src/test/java/org/apache/servicemix/kernel/jaas/config/NamespaceHandlerTest.java
rename to karaf/jaas/jaas-config/src/test/java/org/apache/felix/karaf/jaas/config/NamespaceHandlerTest.java
index fb282e9..c390fb9 100644
--- a/karaf/jaas/jaas-config/src/test/java/org/apache/servicemix/kernel/jaas/config/NamespaceHandlerTest.java
+++ b/karaf/jaas/jaas-config/src/test/java/org/apache/felix/karaf/jaas/config/NamespaceHandlerTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.config;
+package org.apache.felix.karaf.jaas.config;
 
 import java.util.Dictionary;
 import java.util.Hashtable;
@@ -23,8 +23,8 @@
 import javax.security.auth.login.AppConfigurationEntry;
 
 import junit.framework.TestCase;
-import org.apache.servicemix.kernel.jaas.boot.ProxyLoginModule;
-import org.apache.servicemix.kernel.jaas.config.impl.Config;
+import org.apache.felix.karaf.jaas.boot.ProxyLoginModule;
+import org.apache.felix.karaf.jaas.config.impl.Config;
 import org.easymock.EasyMock;
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.aryEq;
@@ -82,7 +82,7 @@
         assertNotNull(cfg.getModules());
         assertEquals(1, cfg.getModules().length);
         assertNotNull(cfg.getModules()[0]);
-        assertEquals("org.apache.servicemix.kernel.jaas.config.SimpleLoginModule", cfg.getModules()[0].getClassName());
+        assertEquals("org.apache.felix.karaf.jaas.config.SimpleLoginModule", cfg.getModules()[0].getClassName());
         assertEquals("required", cfg.getModules()[0].getFlags());
         assertNotNull(cfg.getModules()[0].getOptions());
         assertEquals(1, cfg.getModules()[0].getOptions().size());
@@ -97,7 +97,7 @@
         assertNotNull(options);
         assertEquals(3, options.size());
         assertEquals("value", options.get("key"));
-        assertEquals("org.apache.servicemix.kernel.jaas.config.SimpleLoginModule", options.get(ProxyLoginModule.PROPERTY_MODULE));
+        assertEquals("org.apache.felix.karaf.jaas.config.SimpleLoginModule", options.get(ProxyLoginModule.PROPERTY_MODULE));
         assertEquals("32", options.get(ProxyLoginModule.PROPERTY_BUNDLE));
 
         // Test keystore
diff --git a/karaf/jaas/jaas-config/src/test/resources/config.xml b/karaf/jaas/jaas-config/src/test/resources/config.xml
index 868b7c7..9fe3042 100644
--- a/karaf/jaas/jaas-config/src/test/resources/config.xml
+++ b/karaf/jaas/jaas-config/src/test/resources/config.xml
@@ -33,7 +33,7 @@
   http://servicemix.apache.org/schema/servicemix-jaas.xsd">
 
     <jaas:config id="realm">
-        <jaas:module className="org.apache.servicemix.kernel.jaas.config.SimpleLoginModule" flags="required">
+        <jaas:module className="org.apache.felix.karaf.jaas.config.SimpleLoginModule" flags="required">
             key=value
         </jaas:module>
     </jaas:config>
diff --git a/karaf/jaas/jaas-config/src/test/resources/privatestore.jks b/karaf/jaas/jaas-config/src/test/resources/privatestore.jks
index 26fc0bc..80106c1 100644
--- a/karaf/jaas/jaas-config/src/test/resources/privatestore.jks
+++ b/karaf/jaas/jaas-config/src/test/resources/privatestore.jks
Binary files differ
diff --git a/karaf/jaas/jaas-modules/pom.xml b/karaf/jaas/jaas-modules/pom.xml
index b3d0300..07af5aa 100644
--- a/karaf/jaas/jaas-modules/pom.xml
+++ b/karaf/jaas/jaas-modules/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.servicemix.kernel.jaas</groupId>
+        <groupId>org.apache.felix.karaf.jaas</groupId>
         <artifactId>jaas</artifactId>
         <version>1.2.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.servicemix.kernel.jaas</groupId>
-    <artifactId>org.apache.servicemix.kernel.jaas.modules</artifactId>
+    <groupId>org.apache.felix.karaf.jaas</groupId>
+    <artifactId>org.apache.felix.karaf.jaas.modules</artifactId>
     <packaging>bundle</packaging>
     <version>1.2.0-SNAPSHOT</version>
-    <name>Apache ServiceMix Kernel :: JAAS Modules</name>
+    <name>Apache Felix Karaf :: JAAS Modules</name>
 
     <description>
         Provides the JAAS Config
@@ -39,8 +39,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.servicemix.kernel.jaas</groupId>
-            <artifactId>org.apache.servicemix.kernel.jaas.config</artifactId>
+            <groupId>org.apache.felix.karaf.jaas</groupId>
+            <artifactId>org.apache.felix.karaf.jaas.config</artifactId>
         </dependency>
 
         <dependency>
@@ -75,10 +75,10 @@
                     <instructions>
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>
-                            org.apache.servicemix.kernel.jaas.modules*;version=${project.version};-split-package:=merge-first
+                            org.apache.felix.karaf.jaas.modules*;version=${project.version};-split-package:=merge-first
                         </Export-Package>
                         <Import-Package>
-                            org.apache.servicemix.kernel.jaas.config,
+                            org.apache.felix.karaf.jaas.config,
                             org.springframework.beans.factory.config,
                             *
                         </Import-Package>
@@ -89,4 +89,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/RolePrincipal.java b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/RolePrincipal.java
similarity index 96%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/RolePrincipal.java
rename to karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/RolePrincipal.java
index 03da146..1e70880 100644
--- a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/RolePrincipal.java
+++ b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/RolePrincipal.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.modules;
+package org.apache.felix.karaf.jaas.modules;
 
 import java.security.Principal;
 
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/UserPrincipal.java b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/UserPrincipal.java
similarity index 96%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/UserPrincipal.java
rename to karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/UserPrincipal.java
index 4978076..c791db9 100644
--- a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/UserPrincipal.java
+++ b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/UserPrincipal.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.modules;
+package org.apache.felix.karaf.jaas.modules;
 
 import java.security.Principal;
 
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/osgi/ConfigAdminHolder.java b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/ConfigAdminHolder.java
similarity index 95%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/osgi/ConfigAdminHolder.java
rename to karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/ConfigAdminHolder.java
index ec93095..cef50a7 100644
--- a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/osgi/ConfigAdminHolder.java
+++ b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/ConfigAdminHolder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.modules.osgi;
+package org.apache.felix.karaf.jaas.modules.osgi;
 
 import org.osgi.service.cm.ConfigurationAdmin;
 
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/osgi/OsgiConfigLoginModule.java b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
similarity index 95%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/osgi/OsgiConfigLoginModule.java
rename to karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
index 2b48eb4..5e29485 100644
--- a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/osgi/OsgiConfigLoginModule.java
+++ b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.modules.osgi;
+package org.apache.felix.karaf.jaas.modules.osgi;
 
 import java.io.IOException;
 import java.security.Principal;
@@ -33,8 +33,8 @@
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
 
-import org.apache.servicemix.kernel.jaas.modules.RolePrincipal;
-import org.apache.servicemix.kernel.jaas.modules.UserPrincipal;
+import org.apache.felix.karaf.jaas.modules.RolePrincipal;
+import org.apache.felix.karaf.jaas.modules.UserPrincipal;
 import org.osgi.service.cm.Configuration;
 
 public class OsgiConfigLoginModule implements LoginModule {
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/properties/PropertiesLoginModule.java b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/properties/PropertiesLoginModule.java
similarity index 95%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/properties/PropertiesLoginModule.java
rename to karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/properties/PropertiesLoginModule.java
index 5971745..2077903 100644
--- a/karaf/jaas/jaas-modules/src/main/java/org/apache/servicemix/kernel/jaas/modules/properties/PropertiesLoginModule.java
+++ b/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/properties/PropertiesLoginModule.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.jaas.modules.properties;
+package org.apache.felix.karaf.jaas.modules.properties;
 
 import java.io.File;
 import java.io.IOException;
@@ -36,8 +36,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.servicemix.kernel.jaas.modules.RolePrincipal;
-import org.apache.servicemix.kernel.jaas.modules.UserPrincipal;
+import org.apache.felix.karaf.jaas.modules.RolePrincipal;
+import org.apache.felix.karaf.jaas.modules.UserPrincipal;
 
 /**
  * JAAS Login module for user / password, based on two properties files.
diff --git a/karaf/jaas/jaas-modules/src/main/resources/META-INF/spring/servicemix-jaas-module.xml b/karaf/jaas/jaas-modules/src/main/resources/META-INF/spring/servicemix-jaas-module.xml
index e8acabe..8187e2b 100644
--- a/karaf/jaas/jaas-modules/src/main/resources/META-INF/spring/servicemix-jaas-module.xml
+++ b/karaf/jaas/jaas-modules/src/main/resources/META-INF/spring/servicemix-jaas-module.xml
@@ -35,14 +35,14 @@
       - on this service, which means any bundle could access all the passwords.
       -->
     <!--
-    <bean id="configAdminHolder" class="org.apache.servicemix.kernel.jaas.modules.osgi.ConfigAdminHolder">
+    <bean id="configAdminHolder" class="org.apache.felix.karaf.jaas.modules.osgi.ConfigAdminHolder">
         <property name="service" ref="configAdmin" />
     </bean>
 
     <osgi:reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" />
 
     <jaas:config id="servicemix">
-        <jaas:module className="org.apache.servicemix.kernel.jaas.modules.osgi.OsgiConfigLoginModule" flags="required">
+        <jaas:module className="org.apache.felix.karaf.jaas.modules.osgi.OsgiConfigLoginModule" flags="required">
             pid = org.apache.servicemix.users
         </jaas:module>
     </jaas:config>
@@ -52,9 +52,9 @@
     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
 
     <jaas:config id="servicemix">
-        <jaas:module className="org.apache.servicemix.kernel.jaas.modules.properties.PropertiesLoginModule" flags="required">
+        <jaas:module className="org.apache.felix.karaf.jaas.modules.properties.PropertiesLoginModule" flags="required">
             users = ${servicemix.base}/etc/users.properties
         </jaas:module>
     </jaas:config>
 
-</beans>
\ No newline at end of file
+</beans>
diff --git a/karaf/jaas/pom.xml b/karaf/jaas/pom.xml
index 5be1cd7..2dfd4bb 100644
--- a/karaf/jaas/pom.xml
+++ b/karaf/jaas/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.servicemix.kernel</groupId>
+        <groupId>org.apache.felix.karaf</groupId>
         <artifactId>kernel</artifactId>
         <version>1.2.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.servicemix.kernel.jaas</groupId>
+    <groupId>org.apache.felix.karaf.jaas</groupId>
     <artifactId>jaas</artifactId>
     <packaging>pom</packaging>
     <version>1.2.0-SNAPSHOT</version>
-    <name>Apache ServiceMix Kernel :: JAAS</name>
+    <name>Apache Felix Karaf :: JAAS</name>
 
     <modules>
         <module>jaas-boot</module>
@@ -39,4 +39,4 @@
         <module>jaas-modules</module>
     </modules>
 
-</project>
\ No newline at end of file
+</project>
