diff --git a/karaf/BUILDING.txt b/karaf/BUILDING
similarity index 93%
rename from karaf/BUILDING.txt
rename to karaf/BUILDING
index 7d72726..533852a 100644
--- a/karaf/BUILDING.txt
+++ b/karaf/BUILDING
@@ -28,7 +28,7 @@
    JDK location, and that your PATH includes %JAVA_HOME%\bin (windows) or 
    $JAVA_HOME$/bin (unix).
 
-3) Install Maven 2.0.7, which can be downloaded from 
+3) Install Maven 2.2.1, which can be downloaded from 
    http://maven.apache.org/download.html. Make sure that your PATH includes 
    the MVN_HOME/bin directory. 
 
@@ -40,7 +40,7 @@
 2) Run
          $> mvn
    This will compile Apache Felix Karaf and run all of the tests in the
-   Apache Felix Karafl source distribution. Alternatively, you can run
+   Apache Felix Karaf source distribution. Alternatively, you can run
          $> mvn -Pfastinstall
    This will compile Apache Felix Karaf without running the tests and takes less
    time to build.
diff --git a/karaf/LICENSE.txt b/karaf/LICENSE
similarity index 100%
rename from karaf/LICENSE.txt
rename to karaf/LICENSE
diff --git a/karaf/NOTICE b/karaf/NOTICE
new file mode 100644
index 0000000..0e1c82c
--- /dev/null
+++ b/karaf/NOTICE
@@ -0,0 +1,26 @@
+Apache Felix Karaf
+Copyright 2009 The Apache Software Foundation
+
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+
+III. License Summary
+- Apache License 2.0
diff --git a/karaf/NOTICE.txt b/karaf/NOTICE.txt
deleted file mode 100644
index 4b3bb7e..0000000
--- a/karaf/NOTICE.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-   =========================================================================
-   ==  NOTICE file for use with the Apache License, Version 2.0,          ==
-   ==  in this case for the Apache Felix Karaf distribution.              ==
-   =========================================================================
-
-   This product contains software developed by
-   The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/karaf/README.txt b/karaf/README
similarity index 96%
rename from karaf/README.txt
rename to karaf/README
index d1fd170..d6531b7 100644
--- a/karaf/README.txt
+++ b/karaf/README
@@ -47,10 +47,10 @@
 Getting Started
 ===============
 For an Apache Felix Karaf source distribution, please read
-BUILDING.txt for instructions on building Apache Felix Karaf.
+BUILDING for instructions on building Apache Felix Karaf.
 
 For an Apache Felix Karaf binary distribution, please read
-RELEASE-NOTES.txt for installation instructions and list of supported 
+RELEASE-NOTES for installation instructions and list of supported 
 and unsupported features.
 
 Alternatively, you can also find out how to get started here:
diff --git a/karaf/RELEASE-NOTES.txt b/karaf/RELEASE-NOTES
similarity index 97%
rename from karaf/RELEASE-NOTES.txt
rename to karaf/RELEASE-NOTES
index 41fc751..1c1c785 100644
--- a/karaf/RELEASE-NOTES.txt
+++ b/karaf/RELEASE-NOTES
@@ -75,14 +75,14 @@
      * [SMX4KNL-133] - jaxp-ri bundle miss javax.xml.datatype.DatatypeFactory factoryId under META-INF/services
      * [SMX4KNL-134] - XPathFactoryFinder in jaxp api should use factoryId to load the spi class in osgi enviroment
      * [SMX4KNL-135] - Remote shell missing help resources
-     * [SMX4KNL-138] - No command history with GShell console
-     * [SMX4KNL-140] - GShell commands references not cleaned up when bundle uninstalled
+     * [SMX4KNL-138] - No command history with Shell console
+     * [SMX4KNL-140] - Shell commands references not cleaned up when bundle uninstalled
      * [SMX4KNL-142] - Starting a new instance that was created with admin on windows fails to start
      * [SMX4KNL-145] - java.lang.IllegalStateException: Streams not registered for thread
      * [SMX4KNL-148] - OPS4J maven repo missing form default search list
      * [SMX4KNL-149] - Build failure due to new sshd snapshot
-     * [SMX4KNL-150] - GShell group name variable doesn't resolve
-     * [SMX4KNL-151] - Update displayed version in GShell to be 1.1.0-SNAPSHOT for trunk
+     * [SMX4KNL-150] - Shell group name variable doesn't resolve
+     * [SMX4KNL-151] - Update displayed version in Shell to be 1.1.0-SNAPSHOT for trunk
      * [SMX4KNL-153] - Stopping one of the "core" bundles of the servicemix engine block the server
      * [SMX4KNL-155] - Error changing manifest while bundle is deployed
      * [SMX4KNL-162] - The default jaas realm uses the config admin to store clear password
@@ -120,7 +120,7 @@
      * [SMX4KNL-62] - Enhance admin shell create command to allocate unique ports to new instances.
      * [SMX4KNL-74] - When using the spring deployer, allow the customization of the OSGi manifest entries
      * [SMX4KNL-78] - Small refactoring of the Feature interface
-     * [SMX4KNL-85] - Extend GShell#waitForFrameworkToStart to wait 60 seconds instead of 5 seconds.
+     * [SMX4KNL-85] - Extend Shell#waitForFrameworkToStart to wait 60 seconds instead of 5 seconds.
      * [SMX4KNL-101] - Reduce the amount of logging issued by mina
      * [SMX4KNL-106] - Support for container level lock to support master/slave deployments
      * [SMX4KNL-114] - prompt should print username@instance-name when using remote shell
@@ -214,7 +214,7 @@
      * [SMX4KNL-69] - Add installation status for the 'features list' result.
      * [SMX4KNL-71] - Export the gshell CommandExecutor in the OSGi registry
      * [SMX4KNL-73] - Require work around for blocking in.read() call in ProxyIO for automated testing.
-     * [SMX4KNL-75] - Modify GShell argument processing to execute multiple commands.
+     * [SMX4KNL-75] - Modify Shell argument processing to execute multiple commands.
      * [SMX4KNL-77] - The deployer should keep a list of installed bundles that failed to start and retry those when new bundles have been resolved
      * [SMX4KNL-78] - Small refactoring of the Feature interface
 
diff --git a/karaf/assembly/NOTICE b/karaf/assembly/NOTICE
new file mode 100644
index 0000000..2e13739
--- /dev/null
+++ b/karaf/assembly/NOTICE
@@ -0,0 +1,22 @@
+Apache Felix Karaf :: Assembly
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+
+III. License Summary
+- Apache License 2.0
+
+
diff --git a/karaf/assembly/pom.xml b/karaf/assembly/pom.xml
index 57acdc4..4923e8b 100644
--- a/karaf/assembly/pom.xml
+++ b/karaf/assembly/pom.xml
@@ -33,6 +33,10 @@
     <version>0.9.0-SNAPSHOT</version>
     <name>Apache Felix Karaf :: Assembly</name>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf</groupId>
@@ -67,40 +71,40 @@
             <artifactId>org.apache.felix.karaf.features.management</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.admin</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.admin</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.obr</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.obr</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.osgi</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.osgi</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.log</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.log</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.config</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.config</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.packages</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.packages</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.commands</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.commands</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.ssh</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.ssh</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.felix.karaf.jaas</groupId>
diff --git a/karaf/assembly/src/main/descriptors/unix-bin.xml b/karaf/assembly/src/main/descriptors/unix-bin.xml
index 479524a..a9d0fe9 100644
--- a/karaf/assembly/src/main/descriptors/unix-bin.xml
+++ b/karaf/assembly/src/main/descriptors/unix-bin.xml
@@ -27,8 +27,8 @@
             <directory>..</directory>
             <outputDirectory>/</outputDirectory>
             <includes>
-                <include>README.txt</include>
-                <include>RELEASE*.txt</include>
+                <include>README</include>
+                <include>RELEASE*</include>
             </includes>
             <lineEnding>unix</lineEnding>
         </fileSet>
@@ -100,16 +100,16 @@
 
     <files>
         <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/LICENSE</source>
+            <source>${basedir}/../LICENSE</source>
             <outputDirectory>/</outputDirectory>
-            <destName>LICENSE.txt</destName>
+            <destName>LICENSE</destName>
             <fileMode>0644</fileMode>
             <lineEnding>unix</lineEnding>
         </file>
         <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/NOTICE</source>
+            <source>${basedir}/NOTICE</source>
             <outputDirectory>/</outputDirectory>
-            <destName>NOTICE.txt</destName>
+            <destName>NOTICE</destName>
             <fileMode>0644</fileMode>
             <lineEnding>unix</lineEnding>
         </file>
@@ -200,16 +200,16 @@
             <outputDirectory>/system</outputDirectory>
             <unpack>false</unpack>
             <useProjectArtifact>false</useProjectArtifact>
-            <outputFileNameMapping>org/apache/felix/karaf/gshell/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
+            <outputFileNameMapping>org/apache/felix/karaf/shell/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
             <includes>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.console</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.admin</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.osgi</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.log</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.config</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.packages</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.ssh</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.commands</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.console</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.admin</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.osgi</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.log</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.config</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.packages</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.ssh</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.commands</include>
             </includes>
         </dependencySet>
         <dependencySet>
diff --git a/karaf/assembly/src/main/descriptors/unix-src.xml b/karaf/assembly/src/main/descriptors/unix-src.xml
index 4385030..121e36a 100644
--- a/karaf/assembly/src/main/descriptors/unix-src.xml
+++ b/karaf/assembly/src/main/descriptors/unix-src.xml
@@ -26,9 +26,11 @@
             <directory>${basedir}/..</directory>
             <outputDirectory>/</outputDirectory>
             <includes>
-                <include>BUILDING.txt</include>
-                <include>README.txt</include>
-                <include>RELEASE*.txt</include>
+                <include>BUILDING</include>
+                <include>README</include>
+                <include>NOTICE</include>
+                <include>LICENSE</include>
+                <include>RELEASE*</include>
             </includes>
             <lineEnding>unix</lineEnding>
         </fileSet>
@@ -104,20 +106,4 @@
             <lineEnding>unix</lineEnding>
         </fileSet>
     </fileSets>
-    <files>
-        <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/LICENSE</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>LICENSE.txt</destName>
-            <fileMode>0644</fileMode>
-            <lineEnding>unix</lineEnding>
-        </file>
-        <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/NOTICE</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>NOTICE.txt</destName>
-            <fileMode>0644</fileMode>
-            <lineEnding>unix</lineEnding>
-        </file>
-    </files>
 </assembly>
diff --git a/karaf/assembly/src/main/descriptors/windows-bin.xml b/karaf/assembly/src/main/descriptors/windows-bin.xml
index df43754..40d09d1 100644
--- a/karaf/assembly/src/main/descriptors/windows-bin.xml
+++ b/karaf/assembly/src/main/descriptors/windows-bin.xml
@@ -28,8 +28,8 @@
           <directory>..</directory>
           <outputDirectory>/</outputDirectory>
           <includes>
-              <include>README.txt</include>
-              <include>RELEASE*.txt</include>
+              <include>README</include>
+              <include>RELEASE*</include>
           </includes>
           <lineEnding>dos</lineEnding>
       </fileSet>
@@ -91,16 +91,16 @@
 
     <files>
         <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/LICENSE</source>
+            <source>${basedir}/../LICENSE</source>
             <outputDirectory>/</outputDirectory>
-            <destName>LICENSE.txt</destName>
+            <destName>LICENSE</destName>
             <fileMode>0644</fileMode>
             <lineEnding>dos</lineEnding>
         </file>
         <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/NOTICE</source>
+            <source>${basedir}/NOTICE</source>
             <outputDirectory>/</outputDirectory>
-            <destName>NOTICE.txt</destName>
+            <destName>NOTICE</destName>
             <fileMode>0644</fileMode>
             <lineEnding>dos</lineEnding>
         </file>
@@ -191,16 +191,16 @@
             <outputDirectory>/system</outputDirectory>
             <unpack>false</unpack>
             <useProjectArtifact>false</useProjectArtifact>
-            <outputFileNameMapping>org/apache/felix/karaf/gshell/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
+            <outputFileNameMapping>org/apache/felix/karaf/shell/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
             <includes>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.console</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.admin</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.osgi</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.log</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.config</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.packages</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.ssh</include>
-                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.commands</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.console</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.admin</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.osgi</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.log</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.config</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.packages</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.ssh</include>
+                <include>org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.commands</include>
             </includes>
         </dependencySet>
         <dependencySet>
diff --git a/karaf/assembly/src/main/descriptors/windows-src.xml b/karaf/assembly/src/main/descriptors/windows-src.xml
index 15b969f..d038b9b 100644
--- a/karaf/assembly/src/main/descriptors/windows-src.xml
+++ b/karaf/assembly/src/main/descriptors/windows-src.xml
@@ -26,9 +26,11 @@
             <directory>${basedir}/..</directory>
             <outputDirectory>/</outputDirectory>
             <includes>
-                <include>BUILDING.txt</include>
-                <include>README.txt</include>
-                <include>RELEASE*.txt</include>
+                <include>BUILDING</include>
+                <include>README</include>
+                <include>NOTICE</include>
+                <include>LICENSE</include>
+                <include>RELEASE*</include>
             </includes>
             <lineEnding>dos</lineEnding>
         </fileSet>
@@ -105,20 +107,4 @@
             <lineEnding>dos</lineEnding>
         </fileSet>
     </fileSets>
-    <files>
-        <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/LICENSE</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>LICENSE.txt</destName>
-            <fileMode>0644</fileMode>
-            <lineEnding>unix</lineEnding>
-        </file>
-        <file>
-            <source>${basedir}/target/maven-shared-archive-resources/META-INF/NOTICE</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>NOTICE.txt</destName>
-            <fileMode>0644</fileMode>
-            <lineEnding>unix</lineEnding>
-        </file>
-    </files>
 </assembly>
diff --git a/karaf/assembly/src/main/distribution/text/etc/org.ops4j.pax.logging.cfg b/karaf/assembly/src/main/distribution/text/etc/org.ops4j.pax.logging.cfg
index eca5c0e..95bb4c2 100644
--- a/karaf/assembly/src/main/distribution/text/etc/org.ops4j.pax.logging.cfg
+++ b/karaf/assembly/src/main/distribution/text/etc/org.ops4j.pax.logging.cfg
@@ -20,9 +20,6 @@
 # Root logger
 log4j.rootLogger=INFO, out, osgi:VmLogAppender
 
-# Logger infos
-log4j.logger.org.apache.geronimo.gshell.remote=WARN
-
 # CONSOLE appender not used by default
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
diff --git a/karaf/assembly/src/main/filtered-resources/bin/admin b/karaf/assembly/src/main/filtered-resources/bin/admin
index 171f29f..3a54a48 100644
--- a/karaf/assembly/src/main/filtered-resources/bin/admin
+++ b/karaf/assembly/src/main/filtered-resources/bin/admin
@@ -271,9 +271,9 @@
         CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
     fi
 
-    CLASSPATH=${KARAF_HOME}/system/org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.admin/${project.version}/org.apache.felix.karaf.gshell.admin-${project.version}.jar:${KARAF_HOME}/system/org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.console/${project.version}/org.apache.felix.karaf.gshell.console-${project.version}.jar:${KARAF_HOME}/system/org/apache/felix/gogo/org.apache.felix.gogo.runtime/${felix.gogo.version}/org.apache.felix.gogo.runtime-${felix.gogo.version}.jar:${KARAF_HOME}/system/org/apache/geronimo/blueprint/geronimo-blueprint/${geronimo.blueprint.version}/geronimo-blueprint-${geronimo.blueprint.version}.jar:${KARAF_HOME}/system/org/ops4j/pax/logging/pax-logging-api/${pax.logging.version}/pax-logging-api-${pax.logging.version}.jar:${KARAF_HOME}/system/org/apache/felix/org.apache.felix.framework/${felix.framework.version}/org.apache.felix.framework-${felix.framework.version}.jar
+    CLASSPATH=${KARAF_HOME}/system/org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.admin/${project.version}/org.apache.felix.karaf.shell.admin-${project.version}.jar:${KARAF_HOME}/system/org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.console/${project.version}/org.apache.felix.karaf.shell.console-${project.version}.jar:${KARAF_HOME}/system/org/apache/felix/gogo/org.apache.felix.gogo.runtime/${felix.gogo.version}/org.apache.felix.gogo.runtime-${felix.gogo.version}.jar:${KARAF_HOME}/system/org/apache/geronimo/blueprint/geronimo-blueprint/${geronimo.blueprint.version}/geronimo-blueprint-${geronimo.blueprint.version}.jar:${KARAF_HOME}/system/org/ops4j/pax/logging/pax-logging-api/${pax.logging.version}/pax-logging-api-${pax.logging.version}.jar:${KARAF_HOME}/system/org/apache/felix/org.apache.felix.framework/${felix.framework.version}/org.apache.felix.framework-${felix.framework.version}.jar
 
-    exec $JAVA $JAVA_OPTS -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Djava.util.logging.config.file=$KARAF_BASE/etc/java.util.logging.properties $OPTS -classpath "$CLASSPATH" org.apache.felix.karaf.gshell.admin.main.Execute "$@"
+    exec $JAVA $JAVA_OPTS -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Djava.util.logging.config.file=$KARAF_BASE/etc/java.util.logging.properties $OPTS -classpath "$CLASSPATH" org.apache.felix.karaf.shell.admin.main.Execute "$@"
 }
 
 main() {
diff --git a/karaf/assembly/src/main/filtered-resources/bin/admin.bat b/karaf/assembly/src/main/filtered-resources/bin/admin.bat
index 945e971..ab417f8 100644
--- a/karaf/assembly/src/main/filtered-resources/bin/admin.bat
+++ b/karaf/assembly/src/main/filtered-resources/bin/admin.bat
@@ -81,13 +81,13 @@
     call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
 :KARAF_DEBUG_END
 
-set CLASSPATH=%KARAF_HOME%\system\org\apache\felix\karaf\gshell\org.apache.felix.karaf.gshell.admin\${project.version}\org.apache.felix.karaf.gshell.admin-${project.version}.jar;%KARAF_HOME%\system\org\apache\felix\karaf\gshell\org.apache.felix.karaf.gshell.console\${project.version}\org.apache.felix.karaf.gshell.console-${project.version}.jar;%KARAF_HOME%\system\org\apache\felix\gogo\org.apache.felix.gogo.runtime\${felix.gogo.version}\org.apache.felix.gogo.runtime-${felix.gogo.version}.jar;%KARAF_HOME%\system\org\apache\geronimo\blueprint\geronimo-blueprint\${geronimo.blueprint.version}\geronimo-blueprint-${geronimo.blueprint.version}.jar;%KARAF_HOME%\system\org\ops4j\pax\logging\pax-logging-api\${pax.logging.version}\pax-logging-api-${pax.logging.version}.jar;%KARAF_HOME%\system\org\apache\felix\org.apache.felix.framework\${felix.framework.version}\org.apache.felix.framework-${felix.framework.version}.jar
+set CLASSPATH=%KARAF_HOME%\system\org\apache\felix\karaf\shell\org.apache.felix.karaf.shell.admin\${project.version}\org.apache.felix.karaf.shell.admin-${project.version}.jar;%KARAF_HOME%\system\org\apache\felix\karaf\shell\org.apache.felix.karaf.shell.console\${project.version}\org.apache.felix.karaf.shell.console-${project.version}.jar;%KARAF_HOME%\system\org\apache\felix\gogo\org.apache.felix.gogo.runtime\${felix.gogo.version}\org.apache.felix.gogo.runtime-${felix.gogo.version}.jar;%KARAF_HOME%\system\org\apache\geronimo\blueprint\geronimo-blueprint\${geronimo.blueprint.version}\geronimo-blueprint-${geronimo.blueprint.version}.jar;%KARAF_HOME%\system\org\ops4j\pax\logging\pax-logging-api\${pax.logging.version}\pax-logging-api-${pax.logging.version}.jar;%KARAF_HOME%\system\org\apache\felix\org.apache.felix.framework\${felix.framework.version}\org.apache.felix.framework-${felix.framework.version}.jar
 
 :EXECUTE
     if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8
     if not "%SHIFT%" == "true" SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8    
     rem Execute the Java Virtual Machine
-    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Djava.util.logging.config.file=%KARAF_BASE%\etc\java.util.logging.properties org.apache.felix.karaf.gshell.admin.main.Execute %ARGS%
+    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Djava.util.logging.config.file=%KARAF_BASE%\etc\java.util.logging.properties org.apache.felix.karaf.shell.admin.main.Execute %ARGS%
 
 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 
diff --git a/karaf/assembly/src/main/filtered-resources/etc/startup.properties b/karaf/assembly/src/main/filtered-resources/etc/startup.properties
index 53fa4be..71f3d79 100644
--- a/karaf/assembly/src/main/filtered-resources/etc/startup.properties
+++ b/karaf/assembly/src/main/filtered-resources/etc/startup.properties
@@ -37,16 +37,16 @@
 org/apache/geronimo/blueprint/geronimo-blueprint/${geronimo.blueprint.version}/geronimo-blueprint-${geronimo.blueprint.version}.jar=20
 
 org/apache/felix/gogo/org.apache.felix.gogo.runtime/${felix.gogo.version}/org.apache.felix.gogo.runtime-${felix.gogo.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.console/${pom.version}/org.apache.felix.karaf.gshell.console-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.console/${pom.version}/org.apache.felix.karaf.shell.console-${pom.version}.jar=30
 org/apache/felix/karaf/deployer/org.apache.felix.karaf.deployer.spring/${pom.version}/org.apache.felix.karaf.deployer.spring-${pom.version}.jar=30
 org/apache/felix/karaf/deployer/org.apache.felix.karaf.deployer.blueprint/${pom.version}/org.apache.felix.karaf.deployer.blueprint-${pom.version}.jar=30
 org/apache/felix/karaf/deployer/org.apache.felix.karaf.deployer.features/${pom.version}/org.apache.felix.karaf.deployer.features-${pom.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.admin/${pom.version}/org.apache.felix.karaf.gshell.admin-${pom.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.osgi/${pom.version}/org.apache.felix.karaf.gshell.osgi-${pom.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.log/${pom.version}/org.apache.felix.karaf.gshell.log-${pom.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.config/${pom.version}/org.apache.felix.karaf.gshell.config-${pom.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.packages/${pom.version}/org.apache.felix.karaf.gshell.packages-${pom.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.commands/${pom.version}/org.apache.felix.karaf.gshell.commands-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.admin/${pom.version}/org.apache.felix.karaf.shell.admin-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.osgi/${pom.version}/org.apache.felix.karaf.shell.osgi-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.log/${pom.version}/org.apache.felix.karaf.shell.log-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.config/${pom.version}/org.apache.felix.karaf.shell.config-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.packages/${pom.version}/org.apache.felix.karaf.shell.packages-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.commands/${pom.version}/org.apache.felix.karaf.shell.commands-${pom.version}.jar=30
 org/apache/felix/karaf/jaas/org.apache.felix.karaf.jaas.config/${pom.version}/org.apache.felix.karaf.jaas.config-${pom.version}.jar=30
 org/apache/felix/karaf/jaas/org.apache.felix.karaf.jaas.modules/${pom.version}/org.apache.felix.karaf.jaas.modules-${pom.version}.jar=30
 
@@ -59,4 +59,4 @@
 
 org/apache/mina/mina-core/${mina.version}/mina-core-${mina.version}.jar=30
 org/apache/sshd/sshd-core/${sshd.version}/sshd-core-${sshd.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.ssh/${pom.version}/org.apache.felix.karaf.gshell.ssh-${pom.version}.jar=30
+org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.ssh/${pom.version}/org.apache.felix.karaf.shell.ssh-${pom.version}.jar=30
diff --git a/karaf/assembly/src/main/filtered-resources/features.xml b/karaf/assembly/src/main/filtered-resources/features.xml
index 289296a..4ab558a 100644
--- a/karaf/assembly/src/main/filtered-resources/features.xml
+++ b/karaf/assembly/src/main/filtered-resources/features.xml
@@ -35,11 +35,11 @@
         <bundle>mvn:org.apache.felix.karaf.deployer/org.apache.felix.karaf.deployer.spring/${version}</bundle>
     </feature>
     <feature name="wrapper" version="${version}">
-        <bundle>mvn:org.apache.felix.karaf.gshell/org.apache.felix.karaf.gshell.wrapper/${version}</bundle>
+        <bundle>mvn:org.apache.felix.karaf.shell/org.apache.felix.karaf.shell.wrapper/${version}</bundle>
     </feature>
     <feature name="obr" version="${version}">
         <bundle>mvn:org.apache.felix/org.apache.felix.bundlerepository/${felix.bundlerepository.version}</bundle>
-        <bundle>mvn:org.apache.felix.karaf.gshell/org.apache.felix.karaf.gshell.obr/${version}</bundle>
+        <bundle>mvn:org.apache.felix.karaf.shell/org.apache.felix.karaf.shell.obr/${version}</bundle>
     </feature>
     <feature name="http" version="${version}">
         <config name="org.ops4j.pax.web">
@@ -65,13 +65,13 @@
         <bundle>mvn:org.apache.felix.karaf.webconsole/org.apache.felix.karaf.webconsole.gogo/${version}</bundle>
     </feature>
     <feature name="ssh" version="${version}">
-        <config name="org.apache.felix.karaf.gshell.ssh">
+        <config name="org.apache.felix.karaf.shell.ssh">
             sshPort=8101
             sshRealm=karaf
         </config>
         <bundle>mvn:org.apache.mina/mina-core/${mina.version}</bundle>
         <bundle>mvn:org.apache.sshd/sshd-core/${sshd.version}</bundle>
-        <bundle>mvn:org.apache.felix.karaf.gshell/org.apache.felix.karaf.gshell.ssh/${version}</bundle>
+        <bundle>mvn:org.apache.felix.karaf.shell/org.apache.felix.karaf.shell.ssh/${version}</bundle>
     </feature>
     <feature name="management" version="${version}">
         <bundle>mvn:org.apache.felix.karaf/org.apache.felix.karaf.management/${version}</bundle>
diff --git a/karaf/client/NOTICE b/karaf/client/NOTICE
new file mode 100644
index 0000000..51f8678
--- /dev/null
+++ b/karaf/client/NOTICE
@@ -0,0 +1,19 @@
+Apache Felix Karaf :: Client
+Copyright 2007-2009 The Apache Software Foundation
+
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+
+II. Used Software
+
+
+
+III. License Summary
+- Apache License 2.0
+
+
diff --git a/karaf/client/pom.xml b/karaf/client/pom.xml
index bdf4b2b..3c851d2 100644
--- a/karaf/client/pom.xml
+++ b/karaf/client/pom.xml
@@ -33,6 +33,10 @@
     <version>0.9.0-SNAPSHOT</version>
     <name>Apache Felix Karaf :: Client</name>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>jline</groupId>
@@ -63,7 +67,7 @@
                         <Class-Path>
                             ../system/org/apache/sshd/sshd-core/${sshd.version}/sshd-core-${sshd.version}.jar
                             ../system/org/apache/mina/mina-core/${mina.version}/mina-core-${mina.version}.jar
-                            ../system/org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.console/${pom.version}/org.apache.felix.karaf.gshell.console-${pom.version}.jar
+                            ../system/org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.console/${pom.version}/org.apache.felix.karaf.shell.console-${pom.version}.jar
                         </Class-Path>
                         <Bundle-Name>Apache Felix Karaf Shell Client</Bundle-Name>
                         <Bundle-Description>Shell client bundle for Apache Felix Karaf.</Bundle-Description>
@@ -78,6 +82,7 @@
                             META-INF;-split-package:=merge-first
                         </Private-Package>
                         <Import-Package>!*</Import-Package>
+                        <Include-Resource>{maven-resources},META-INF/NOTICE=NOTICE</Include-Resource>
                     </instructions>
                     <unpackBundle>true</unpackBundle>
                 </configuration>
diff --git a/karaf/client/src/main/resources/client.login.conf b/karaf/client/src/main/resources/client.login.conf
index dc2b0ba..1e190f1 100644
--- a/karaf/client/src/main/resources/client.login.conf
+++ b/karaf/client/src/main/resources/client.login.conf
@@ -22,5 +22,5 @@
 //
 
 RshClient {
-    org.apache.geronimo.gshell.remote.client.auth.RemoteLoginModule required;
+    org.apache.geronimo.shell.remote.client.auth.RemoteLoginModule required;
 };
diff --git a/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java b/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
index 6fbc9b6..7de16a0 100644
--- a/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
+++ b/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
@@ -58,7 +58,7 @@
  */
 public class FeatureDeploymentListener implements ArtifactTransformer, SynchronousBundleListener {
 
-    public static final String FEATURE_PATH = "org.apache.felix.karaf.gshell.features";
+    public static final String FEATURE_PATH = "org.apache.felix.karaf.shell.features";
 
     private static final Log LOGGER = LogFactory.getLog(FeatureDeploymentListener.class);
 
diff --git a/karaf/etc/appended-resources/supplemental-models.xml b/karaf/etc/appended-resources/supplemental-models.xml
new file mode 100644
index 0000000..d2e9911
--- /dev/null
+++ b/karaf/etc/appended-resources/supplemental-models.xml
@@ -0,0 +1,1349 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<supplementalDataModels>
+  <supplement>
+    <project>
+      <groupId>com.sun.xml.bind</groupId>
+      <artifactId>jaxb-impl</artifactId>
+      <name>Sun JAXB Reference Implementation Runtime</name>
+      <organization>
+        <name>Sun Microsystems</name>
+        <url>http://www.sun.com/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+          <url>http://www.sun.com/cddl/cddl.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>com.sun.xml.bind</groupId>
+      <artifactId>jaxb-xjc</artifactId>
+      <name>Sun JAXB Reference Implementation Tools</name>
+      <organization>
+        <name>Sun Microsystems</name>
+        <url>http://www.sun.com/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+          <url>http://www.sun.com/cddl/cddl.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>com.sun.xml.messaging.saaj</groupId>
+      <artifactId>saaj-impl</artifactId>
+      <name>Sun SAAJ Reference Implementation</name>
+      <organization>
+        <name>Sun Microsystems</name>
+        <url>http://www.sun.com/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+          <url>http://www.sun.com/cddl/cddl.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>javax.xml.soap</groupId>
+      <artifactId>saaj-api</artifactId>
+      <name>Sun SAAJ API</name>
+      <organization>
+        <name>Sun Microsystems</name>
+        <url>http://www.sun.com/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+          <url>http://www.sun.com/cddl/cddl.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.neethi</groupId>
+      <artifactId>neethi</artifactId>
+      <name>Neethi</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>javax.xml.ws</groupId>
+      <artifactId>jaxws-api</artifactId>
+      <name>Java API for XML-Based Web Services (JAX-WS API)</name>
+      <organization>
+        <name>Sun Microsystems</name>
+        <url>http://www.sun.com/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+          <url>http://www.sun.com/cddl/cddl.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+      <name>Java Architecture for XML Binding (JAXB API)</name>
+      <organization>
+        <name>Sun Microsystems</name>
+        <url>http://www.sun.com/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+          <url>http://www.sun.com/cddl/cddl.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>javax.xml</groupId>
+      <artifactId>jaxb-api</artifactId>
+      <name>Java Architecture for XML Binding (JAXB API)</name>
+      <organization>
+        <name>Sun Microsystems</name>
+        <url>http://www.sun.com/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+          <url>http://www.sun.com/cddl/cddl.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>xalan</groupId>
+      <artifactId>xalan</artifactId>
+      <name>Apache Xalan-Java</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>net.java.dev.stax-utils</groupId>
+      <artifactId>stax-utils</artifactId>
+      <name>StAX Utilities</name>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>wss4j</groupId>
+      <artifactId>wss4j</artifactId>
+      <name>Apache WSS4J</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>jdom</groupId>
+      <artifactId>jdom</artifactId>
+      <name>JDOM</name>
+      <organization>
+        <name>jdom.org</name>
+        <url>http://www.jdom.org</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>Modified Apache Software License</name>
+          <url>licenses/jdom.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>xml-security</groupId>
+      <artifactId>xmlsec</artifactId>
+      <name>XML Security</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>xml-apis</groupId>
+      <artifactId>xml-apis</artifactId>
+      <name>XML APIs</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>bouncycastle</groupId>
+      <artifactId>bcprov-jdk14</artifactId>
+      <name>Bouncy Castle Crypto APIs for Java</name>
+      <organization>
+        <name>The Legion of the Bouncy Castle</name>
+        <url>http://www.bouncycastle.org</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>Bouncy Castle License</name>
+          <url>http://www.bouncycastle.org/licence.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>ant</groupId>
+      <artifactId>ant</artifactId>
+      <name>Apache Ant</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>ant</groupId>
+      <artifactId>ant-nodeps</artifactId>
+      <name>Apache Ant (nodeps)</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.codehaus.jettison</groupId>
+      <artifactId>jettison</artifactId>
+      <name>Jettison</name>
+      <organization>
+        <name>Envoi Solutions LLC</name>
+        <url>http://www.envoisolutions.com</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://jettison.codehaus.org/License</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.mina</groupId>
+      <artifactId>mina-core</artifactId>
+      <name>Apache MINA Core API</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.mina</groupId>
+      <artifactId>mina-filter-ssl</artifactId>
+      <name>Apache MINA SSL Filter</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <name>Apache Commons Codec</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+      <name>Apache Commons Collections</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-dbcp</groupId>
+      <artifactId>commons-dbcp</artifactId>
+      <name>Apache Commons DBCP</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-jexl</groupId>
+      <artifactId>commons-jexl</artifactId>
+      <name>Apache Commons JEXL</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <name>Apache Commons Logging</name>
+      <url>http://commons.apache.org/logging</url>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging-api</artifactId>
+      <name>Apache Commons Logging Api</name>
+      <url>http://commons.apache.org/logging</url>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-pool</groupId>
+      <artifactId>commons-pool</artifactId>
+      <name>Apache Commons Pool</name>
+      <url>http://commons.apache.org/pool</url>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-vfs</groupId>
+      <artifactId>commons-vfs</artifactId>
+      <name>Apache Commons VFS</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <name>Apache Commons Codec</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.blueprint</groupId>
+      <artifactId>geronimo-blueprint</artifactId>
+      <name>Apache Geronimo Blueprint</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.activemq</groupId>
+      <artifactId>activemq-core</artifactId>
+      <name>ActiveMQ :: Core</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core</artifactId>
+      <name>Camel :: Core</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.xbean</groupId>
+      <artifactId>xbean-classloader</artifactId>
+      <name>XBean :: Classloader</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.xbean</groupId>
+      <artifactId>xbean-finder</artifactId>
+      <name>XBean :: Classpath Resource Finder</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.xbean</groupId>
+      <artifactId>xbean-naming</artifactId>
+      <name>XBean :: Naming</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.xbean</groupId>
+      <artifactId>xbean-reflect</artifactId>
+      <name>XBean :: Reflect</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.xbean</groupId>
+      <artifactId>xbean-spring</artifactId>
+      <name>XBean :: Spring</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <name>SLF4J API Module</name>
+      <organization>
+        <name>QOS.ch</name>
+        <url>http://www.qos.ch</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>MIT style</name>
+          <url>http://www.slf4j.org/license.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-jdk14</artifactId>
+      <name>SLF4J JDK14 Binding</name>
+      <organization>
+        <name>QOS.ch</name>
+        <url>http://www.qos.ch</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>MIT style</name>
+          <url>http://www.slf4j.org/license.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <name>Log4j</name>
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.components</groupId>
+      <artifactId>geronimo-connector</artifactId>
+      <name>Apache Geronimo TxManager :: Connector</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.components</groupId>
+      <artifactId>geronimo-transaction</artifactId>
+      <name>Apache Geronimo TxManager :: Transaction</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.springframework.osgi</groupId>
+      <artifactId>spring-osgi-core</artifactId>
+      <name>Spring OSGi Core</name>
+      <url>http://www.springframework.org/osgi/</url>
+      <organization>
+        <name>Spring Framework</name>
+        <url>http://www.springframework.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.springframework.osgi</groupId>
+      <artifactId>spring-osgi-extender</artifactId>
+      <name>Spring OSGi Extender</name>
+      <url>http://www.springframework.org/osgi/</url>
+      <organization>
+        <name>Spring Framework</name>
+        <url>http://www.springframework.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.springframework.osgi</groupId>
+      <artifactId>spring-osgi-io</artifactId>
+      <name>Spring OSGi IO</name>
+      <url>http://www.springframework.org/osgi/</url>
+      <organization>
+        <name>Spring Framework</name>
+        <url>http://www.springframework.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.springframework.osgi</groupId>
+      <artifactId>spring-osgi-annotation</artifactId>
+      <name>Spring OSGi Annotations</name>
+      <url>http://www.springframework.org/osgi/</url>
+      <organization>
+        <name>Spring Framework</name>
+        <url>http://www.springframework.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.objectweb.howl</groupId>
+      <artifactId>howl</artifactId>
+      <name>Howl Logger</name>
+      <url>http://howl.objectweb.org/</url>
+      <organization>
+        <name>ObjectWeb</name>
+        <url>http://www.objectweb.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The BSD License</name>
+          <url>http://howl.objectweb.org/license.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-classworlds</artifactId>
+      <name>Plexus Classworlds</name>
+      <url>http://plexus.codehaus.org/plexus-classworlds/</url>
+      <organization>
+        <name>Codehaus</name>
+        <url>http://www.codehaus.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>com.thoughtworks.xstream</groupId>
+      <artifactId>xstream</artifactId>
+      <name>XStream Core</name>
+      <url>http://xstream.codehaus.org/</url>
+      <organization>
+        <name>Codehaus</name>
+        <url>http://www.codehaus.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The BSD License</name>
+          <url>http://xstream.codehaus.com/license.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-activation_1.1_spec</artifactId>
+      <name>Apache Geronimo Specs :: Activation 1.1</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
+      <name>Apache Geronimo Specs :: J2EE Connector 1.5</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
+      <name>Apache Geronimo Specs :: J2EE Management 1.1</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-javamail_1.4_spec</artifactId>
+      <name>Apache Geronimo Specs :: JavaMail 1.4</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jms_1.1_spec</artifactId>
+      <name>Apache Geronimo Specs :: JMS 1.1</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jta_1.1_spec</artifactId>
+      <name>Apache Geronimo Specs :: JTA 1.1</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-saaj_1.3_spec</artifactId>
+      <name>Apache Geronimo Specs :: SAAJ 1.3</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-servlet_2.5_spec</artifactId>
+      <name>Apache Geronimo Specs :: Servlet 2.5</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+ <supplement>
+    <project>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+      <name>Apache Geronimo Specs :: Stax API 1.0</name> 
+      <organization>
+        <name>The Apache Software Foundation</name>
+        <url>http://www.apache.org/</url>
+      </organization>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>jline</groupId>
+      <artifactId>jline</artifactId>
+      <name>JLine</name>
+      <url>http://jline.sourceforge.net</url>
+      <organization>
+        <name>JLine</name>
+        <url>http://jline.sourceforge.net</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The BSD License</name>
+          <url>http://jline.sourceforge.net/license.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jetty</artifactId>
+      <name>Jetty Server</name>
+      <url>http://jetty.mortbay.org/</url>
+      <organization>
+	    <name>Mort Bay Consulting</name>
+	    <url>http://www.mortbay.com</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <name>Jetty Utilities</name>
+      <url>http://jetty.mortbay.org/</url>
+      <organization>
+	    <name>Mort Bay Consulting</name>
+	    <url>http://www.mortbay.com</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.base</groupId>
+      <artifactId>ops4j-base-lang</artifactId>
+      <name>OPS4J Base - Lang</name>
+      <url>http://www.ops4j.org/projects/base/ops4j-base-lang</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.base</groupId>
+      <artifactId>ops4j-base-util-collections</artifactId>
+      <name>OPS4J Base - Util - Collections</name>
+      <url>http://www.ops4j.org/projects/base/ops4j-base-util-collections</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.base</groupId>
+      <artifactId>ops4j-base-util-xml</artifactId>
+      <name>OPS4J Base - Util - XML</name>
+      <url>http://www.ops4j.org/projects/base/ops4j-base-util-xml</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.logging</groupId>
+      <artifactId>pax-logging-api</artifactId>
+      <name>OPS4J - Pax Logging API</name>
+      <url>http://www.ops4j.org/projects/pax/logging/pax-logging-api</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.logging</groupId>
+      <artifactId>pax-logging-service</artifactId>
+      <name>OPS4J - Pax Logging Service</name>
+      <url>http://www.ops4j.org/projects/pax/logging/pax-logging-service</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.swissbox</groupId>
+      <artifactId>pax-swissbox-core</artifactId>
+      <name>OPS4J Pax Swissbox - OSGi Core</name>
+      <url>http://www.ops4j.org/projects/pax/swissbox/pax-swissbox-core</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.swissbox</groupId>
+      <artifactId>pax-swissbox-extender</artifactId>
+      <name>OPS4J Pax Swissbox - Extender</name>
+      <url>http://www.ops4j.org/projects/pax/swissbox/pax-swissbox-extender</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.swissbox</groupId>
+      <artifactId>pax-swissbox-lifecycle</artifactId>
+      <name>OPS4J Pax Swissbox - Lifecycle</name>
+      <url>http://www.ops4j.org/projects/pax/swissbox/pax-swissbox-lifecycle</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.swissbox</groupId>
+      <artifactId>pax-swissbox-optional-jcl</artifactId>
+      <name>OPS4J Pax Swissbox - Optional JCL</name>
+      <url>http://www.ops4j.org/projects/pax/swissbox/pax-swissbox-optional-jcl</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.swissbox</groupId>
+      <artifactId>pax-swissbox-tracker</artifactId>
+      <name>OPS4J Pax Swissbox - Tracker</name>
+      <url>http://www.ops4j.org/projects/pax/swissbox/pax-swissbox-tracker</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.url</groupId>
+      <artifactId>pax-url-mvn</artifactId>
+      <name>OPS4J Pax Url - mvn:</name>
+      <url>http://www.ops4j.org/projects/pax/url/pax-url-mvn</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.url</groupId>
+      <artifactId>pax-url-war</artifactId>
+      <name>OPS4J Pax Url - war:</name>
+      <url>http://www.ops4j.org/projects/pax/url/pax-url-war</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.web</groupId>
+      <artifactId>pax-web-bundle</artifactId>
+      <name>OPS4J Pax Web - Web Container</name>
+      <url>http://www.ops4j.org/projects/pax/web/pax-web-bundle</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.web</groupId>
+      <artifactId>pax-web-jsp</artifactId>
+      <name>OPS4J Pax Web - JSP</name>
+      <url>http://www.ops4j.org/projects/pax/web/pax-web-jsp</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.web-extender</groupId>
+      <artifactId>pax-web-ex-war</artifactId>
+      <name>OPS4J Pax Web Extender - WAR</name>
+      <url>http://www.ops4j.org/projects/pax/web-extender/pax-web-ex-war</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.ops4j.pax.web-extender</groupId>
+      <artifactId>pax-web-ex-whiteboard</artifactId>
+      <name>OPS4J Pax Web Extender - Whiteboard</name>
+      <url>http://www.ops4j.org/projects/pax/web-extender/pax-web-ex-whiteboard</url>
+	  <organization>
+	    <name>OPS4J - Open Participation Software for Java</name>
+	    <url>http://www.ops4j.org/</url>
+	  </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.impl.bundle.jmx</artifactId>
+      <name>JMX management for OSGi (RI snapshot)</name>
+      <organization>
+        <name>OSGi Alliance</name>
+        <url>http://www.osgi.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.fusesource.jansi</groupId>
+      <artifactId>jansi</artifactId>
+      <name>jansi</name>
+      <organization>
+        <name>FUSE Source</name>
+        <url>http://www.fusesource.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>The Apache Software License, Version 2.0</name>
+          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>org.eclipse</groupId>
+      <artifactId>osgi</artifactId>
+      <name>Equinox Framework</name>
+      <organization>
+        <name>Eclipse Foundation</name>
+        <url>http://www.eclipse.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>Eclipse Public License, Version 1.0</name>
+          <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>xmlpull</groupId>
+      <artifactId>xmlpull</artifactId>
+      <name>XML Pull Parsing API</name>
+      <organization>
+        <name>Eclipse Foundation</name>
+        <url>http://www.eclipse.org/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>Public Domain</name>
+          <url>http://www.xmlpull.org/v1/download/unpacked/LICENSE.txt</url>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+  <supplement>
+    <project>
+      <groupId>aopalliance</groupId>
+      <artifactId>aopalliance</artifactId>
+      <name>XML Pull Parsing API</name>
+      <organization>
+        <name>AOP Alliance</name>
+        <url>http://aopalliance.sourceforge.net/</url>
+      </organization>
+      <licenses>
+        <license>
+          <name>Public Domain</name>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
+</supplementalDataModels>
diff --git a/karaf/features/command/pom.xml b/karaf/features/command/pom.xml
index 2091597..6b676dd 100644
--- a/karaf/features/command/pom.xml
+++ b/karaf/features/command/pom.xml
@@ -57,13 +57,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.obr</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.obr</artifactId>
         </dependency>
 
         <dependency>
@@ -102,7 +102,7 @@
                             javax.management.loading,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>!*</Private-Package>
diff --git a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java
index 3014f35..1ba61ad 100644
--- a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java
+++ b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java
@@ -16,7 +16,7 @@
  */
 package org.apache.felix.karaf.features.command;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.karaf.features.FeaturesService;
 import org.osgi.framework.ServiceReference;
 
diff --git a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java
index 1bd5fdc..3286222 100644
--- a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java
+++ b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java
@@ -18,8 +18,8 @@
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.completer.StringsCompleter;
+import org.apache.felix.karaf.shell.console.Completer;
 import org.apache.felix.karaf.features.FeaturesService;
 import org.apache.felix.karaf.features.Feature;
 
diff --git a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java
index 80a8b79..a9b9d7b 100644
--- a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java
+++ b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java
@@ -18,8 +18,8 @@
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.completer.StringsCompleter;
+import org.apache.felix.karaf.shell.console.Completer;
 import org.apache.felix.karaf.features.FeaturesService;
 import org.apache.felix.karaf.features.Repository;
 
diff --git a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java
index ba538c7..a2a03fe 100644
--- a/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java
+++ b/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java
@@ -18,8 +18,8 @@
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.Completer;
-import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
+import org.apache.felix.karaf.shell.console.Completer;
+import org.apache.felix.karaf.shell.console.completer.StringsCompleter;
 import org.apache.felix.karaf.features.FeaturesService;
 import org.apache.felix.karaf.features.Feature;
 
diff --git a/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml b/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
index 1ebb11e..f6a6f8d 100644
--- a/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
+++ b/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
@@ -20,7 +20,7 @@
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
            xmlns:ext="http://geronimo.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="features/addUrl">
             <action class="org.apache.felix.karaf.features.command.AddUrlCommand"/>
         </command>
diff --git a/karaf/features/core/pom.xml b/karaf/features/core/pom.xml
index 6c13f24..9abb41d 100644
--- a/karaf/features/core/pom.xml
+++ b/karaf/features/core/pom.xml
@@ -52,13 +52,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.obr</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.obr</artifactId>
         </dependency>
 
         <dependency>
@@ -97,7 +97,7 @@
                             javax.management.loading,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>org.apache.felix.karaf.features.internal</Private-Package>
diff --git a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java
index 430250d..f467447 100644
--- a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java
+++ b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java
@@ -36,13 +36,12 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.service.prefs.Preferences;
 import org.osgi.service.prefs.PreferencesService;
-import org.springframework.context.ApplicationContext;
 
 public class FeaturesServiceTest extends TestCase {
 
     public void testInstallFeature() throws Exception {
 
-        String name = ApplicationContext.class.getName();
+        String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));
@@ -131,7 +130,7 @@
 
     public void testUninstallFeature() throws Exception {
     	
-        String name = ApplicationContext.class.getName();
+        String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));
@@ -274,7 +273,7 @@
     // Tests Add and Remove Repository
     public void testAddAndRemoveRepository() throws Exception {        
 
-    	String name = ApplicationContext.class.getName();
+    	String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));        
@@ -351,7 +350,7 @@
     // all features in a repo
     public void testInstallUninstallAllFeatures() throws Exception {        
 
-    	String name = ApplicationContext.class.getName();
+    	String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));        
@@ -555,7 +554,7 @@
     // Tests uninstall of features
     public void testInstallFeatureWithDependantFeatures() throws Exception {          
 
-    	String name = ApplicationContext.class.getName();
+    	String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));        
diff --git a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java
index 737acaf..9718e13 100644
--- a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java
+++ b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java
@@ -62,7 +62,7 @@
     }
     
     public void testShowWrongUriInException() throws Exception {
-        String uri = "src/test/resources/org/apache/felix/karaf/gshell/features/repo1.xml";
+        String uri = "src/test/resources/org/apache/felix/karaf/shell/features/repo1.xml";
         RepositoryImpl r = new RepositoryImpl(new URI(uri));
         try {
             r.load();
diff --git a/karaf/features/management/pom.xml b/karaf/features/management/pom.xml
index a38b2fb..e0aff75 100644
--- a/karaf/features/management/pom.xml
+++ b/karaf/features/management/pom.xml
@@ -57,13 +57,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.obr</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.obr</artifactId>
         </dependency>
 
         <dependency>
@@ -104,7 +104,7 @@
                             javax.management.loading,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             !${artifactId}*,
                             *
                         </Import-Package>
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/utils/PumpStreamHandler.java b/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/utils/PumpStreamHandler.java
deleted file mode 100644
index 78a5a56..0000000
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/utils/PumpStreamHandler.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.karaf.gshell.commands.utils;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.IOException;
-
-//
-// Based on Apache Ant 1.6.5
-//
-
-/**
- * Copies standard output and error of children streams to standard output and error of the parent.
- *
- * @version $Rev: 705608 $ $Date: 2008-10-17 15:28:45 +0200 (Fri, 17 Oct 2008) $
- */
-public class PumpStreamHandler
-{
-    private InputStream in;
-
-    private OutputStream out;
-
-    private OutputStream err;
-
-    private Thread outputThread;
-
-    private Thread errorThread;
-
-    private StreamPumper inputPump;
-
-    //
-    // NOTE: May want to use a ThreadPool here, 3 threads per/pair seems kinda expensive :-(
-    //
-
-    public PumpStreamHandler(final InputStream in, final OutputStream out, final OutputStream err) {
-        assert in != null;
-        assert out != null;
-        assert err != null;
-
-        this.in = in;
-        this.out = out;
-        this.err = err;
-    }
-
-    public PumpStreamHandler(final OutputStream out, final OutputStream err) {
-        this(null, out, err);
-    }
-
-    public PumpStreamHandler(final OutputStream outAndErr) {
-        this(outAndErr, outAndErr);
-    }
-
-    /**
-     * Set the input stream from which to read the standard output of the child.
-     */
-    public void setChildOutputStream(final InputStream in) {
-        assert in != null;
-
-        createChildOutputPump(in, out);
-    }
-
-    /**
-     * Set the input stream from which to read the standard error of the child.
-     */
-    public void setChildErrorStream(final InputStream in) {
-        assert in != null;
-
-        if (err != null) {
-            createChildErrorPump(in, err);
-        }
-    }
-
-    /**
-     * Set the output stream by means of which input can be sent to the child.
-     */
-    public void setChildInputStream(final OutputStream out) {
-        assert out != null;
-
-        if (in != null) {
-            inputPump = createInputPump(in, out, true);
-        }
-        else {
-            try {
-                out.close();
-            } catch (IOException e) { }
-        }
-    }
-
-    /**
-     * Attach to a child streams from the given process.
-     *
-     * @param p     The process to attach to.
-     */
-    public void attach(final Process p) {
-        assert p != null;
-
-        setChildInputStream(p.getOutputStream());
-        setChildOutputStream(p.getInputStream());
-        setChildErrorStream(p.getErrorStream());
-    }
-    /**
-     * Start pumping the streams.
-     */
-    public void start() {
-        if (outputThread != null) {
-            outputThread.start();
-        }
-
-        if (errorThread != null) {
-            errorThread.start();
-        }
-
-        if (inputPump != null) {
-            Thread inputThread = new Thread(inputPump);
-            inputThread.setDaemon(true);
-            inputThread.start();
-        }
-    }
-
-    /**
-     * Stop pumping the streams.
-     */
-    public void stop() {
-        if (outputThread != null) {
-            try {
-                outputThread.join();
-            }
-            catch (InterruptedException e) {
-                // ignore
-            }
-        }
-
-        if (errorThread != null) {
-            try {
-                errorThread.join();
-            }
-            catch (InterruptedException e) {
-                // ignore
-            }
-        }
-
-        if (inputPump != null) {
-            inputPump.stop();
-        }
-
-        try {
-            err.flush();
-        } catch (IOException e) { }
-        try {
-            out.flush();
-        } catch (IOException e) { }
-    }
-
-    /**
-     * Create the pump to handle child output.
-     */
-    protected void createChildOutputPump(final InputStream in, final OutputStream out) {
-        assert in != null;
-        assert out != null;
-
-        outputThread = createPump(in, out);
-    }
-
-    /**
-     * Create the pump to handle error output.
-     */
-    protected void createChildErrorPump(final InputStream in, final OutputStream out) {
-        assert in != null;
-        assert out != null;
-
-        errorThread = createPump(in, out);
-    }
-
-    /**
-     * Creates a stream pumper to copy the given input stream to the given output stream.
-     */
-    protected Thread createPump(final InputStream in, final OutputStream out) {
-        assert in != null;
-        assert out != null;
-
-        return createPump(in, out, false);
-    }
-
-    /**
-     * Creates a stream pumper to copy the given input stream to the
-     * given output stream.
-     *
-     * @param in                    The input stream to copy from.
-     * @param out                   The output stream to copy to.
-     * @param closeWhenExhausted    If true close the inputstream.
-     * @return                      A thread object that does the pumping.
-     */
-    protected Thread createPump(final InputStream in, final OutputStream out, final boolean closeWhenExhausted) {
-        assert in != null;
-        assert out != null;
-
-        final Thread result = new Thread(new StreamPumper(in, out, closeWhenExhausted));
-        result.setDaemon(true);
-        return result;
-    }
-
-    /**
-     * Creates a stream pumper to copy the given input stream to the
-     * given output stream. Used for standard input.
-     */
-    protected StreamPumper createInputPump(final InputStream in, final OutputStream out, final boolean closeWhenExhausted) {
-        assert in != null;
-        assert out != null;
-
-        StreamPumper pumper = new StreamPumper(in, out, closeWhenExhausted);
-        pumper.setAutoflush(true);
-        return pumper;
-    }
-}
\ No newline at end of file
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/utils/StreamPumper.java b/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/utils/StreamPumper.java
deleted file mode 100644
index a2dd553..0000000
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/utils/StreamPumper.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.felix.karaf.gshell.commands.utils;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.IOException;
-
-//
-// Based on Apache Ant 1.6.5
-//
-
-/**
- * Copies all data from an input stream to an output stream.
- *
- * @version $Rev: 705608 $ $Date: 2008-10-17 15:28:45 +0200 (Fri, 17 Oct 2008) $
- */
-public class StreamPumper
-    implements Runnable
-{
-    private InputStream in;
-
-    private OutputStream out;
-
-    private volatile boolean finish;
-
-    private volatile boolean finished;
-
-    private boolean closeWhenExhausted;
-
-    private boolean autoflush;
-
-    private Exception exception;
-
-    private int bufferSize = 128;
-
-    private boolean started;
-
-    /**
-     * Create a new stream pumper.
-     *
-     * @param in                    Input stream to read data from
-     * @param out                   Output stream to write data to.
-     * @param closeWhenExhausted    If true, the output stream will be closed when
-     *                              the input is exhausted.
-     */
-    public StreamPumper(final InputStream in, final OutputStream out, final boolean closeWhenExhausted) {
-        assert in != null;
-        assert out != null;
-
-        this.in = in;
-        this.out = out;
-        this.closeWhenExhausted = closeWhenExhausted;
-    }
-
-    /**
-     * Create a new stream pumper.
-     *
-     * @param in    Input stream to read data from
-     * @param out   Output stream to write data to.
-     */
-    public StreamPumper(final InputStream in, final OutputStream out) {
-        this(in, out, false);
-    }
-
-    /**
-     * Set whether data should be flushed through to the output stream.
-     *
-     * @param autoflush     If true, push through data; if false, let it be buffered
-     */
-    public void setAutoflush(boolean autoflush) {
-        this.autoflush = autoflush;
-    }
-
-    /**
-     * Copies data from the input stream to the output stream.
-     *
-     * Terminates as soon as the input stream is closed or an error occurs.
-     */
-    public void run() {
-        synchronized (this) {
-            started = true;
-        }
-        finished = false;
-        finish = false;
-
-        final byte[] buf = new byte[bufferSize];
-
-        int length;
-        try {
-            while ((length = in.read(buf)) > 0 && !finish) {
-                out.write(buf, 0, length);
-                if (autoflush) {
-                    out.flush();
-                }
-            }
-            out.flush();
-        }
-        catch (Exception e) {
-            synchronized (this) {
-                exception = e;
-            }
-        }
-        finally {
-            if (closeWhenExhausted) {
-                try {
-                    out.close();
-                } catch (IOException e) { }
-            }
-            finished = true;
-
-            synchronized (this) {
-                notifyAll();
-            }
-        }
-    }
-
-    /**
-     * Tells whether the end of the stream has been reached.
-     *
-     * @return true     If the stream has been exhausted.
-     */
-    public boolean isFinished() {
-        return finished;
-    }
-
-    /**
-     * This method blocks until the stream pumper finishes.
-     *
-     * @see #isFinished()
-     */
-    public synchronized void waitFor() throws InterruptedException {
-        while (!isFinished()) {
-            wait();
-        }
-    }
-
-    /**
-     * Set the size in bytes of the read buffer.
-     *
-     * @param bufferSize the buffer size to use.
-     * @throws IllegalStateException if the StreamPumper is already running.
-     */
-    public synchronized void setBufferSize(final int bufferSize) {
-        if (started) {
-            throw new IllegalStateException("Cannot set buffer size on a running StreamPumper");
-        }
-
-        this.bufferSize = bufferSize;
-    }
-
-    /**
-     * Get the size in bytes of the read buffer.
-     *
-     * @return The size of the read buffer.
-     */
-    public synchronized int getBufferSize() {
-        return bufferSize;
-    }
-
-    /**
-     * Get the exception encountered, if any.
-     *
-     * @return The Exception encountered; or null if there was none.
-     */
-    public synchronized Exception getException() {
-        return exception;
-    }
-
-    /**
-     * Stop the pumper as soon as possible.
-     *
-     * Note that it may continue to block on the input stream
-     * but it will really stop the thread as soon as it gets EOF
-     * or any byte, and it will be marked as finished.
-     */
-    public synchronized void stop() {
-        finish = true;
-
-        notifyAll();
-    }
-}
\ No newline at end of file
diff --git a/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/AbstractIntegrationTest.java b/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/AbstractIntegrationTest.java
index 7e52789..abd8e30 100644
--- a/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/AbstractIntegrationTest.java
+++ b/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/AbstractIntegrationTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.itests;
+package org.apache.felix.karaf.shell.itests;
 
 import java.util.Dictionary;
 
diff --git a/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/CoreTest.java b/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/CoreTest.java
index ff0b895..0c0efac 100644
--- a/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/CoreTest.java
+++ b/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/CoreTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.itests;
+package org.apache.felix.karaf.shell.itests;
 
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -60,7 +60,7 @@
             assertTrue(e.getMessage().indexOf("Command not found") >= 0);
         }
 
-        Bundle b = getInstalledBundle("org.apache.felix.karaf.gshell.log");
+        Bundle b = getInstalledBundle("org.apache.felix.karaf.shell.log");
         b.start();
 
         Thread.sleep(1000);
@@ -93,7 +93,7 @@
 //
 //    @Test
 //    public void testCommandGroupAfterInstall() throws Exception {
-//        Bundle b = getInstalledBundle("org.apache.felix.karaf.gshell.log");
+//        Bundle b = getInstalledBundle("org.apache.felix.karaf.shell.log");
 //        b.start();
 //
 //        Thread.sleep(5000);
@@ -133,9 +133,9 @@
             mavenBundle("org.apache.sshd", "sshd-core"),
             mavenBundle("org.apache.felix.karaf.jaas", "org.apache.felix.karaf.jaas.config"),
             mavenBundle("org.apache.felix.gogo", "org.apache.felix.gogo.runtime"),
-            mavenBundle("org.apache.felix.karaf.gshell", "org.apache.felix.karaf.gshell.console"),
-            mavenBundle("org.apache.felix.karaf.gshell", "org.apache.felix.karaf.gshell.osgi"),
-            mavenBundle("org.apache.felix.karaf.gshell", "org.apache.felix.karaf.gshell.log").noStart(),
+            mavenBundle("org.apache.felix.karaf.shell", "org.apache.felix.karaf.shell.console"),
+            mavenBundle("org.apache.felix.karaf.shell", "org.apache.felix.karaf.shell.osgi"),
+            mavenBundle("org.apache.felix.karaf.shell", "org.apache.felix.karaf.shell.log").noStart(),
 
             equinox()
         );
diff --git a/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/FeaturesTest.java b/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/FeaturesTest.java
index 7d9d395..98b2adc 100644
--- a/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/FeaturesTest.java
+++ b/karaf/itests/src/test/java/org/apache/felix/karaf/gshell/itests/FeaturesTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.itests;
+package org.apache.felix.karaf.shell.itests;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -80,10 +80,10 @@
             mavenBundle("org.apache.mina", "mina-core"),
             mavenBundle("org.apache.sshd", "sshd-core"),
             mavenBundle("org.apache.felix.karaf.jaas", "org.apache.felix.karaf.jaas.config"),
-            mavenBundle("org.apache.felix.karaf.gshell", "org.apache.felix.karaf.gshell.console"),
+            mavenBundle("org.apache.felix.karaf.shell", "org.apache.felix.karaf.shell.console"),
             mavenBundle("org.apache.felix.gogo", "org.apache.felix.gogo.runtime"),
-            mavenBundle("org.apache.felix.karaf.gshell", "org.apache.felix.karaf.gshell.osgi"),
-            mavenBundle("org.apache.felix.karaf.gshell", "org.apache.felix.karaf.gshell.log").noStart(),
+            mavenBundle("org.apache.felix.karaf.shell", "org.apache.felix.karaf.shell.osgi"),
+            mavenBundle("org.apache.felix.karaf.shell", "org.apache.felix.karaf.shell.log").noStart(),
 
             scanFeatures(
                     maven().groupId("org.apache.felix.karaf").artifactId("apache-felix-karaf").type("xml").classifier("features").versionAsInProject(),
diff --git a/karaf/jaas/jaas-boot/pom.xml b/karaf/jaas/boot/pom.xml
similarity index 100%
rename from karaf/jaas/jaas-boot/pom.xml
rename to karaf/jaas/boot/pom.xml
diff --git a/karaf/jaas/jaas-boot/src/main/java/org/apache/felix/karaf/jaas/boot/ProxyLoginModule.java b/karaf/jaas/boot/src/main/java/org/apache/felix/karaf/jaas/boot/ProxyLoginModule.java
similarity index 100%
rename from karaf/jaas/jaas-boot/src/main/java/org/apache/felix/karaf/jaas/boot/ProxyLoginModule.java
rename to karaf/jaas/boot/src/main/java/org/apache/felix/karaf/jaas/boot/ProxyLoginModule.java
diff --git a/karaf/jaas/jaas-config/pom.xml b/karaf/jaas/config/pom.xml
similarity index 100%
rename from karaf/jaas/jaas-config/pom.xml
rename to karaf/jaas/config/pom.xml
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/JaasRealm.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/JaasRealm.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/JaasRealm.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/JaasRealm.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeyIsLocked.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeyIsLocked.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeyIsLocked.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeyIsLocked.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreInstance.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreInstance.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreInstance.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreInstance.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreIsLocked.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreIsLocked.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreIsLocked.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreIsLocked.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreManager.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreManager.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreManager.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/KeystoreManager.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
similarity index 99%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
index 68f73e2..c51626f 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
+++ b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
@@ -43,7 +43,7 @@
 public class NamespaceHandler implements org.apache.geronimo.blueprint.NamespaceHandler {
 
     public URL getSchemaLocation(String namespace) {
-        return getClass().getResource("/org/apache/felix/karaf/jaas/config/servicemix-jaas.xsd");
+        return getClass().getResource("/org/apache/felix/karaf/jaas/config/karaf-jaas.xsd");
     }
 
     public Metadata parse(Element element, ParserContext context) {
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiKeystoreManager.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiKeystoreManager.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiKeystoreManager.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiKeystoreManager.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java b/karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
rename to karaf/jaas/config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
diff --git a/karaf/jaas/jaas-config/src/main/resources/OSGI-INF/blueprint/karaf-jaas.xml b/karaf/jaas/config/src/main/resources/OSGI-INF/blueprint/karaf-jaas.xml
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/resources/OSGI-INF/blueprint/karaf-jaas.xml
rename to karaf/jaas/config/src/main/resources/OSGI-INF/blueprint/karaf-jaas.xml
diff --git a/karaf/jaas/jaas-config/src/main/resources/org/apache/felix/karaf/jaas/config/servicemix-jaas.xsd b/karaf/jaas/config/src/main/resources/org/apache/felix/karaf/jaas/config/karaf-jaas.xsd
similarity index 100%
rename from karaf/jaas/jaas-config/src/main/resources/org/apache/felix/karaf/jaas/config/servicemix-jaas.xsd
rename to karaf/jaas/config/src/main/resources/org/apache/felix/karaf/jaas/config/karaf-jaas.xsd
diff --git a/karaf/jaas/jaas-modules/pom.xml b/karaf/jaas/modules/pom.xml
similarity index 100%
rename from karaf/jaas/jaas-modules/pom.xml
rename to karaf/jaas/modules/pom.xml
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/RolePrincipal.java b/karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/RolePrincipal.java
similarity index 100%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/RolePrincipal.java
rename to karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/RolePrincipal.java
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/UserPrincipal.java b/karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/UserPrincipal.java
similarity index 100%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/UserPrincipal.java
rename to karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/UserPrincipal.java
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/ConfigAdminHolder.java b/karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/ConfigAdminHolder.java
similarity index 100%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/ConfigAdminHolder.java
rename to karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/ConfigAdminHolder.java
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java b/karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
similarity index 100%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
rename to karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
diff --git a/karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/properties/PropertiesLoginModule.java b/karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/properties/PropertiesLoginModule.java
similarity index 100%
rename from karaf/jaas/jaas-modules/src/main/java/org/apache/felix/karaf/jaas/modules/properties/PropertiesLoginModule.java
rename to karaf/jaas/modules/src/main/java/org/apache/felix/karaf/jaas/modules/properties/PropertiesLoginModule.java
diff --git a/karaf/jaas/jaas-modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml b/karaf/jaas/modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml
similarity index 100%
rename from karaf/jaas/jaas-modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml
rename to karaf/jaas/modules/src/main/resources/OSGI-INF/blueprint/karaf-jaas-module.xml
diff --git a/karaf/jaas/pom.xml b/karaf/jaas/pom.xml
index f232a96..7204e61 100644
--- a/karaf/jaas/pom.xml
+++ b/karaf/jaas/pom.xml
@@ -34,9 +34,9 @@
     <name>Apache Felix Karaf :: JAAS</name>
 
     <modules>
-        <module>jaas-boot</module>
-        <module>jaas-config</module>
-        <module>jaas-modules</module>
+        <module>boot</module>
+        <module>config</module>
+        <module>modules</module>
     </modules>
 
 </project>
diff --git a/karaf/main/NOTICE b/karaf/main/NOTICE
new file mode 100644
index 0000000..4bf60b6
--- /dev/null
+++ b/karaf/main/NOTICE
@@ -0,0 +1,21 @@
+Apache Felix Karaf :: Main
+Copyright 2009 The Apache Software Foundation
+
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+
+III. License Summary
+- Apache License 2.0
diff --git a/karaf/main/pom.xml b/karaf/main/pom.xml
index ae4bf09..5beddd4 100644
--- a/karaf/main/pom.xml
+++ b/karaf/main/pom.xml
@@ -33,6 +33,10 @@
     <version>0.9.0-SNAPSHOT</version>
     <name>Apache Felix Karaf :: Main</name>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.eclipse</groupId>
@@ -63,6 +67,7 @@
                         <Bundle-Description>OSGi R4 framework.</Bundle-Description>
                         <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
                         <Export-Package>org.apache.felix.karaf.main.spi.*;version=${pom.version}</Export-Package>
+                        <Include-Resource>{maven-resources},META-INF/NOTICE=NOTICE</Include-Resource>
                         <!--
                         <Private-Package>
                             org.apache.felix.*;-split-package:=merge-first,
diff --git a/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java b/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
index ab2838c..270ed4a 100644
--- a/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
+++ b/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
@@ -149,8 +149,8 @@
         karafHome = Utils.getKarafHome();
         karafBase = Utils.getKarafBase(karafHome);
 
-        //System.out.println("Karaf Home: "+main.servicemixHome.getPath());
-        //System.out.println("Karaf Base: "+main.servicemixBase.getPath());
+        //System.out.println("Karaf Home: "+main.karafHome.getPath());
+        //System.out.println("Karaf Base: "+main.karafBase.getPath());
 
         System.setProperty(PROP_KARAF_HOME, karafHome.getPath());
         System.setProperty(PROP_KARAF_BASE, karafBase.getPath());
diff --git a/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java b/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java
index 92373a9..c6fd1fa 100644
--- a/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java
+++ b/karaf/main/src/main/java/org/apache/felix/karaf/main/SimpleFileLock.java
@@ -40,8 +40,8 @@
             String lock = props.getProperty(PROPERTY_LOCK_DIR);
 
             if (lock != null) {
-                File servicemixLock = getServiceMixLock(new File(lock), props);
-                props.setProperty(PROPERTY_LOCK_DIR, servicemixLock.getPath());
+                File karafLock = getKarafLock(new File(lock), props);
+                props.setProperty(PROPERTY_LOCK_DIR, karafLock.getPath());
             } else {
                 props.setProperty(PROPERTY_LOCK_DIR, System.getProperty(PROP_KARAF_BASE));
             }
@@ -74,7 +74,7 @@
         return lock != null;
     }
 
-    private static File getServiceMixLock(File lock,Properties props) {
+    private static File getKarafLock(File lock,Properties props) {
         File rc = null;
 
         String path = lock.getPath();
diff --git a/karaf/management/pom.xml b/karaf/management/pom.xml
index f0215a4..76fbc71 100644
--- a/karaf/management/pom.xml
+++ b/karaf/management/pom.xml
@@ -33,6 +33,10 @@
     <version>0.9.0-SNAPSHOT</version>
     <name>Apache Felix Karaf :: Management</name>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix</groupId>
diff --git a/karaf/management/src/test/configs/services/org.ops4j.pax.logging.properties b/karaf/management/src/test/configs/services/org.ops4j.pax.logging.properties
index 23075bf..d1f34a6 100644
--- a/karaf/management/src/test/configs/services/org.ops4j.pax.logging.properties
+++ b/karaf/management/src/test/configs/services/org.ops4j.pax.logging.properties
@@ -30,5 +30,5 @@
 log4j.appender.out=org.apache.log4j.FileAppender
 log4j.appender.out.layout=org.apache.log4j.PatternLayout
 log4j.appender.out.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
-log4j.appender.out.file=target/gshell.log
+log4j.appender.out.file=target/shell.log
 log4j.appender.out.append=true
diff --git a/karaf/pom.xml b/karaf/pom.xml
index 3e035d3..5eb1e04 100644
--- a/karaf/pom.xml
+++ b/karaf/pom.xml
@@ -38,7 +38,7 @@
         <module>main</module>
         <module>features</module>
         <module>deployer</module>
-        <module>gshell</module>
+        <module>shell</module>
         <module>jaas</module>
         <module>client</module>
         <module>management</module>
@@ -96,7 +96,6 @@
         <pax.runner.version>1.1.1</pax.runner.version>
         <pax.url.version>1.0.0</pax.url.version>
         <pax.web.version>0.6.0</pax.web.version>
-        <servicemix.legal.version>1.0</servicemix.legal.version>
         <servlet.api.version>2.5</servlet.api.version>
         <spring.osgi.version>1.2.0</spring.osgi.version>
         <spring.version>2.5.6.SEC01</spring.version>
@@ -104,7 +103,7 @@
         <osgi.jmx.version>4.2.0.200907080519</osgi.jmx.version>
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
+        <appendedResourcesDirectory>${basedir}/etc/appended-resources</appendedResourcesDirectory>
         <bnd.version.policy>[$(version;==;$(@)),$(version;+;$(@)))</bnd.version.policy>
     </properties>
 
@@ -206,58 +205,58 @@
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.core</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.core</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.console</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.run</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.run</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.admin</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.admin</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.obr</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.obr</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.osgi</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.osgi</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.log</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.log</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.config</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.config</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.packages</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.packages</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.ssh</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.ssh</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.felix.karaf.gshell</groupId>
-                <artifactId>org.apache.felix.karaf.gshell.commands</artifactId>
+                <groupId>org.apache.felix.karaf.shell</groupId>
+                <artifactId>org.apache.felix.karaf.shell.commands</artifactId>
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
@@ -392,6 +391,12 @@
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-aop</artifactId>
                 <version>${spring.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.aopalliance</groupId>
+                        <artifactId>com.springsource.org.aopalliance</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
             <dependency>
                 <groupId>org.springframework</groupId>
@@ -417,6 +422,24 @@
                 <groupId>org.springframework.osgi</groupId>
                 <artifactId>spring-osgi-core</artifactId>
                 <version>${spring.osgi.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.springframework</groupId>
+                        <artifactId>org.springframework.aop</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.springframework</groupId>
+                        <artifactId>org.springframework.beans</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.springframework</groupId>
+                        <artifactId>org.springframework.context</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.springframework</groupId>
+                        <artifactId>org.springframework.core</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
             <dependency>
                 <groupId>org.springframework.osgi</groupId>
@@ -729,40 +752,6 @@
                 </configuration>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <id>copy-legal</id>
-                        <phase>generate-resources</phase>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <configuration>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>org.apache.servicemix.legal</groupId>
-                                    <artifactId>legal</artifactId>
-                                    <version>${servicemix.legal.version}</version>
-                                    <type>xml</type>
-                                    <outputDirectory>target/legal/</outputDirectory>
-                                </artifactItem>
-                            </artifactItems>
-                            <stripVersion>true</stripVersion>
-                        </configuration>
-                    </execution>
-                </executions>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.apache.servicemix.legal</groupId>
-                        <artifactId>legal</artifactId>
-                        <version>${servicemix.legal.version}</version>
-                        <type>xml</type>
-                    </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
                 <artifactId>maven-remote-resources-plugin</artifactId>
                 <version>1.0</version>
                 <executions>
@@ -771,17 +760,10 @@
                             <goal>process</goal>
                         </goals>
                         <configuration>
+                            <appendedResourcesDirectory>${appendedResourcesDirectory}</appendedResourcesDirectory>
                             <resourceBundles>
                                 <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                             </resourceBundles>
-                            <supplementalModels>
-                                <supplementalModel>target/legal/legal.xml</supplementalModel>
-                            </supplementalModels>
-                            <properties>
-                                <addLicense>true</addLicense>
-                                <addArtifact>true</addArtifact>
-                                <projectName>Apache ServiceMix</projectName>
-                            </properties>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/karaf/gshell/gshell-admin/pom.xml b/karaf/shell/admin/pom.xml
similarity index 94%
rename from karaf/gshell/gshell-admin/pom.xml
rename to karaf/shell/admin/pom.xml
index c0c1300..f90cdf8 100644
--- a/karaf/gshell/gshell-admin/pom.xml
+++ b/karaf/shell/admin/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.admin</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.admin</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell Admin</name>
+    <name>Apache Felix Karaf :: Shell Admin</name>
 
     <description>
         Provides administration commands
@@ -39,8 +39,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
@@ -155,7 +155,7 @@
                             <goal>copy-resources</goal>
                         </goals>
                         <configuration>
-                            <outputDirectory>${basedir}/target/classes/org/apache/felix/karaf/gshell/admin/etc</outputDirectory>
+                            <outputDirectory>${basedir}/target/classes/org/apache/felix/karaf/shell/admin/etc</outputDirectory>
                             <resources>
                                 <resource>
                                     <directory>../../assembly/src/main/distribution/text/etc/</directory>
@@ -180,7 +180,7 @@
                             <goal>copy-resources</goal>
                         </goals>
                         <configuration>
-                            <outputDirectory>${basedir}/target/classes/org/apache/felix/karaf/gshell/admin/etc</outputDirectory>
+                            <outputDirectory>${basedir}/target/classes/org/apache/felix/karaf/shell/admin/etc</outputDirectory>
                             <resources>
                                 <resource>
                                     <directory>../../assembly/src/main/filtered-resources/etc</directory>
@@ -212,7 +212,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>org.apache.felix.karaf.jpm.*</Private-Package>
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/Process.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/Process.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/Process.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/Process.java
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilder.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilder.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilder.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilder.java
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilderFactory.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilderFactory.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilderFactory.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/ProcessBuilderFactory.java
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderFactoryImpl.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderFactoryImpl.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderFactoryImpl.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderFactoryImpl.java
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderImpl.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderImpl.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderImpl.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessBuilderImpl.java
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessImpl.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessImpl.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessImpl.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ProcessImpl.java
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ScriptUtils.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ScriptUtils.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/jpm/impl/ScriptUtils.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/jpm/impl/ScriptUtils.java
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/AdminService.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/AdminService.java
similarity index 95%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/AdminService.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/AdminService.java
index 1721ca3..ce214af 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/AdminService.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/AdminService.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin;
+package org.apache.felix.karaf.shell.admin;
 
 public interface AdminService {
 
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/AdminServiceMBean.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/AdminServiceMBean.java
similarity index 96%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/AdminServiceMBean.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/AdminServiceMBean.java
index 8e18445..fdd0034 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/AdminServiceMBean.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/AdminServiceMBean.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin;
+package org.apache.felix.karaf.shell.admin;
 
 public interface AdminServiceMBean {
 
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/Instance.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/Instance.java
similarity index 96%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/Instance.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/Instance.java
index 01bd510..61f642e 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/Instance.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/Instance.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin;
+package org.apache.felix.karaf.shell.admin;
 
 public interface Instance {
 
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java
similarity index 81%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java
index 58b1908..a541556 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal;
+package org.apache.felix.karaf.shell.admin.internal;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -29,8 +29,8 @@
 import java.util.Scanner;
 import java.util.Properties;
 
-import org.apache.felix.karaf.gshell.admin.AdminService;
-import org.apache.felix.karaf.gshell.admin.Instance;
+import org.apache.felix.karaf.shell.admin.AdminService;
+import org.apache.felix.karaf.shell.admin.Instance;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 import org.fusesource.jansi.Ansi;
@@ -121,49 +121,49 @@
             throw new IllegalArgumentException("Instance '" + name + "' already exists");
         }
         String loc = location != null ? location : name;
-        File serviceMixBase = new File(loc);
-        if (!serviceMixBase.isAbsolute()) {
-            serviceMixBase = new File(storageLocation, loc);
+        File karafBase = new File(loc);
+        if (!karafBase.isAbsolute()) {
+            karafBase = new File(storageLocation, loc);
         }
         int sshPort = port;
         if (sshPort <= 0) {
             sshPort = ++defaultPortStart;
         }
-        println(Ansi.ansi().a("Creating new instance on port ").a(sshPort).a(" at: ").a(Ansi.Attribute.INTENSITY_BOLD).a(serviceMixBase).a(Ansi.Attribute.RESET).toString());
+        println(Ansi.ansi().a("Creating new instance on port ").a(sshPort).a(" at: ").a(Ansi.Attribute.INTENSITY_BOLD).a(karafBase).a(Ansi.Attribute.RESET).toString());
 
-        mkdir(serviceMixBase, "bin");
-        mkdir(serviceMixBase, "etc");
-        mkdir(serviceMixBase, "system");
-        mkdir(serviceMixBase, "deploy");
-        mkdir(serviceMixBase, "data");
+        mkdir(karafBase, "bin");
+        mkdir(karafBase, "etc");
+        mkdir(karafBase, "system");
+        mkdir(karafBase, "deploy");
+        mkdir(karafBase, "data");
 
-        copyResourceToDir(serviceMixBase, "etc/config.properties", true);
-        copyResourceToDir(serviceMixBase, "etc/java.util.logging.properties", true);
-        copyResourceToDir(serviceMixBase, "etc/org.apache.felix.karaf.log.cfg", true);
-        copyResourceToDir(serviceMixBase, "etc/org.apache.felix.karaf.features.cfg", true);
-        copyResourceToDir(serviceMixBase, "etc/org.apache.felix.karaf.management.cfg", true);
-        copyResourceToDir(serviceMixBase, "etc/org.ops4j.pax.logging.cfg", true);
-        copyResourceToDir(serviceMixBase, "etc/org.ops4j.pax.url.mvn.cfg", true);
-        copyResourceToDir(serviceMixBase, "etc/startup.properties", true);
-        copyResourceToDir(serviceMixBase, "etc/users.properties", true);
+        copyResourceToDir(karafBase, "etc/config.properties", true);
+        copyResourceToDir(karafBase, "etc/java.util.logging.properties", true);
+        copyResourceToDir(karafBase, "etc/org.apache.felix.karaf.log.cfg", true);
+        copyResourceToDir(karafBase, "etc/org.apache.felix.karaf.features.cfg", true);
+        copyResourceToDir(karafBase, "etc/org.apache.felix.karaf.management.cfg", true);
+        copyResourceToDir(karafBase, "etc/org.ops4j.pax.logging.cfg", true);
+        copyResourceToDir(karafBase, "etc/org.ops4j.pax.url.mvn.cfg", true);
+        copyResourceToDir(karafBase, "etc/startup.properties", true);
+        copyResourceToDir(karafBase, "etc/users.properties", true);
 
         HashMap<String, String> props = new HashMap<String, String>();
         props.put("${karaf.name}", name);
         props.put("${karaf.home}", System.getProperty("karaf.home"));
-        props.put("${karaf.base}", serviceMixBase.getPath());
+        props.put("${karaf.base}", karafBase.getPath());
         props.put("${karaf.sshPort}", Integer.toString(sshPort));
-        copyFilteredResourceToDir(serviceMixBase, "etc/system.properties", props);
-        copyFilteredResourceToDir(serviceMixBase, "etc/org.apache.felix.karaf.shell.cfg", props);
+        copyFilteredResourceToDir(karafBase, "etc/system.properties", props);
+        copyFilteredResourceToDir(karafBase, "etc/org.apache.felix.karaf.shell.cfg", props);
         if( System.getProperty("os.name").startsWith("Win") ) {
-            copyFilteredResourceToDir(serviceMixBase, "bin/start.bat", props);
-            copyFilteredResourceToDir(serviceMixBase, "bin/stop.bat", props);
+            copyFilteredResourceToDir(karafBase, "bin/start.bat", props);
+            copyFilteredResourceToDir(karafBase, "bin/stop.bat", props);
         } else {
-            copyFilteredResourceToDir(serviceMixBase, "bin/start", props);
-            copyFilteredResourceToDir(serviceMixBase, "bin/stop", props);
-            chmod(new File(serviceMixBase, "bin/start"), "a+x");
-            chmod(new File(serviceMixBase, "bin/stop"), "a+x");
+            copyFilteredResourceToDir(karafBase, "bin/start", props);
+            copyFilteredResourceToDir(karafBase, "bin/stop", props);
+            chmod(new File(karafBase, "bin/start"), "a+x");
+            chmod(new File(karafBase, "bin/stop"), "a+x");
         }
-        Instance instance = new InstanceImpl(this, name, serviceMixBase.toString());
+        Instance instance = new InstanceImpl(this, name, karafBase.toString());
         instances.put(name, instance);
         saveState();
         return instance;
@@ -198,7 +198,7 @@
         File outFile = new File(target, resource);
         if( !outFile.exists() ) {
             println(Ansi.ansi().a("Creating file: ").a(Ansi.Attribute.INTENSITY_BOLD).a(outFile.getPath()).a(Ansi.Attribute.RESET).toString());
-            InputStream is = getClass().getClassLoader().getResourceAsStream("org/apache/felix/karaf/gshell/admin/" + resource);
+            InputStream is = getClass().getClassLoader().getResourceAsStream("org/apache/felix/karaf/shell/admin/" + resource);
             try {
                 if( text ) {
                     // Read it line at a time so that we can use the platform line ending when we write it out.
@@ -238,7 +238,7 @@
         File outFile = new File(target, resource);
         if( !outFile.exists() ) {
             println(Ansi.ansi().a("Creating file: ").a(Ansi.Attribute.INTENSITY_BOLD).a(outFile.getPath()).a(Ansi.Attribute.RESET).toString());
-            InputStream is = getClass().getClassLoader().getResourceAsStream("org/apache/felix/karaf/gshell/admin/" + resource);
+            InputStream is = getClass().getClassLoader().getResourceAsStream("org/apache/felix/karaf/shell/admin/" + resource);
             try {
                 // Read it line at a time so that we can use the platform line ending when we write it out.
                 PrintStream out = new PrintStream(new FileOutputStream(outFile));
@@ -290,8 +290,8 @@
         return line;
     }
 
-    private void mkdir(File serviceMixBase, String path) {
-        File file = new File(serviceMixBase, path);
+    private void mkdir(File karafBase, String path) {
+        File file = new File(karafBase, path);
         if( !file.exists() ) {
             println(Ansi.ansi().a("Creating dir:  ").a(Ansi.Attribute.INTENSITY_BOLD).a(file.getPath()).a(Ansi.Attribute.RESET).toString());
             file.mkdirs();
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceMBeanImpl.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceMBeanImpl.java
similarity index 91%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceMBeanImpl.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceMBeanImpl.java
index b83cb83..9cbf90f 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceMBeanImpl.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceMBeanImpl.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal;
+package org.apache.felix.karaf.shell.admin.internal;
 
-import org.apache.felix.karaf.gshell.admin.AdminService;
-import org.apache.felix.karaf.gshell.admin.AdminServiceMBean;
-import org.apache.felix.karaf.gshell.admin.Instance;
+import org.apache.felix.karaf.shell.admin.AdminService;
+import org.apache.felix.karaf.shell.admin.AdminServiceMBean;
+import org.apache.felix.karaf.shell.admin.Instance;
 
 public class AdminServiceMBeanImpl implements AdminServiceMBean {
 
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/InstanceImpl.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/InstanceImpl.java
similarity index 98%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/InstanceImpl.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/InstanceImpl.java
index 873141f..33ad649 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/InstanceImpl.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/InstanceImpl.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal;
+package org.apache.felix.karaf.shell.admin.internal;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -26,7 +26,7 @@
 import java.net.Socket;
 import java.util.Properties;
 
-import org.apache.felix.karaf.gshell.admin.Instance;
+import org.apache.felix.karaf.shell.admin.Instance;
 import org.apache.felix.karaf.jpm.Process;
 import org.apache.felix.karaf.jpm.ProcessBuilderFactory;
 import org.apache.felix.karaf.jpm.impl.ScriptUtils;
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/AdminCommandSupport.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/AdminCommandSupport.java
similarity index 85%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/AdminCommandSupport.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/AdminCommandSupport.java
index 955ddfb..edfa425 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/AdminCommandSupport.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/AdminCommandSupport.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
-import org.apache.felix.karaf.gshell.admin.AdminService;
-import org.apache.felix.karaf.gshell.admin.Instance;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.admin.AdminService;
+import org.apache.felix.karaf.shell.admin.Instance;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Command;
 
 public abstract class AdminCommandSupport extends OsgiCommandSupport {
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ChangePortCommand.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ChangePortCommand.java
similarity index 95%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ChangePortCommand.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ChangePortCommand.java
index 15b1a52..04e0899 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ChangePortCommand.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ChangePortCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ConnectCommand.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ConnectCommand.java
similarity index 96%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ConnectCommand.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ConnectCommand.java
index 35e8158..89576d8 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ConnectCommand.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ConnectCommand.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Argument;
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/CreateCommand.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/CreateCommand.java
similarity index 96%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/CreateCommand.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/CreateCommand.java
index c134984..e039ea1 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/CreateCommand.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/CreateCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Option;
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/DestroyCommand.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/DestroyCommand.java
similarity index 95%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/DestroyCommand.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/DestroyCommand.java
index 2580b27..b6ec474 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/DestroyCommand.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/DestroyCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ListCommand.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ListCommand.java
similarity index 95%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ListCommand.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ListCommand.java
index 2287d9d..f12690a 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/ListCommand.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/ListCommand.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
-import org.apache.felix.karaf.gshell.admin.Instance;
+import org.apache.felix.karaf.shell.admin.Instance;
 
 /**
  * List available instances
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/StartCommand.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/StartCommand.java
similarity index 95%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/StartCommand.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/StartCommand.java
index ea2d7a5..424da04 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/StartCommand.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/StartCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Argument;
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/StopCommand.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/StopCommand.java
similarity index 94%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/StopCommand.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/StopCommand.java
index b15131a..ec3e883 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/commands/StopCommand.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/commands/StopCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.commands;
+package org.apache.felix.karaf.shell.admin.internal.commands;
 
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/completers/InstanceCompleter.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/completers/InstanceCompleter.java
similarity index 82%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/completers/InstanceCompleter.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/completers/InstanceCompleter.java
index cbdb00b..57c8db4 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/completers/InstanceCompleter.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/completers/InstanceCompleter.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.internal.completers;
+package org.apache.felix.karaf.shell.admin.internal.completers;
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.admin.AdminService;
-import org.apache.felix.karaf.gshell.admin.Instance;
-import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.admin.AdminService;
+import org.apache.felix.karaf.shell.admin.Instance;
+import org.apache.felix.karaf.shell.console.completer.StringsCompleter;
+import org.apache.felix.karaf.shell.console.Completer;
 
 /**
  * {@link jline.Completor} for server instance names.
diff --git a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/main/Execute.java
similarity index 86%
rename from karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java
rename to karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/main/Execute.java
index e68e686..997277e 100644
--- a/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java
+++ b/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/main/Execute.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.main;
+package org.apache.felix.karaf.shell.admin.main;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -26,14 +26,14 @@
 import org.apache.felix.gogo.commands.Action;
 import org.apache.felix.gogo.commands.Command;
 import org.apache.felix.gogo.commands.basic.DefaultActionPreparator;
-import org.apache.felix.karaf.gshell.admin.internal.AdminServiceImpl;
-import org.apache.felix.karaf.gshell.admin.internal.commands.AdminCommandSupport;
-import org.apache.felix.karaf.gshell.admin.internal.commands.CreateCommand;
-import org.apache.felix.karaf.gshell.admin.internal.commands.DestroyCommand;
-import org.apache.felix.karaf.gshell.admin.internal.commands.ListCommand;
-import org.apache.felix.karaf.gshell.admin.internal.commands.StartCommand;
-import org.apache.felix.karaf.gshell.admin.internal.commands.StopCommand;
-import org.apache.felix.karaf.gshell.admin.internal.commands.ChangePortCommand;
+import org.apache.felix.karaf.shell.admin.internal.AdminServiceImpl;
+import org.apache.felix.karaf.shell.admin.internal.commands.AdminCommandSupport;
+import org.apache.felix.karaf.shell.admin.internal.commands.CreateCommand;
+import org.apache.felix.karaf.shell.admin.internal.commands.DestroyCommand;
+import org.apache.felix.karaf.shell.admin.internal.commands.ListCommand;
+import org.apache.felix.karaf.shell.admin.internal.commands.StartCommand;
+import org.apache.felix.karaf.shell.admin.internal.commands.StopCommand;
+import org.apache.felix.karaf.shell.admin.internal.commands.ChangePortCommand;
 import org.fusesource.jansi.AnsiConsole;
 
 public class Execute {
diff --git a/karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml b/karaf/shell/admin/src/main/resources/OSGI-INF/blueprint/shell-admin.xml
similarity index 74%
rename from karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml
rename to karaf/shell/admin/src/main/resources/OSGI-INF/blueprint/shell-admin.xml
index 55e852b..c79983f 100644
--- a/karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml
+++ b/karaf/shell/admin/src/main/resources/OSGI-INF/blueprint/shell-admin.xml
@@ -21,14 +21,14 @@
            xmlns:ext="http://geronimo.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
            default-activation="lazy">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="admin/create">
-            <action class="org.apache.felix.karaf.gshell.admin.internal.commands.CreateCommand">
+            <action class="org.apache.felix.karaf.shell.admin.internal.commands.CreateCommand">
                 <property name="adminService" ref="adminService" />
             </action>
         </command>
         <command name="admin/connect">
-            <action class="org.apache.felix.karaf.gshell.admin.internal.commands.ConnectCommand">
+            <action class="org.apache.felix.karaf.shell.admin.internal.commands.ConnectCommand">
                 <property name="adminService" ref="adminService" />
             </action>
             <completers>
@@ -37,12 +37,12 @@
             </completers>
         </command>
         <command name="admin/list">
-            <action class="org.apache.felix.karaf.gshell.admin.internal.commands.ListCommand">
+            <action class="org.apache.felix.karaf.shell.admin.internal.commands.ListCommand">
                 <property name="adminService" ref="adminService" />
             </action>
         </command>
         <command name="admin/start">
-            <action class="org.apache.felix.karaf.gshell.admin.internal.commands.StartCommand">
+            <action class="org.apache.felix.karaf.shell.admin.internal.commands.StartCommand">
                 <property name="adminService" ref="adminService" />
             </action>
             <completers>
@@ -51,7 +51,7 @@
             </completers>
         </command>
         <command name="admin/stop">
-            <action class="org.apache.felix.karaf.gshell.admin.internal.commands.StopCommand">
+            <action class="org.apache.felix.karaf.shell.admin.internal.commands.StopCommand">
                 <property name="adminService" ref="adminService" />
             </action>
             <completers>
@@ -60,7 +60,7 @@
             </completers>
         </command>
         <command name="admin/destroy">
-            <action class="org.apache.felix.karaf.gshell.admin.internal.commands.DestroyCommand">
+            <action class="org.apache.felix.karaf.shell.admin.internal.commands.DestroyCommand">
                 <property name="adminService" ref="adminService" />
             </action>
             <completers>
@@ -69,7 +69,7 @@
             </completers>
         </command>
         <command name="admin/change-port">
-            <action class="org.apache.felix.karaf.gshell.admin.internal.commands.ChangePortCommand">
+            <action class="org.apache.felix.karaf.shell.admin.internal.commands.ChangePortCommand">
                 <property name="adminService" ref="adminService" />
             </action>
             <completers>
@@ -79,15 +79,15 @@
         </command>
     </command-bundle>
 
-    <bean id="adminService" class="org.apache.felix.karaf.gshell.admin.internal.AdminServiceImpl" init-method="init">
+    <bean id="adminService" class="org.apache.felix.karaf.shell.admin.internal.AdminServiceImpl" init-method="init">
         <property name="storageLocation" value="${karaf.home}/instances" />
     </bean>
 
-    <bean id="instanceCompleter" class="org.apache.felix.karaf.gshell.admin.internal.completers.InstanceCompleter">
+    <bean id="instanceCompleter" class="org.apache.felix.karaf.shell.admin.internal.completers.InstanceCompleter">
         <property name="adminService" ref="adminService" />
     </bean>
     
-    <service ref="adminService" interface="org.apache.felix.karaf.gshell.admin.AdminService" />
+    <service ref="adminService" interface="org.apache.felix.karaf.shell.admin.AdminService" />
 
     <!-- Allow the use of system properties -->
     <ext:property-placeholder />
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/unix/start.sh b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/unix/start.sh
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/unix/start.sh
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/unix/start.sh
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/destroy.vbs b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/destroy.vbs
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/destroy.vbs
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/destroy.vbs
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/running.vbs b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/running.vbs
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/running.vbs
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/running.vbs
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/start.vbs b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/start.vbs
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/start.vbs
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/jpm/impl/windows/start.vbs
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/start b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/start
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/start.bat b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start.bat
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/start.bat
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start.bat
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/stop b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/stop
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/stop.bat b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop.bat
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/bin/stop.bat
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop.bat
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/etc/org.apache.felix.karaf.shell.cfg b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/etc/org.apache.felix.karaf.shell.cfg
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/etc/org.apache.felix.karaf.shell.cfg
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/etc/org.apache.felix.karaf.shell.cfg
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/etc/org.ops4j.pax.url.mvn.cfg b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/etc/org.ops4j.pax.url.mvn.cfg
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/etc/org.ops4j.pax.url.mvn.cfg
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/etc/org.ops4j.pax.url.mvn.cfg
diff --git a/karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/etc/system.properties b/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/etc/system.properties
similarity index 100%
rename from karaf/gshell/gshell-admin/src/main/resources/org/apache/felix/karaf/gshell/admin/etc/system.properties
rename to karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/etc/system.properties
diff --git a/karaf/gshell/gshell-admin/src/test/java/org/apache/felix/karaf/jpm/MainTest.java b/karaf/shell/admin/src/test/java/org/apache/felix/karaf/jpm/MainTest.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/test/java/org/apache/felix/karaf/jpm/MainTest.java
rename to karaf/shell/admin/src/test/java/org/apache/felix/karaf/jpm/MainTest.java
diff --git a/karaf/gshell/gshell-admin/src/test/java/org/apache/felix/karaf/jpm/ProcessTest.java b/karaf/shell/admin/src/test/java/org/apache/felix/karaf/jpm/ProcessTest.java
similarity index 100%
rename from karaf/gshell/gshell-admin/src/test/java/org/apache/felix/karaf/jpm/ProcessTest.java
rename to karaf/shell/admin/src/test/java/org/apache/felix/karaf/jpm/ProcessTest.java
diff --git a/karaf/gshell/gshell-admin/src/test/java/org/apache/felix/karaf/gshell/admin/main/ExecuteTest.java b/karaf/shell/admin/src/test/java/org/apache/felix/karaf/shell/admin/main/ExecuteTest.java
similarity index 95%
rename from karaf/gshell/gshell-admin/src/test/java/org/apache/felix/karaf/gshell/admin/main/ExecuteTest.java
rename to karaf/shell/admin/src/test/java/org/apache/felix/karaf/shell/admin/main/ExecuteTest.java
index 06cee7e..7e4fc1a 100644
--- a/karaf/gshell/gshell-admin/src/test/java/org/apache/felix/karaf/gshell/admin/main/ExecuteTest.java
+++ b/karaf/shell/admin/src/test/java/org/apache/felix/karaf/shell/admin/main/ExecuteTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.admin.main;
+package org.apache.felix.karaf.shell.admin.main;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -28,9 +28,9 @@
 
 import junit.framework.TestCase;
 
-import org.apache.felix.karaf.gshell.admin.AdminService;
-import org.apache.felix.karaf.gshell.admin.internal.AdminServiceImpl;
-import org.apache.felix.karaf.gshell.admin.internal.commands.AdminCommandSupport;
+import org.apache.felix.karaf.shell.admin.AdminService;
+import org.apache.felix.karaf.shell.admin.internal.AdminServiceImpl;
+import org.apache.felix.karaf.shell.admin.internal.commands.AdminCommandSupport;
 import org.easymock.IAnswer;
 import org.easymock.classextension.EasyMock;
 
diff --git a/karaf/gshell/gshell-commands/pom.xml b/karaf/shell/commands/pom.xml
similarity index 83%
rename from karaf/gshell/gshell-commands/pom.xml
rename to karaf/shell/commands/pom.xml
index 83ba49d..d703da1 100644
--- a/karaf/gshell/gshell-commands/pom.xml
+++ b/karaf/shell/commands/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.commands</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.commands</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell Various Commands</name>
+    <name>Apache Felix Karaf :: Shell Various Commands</name>
 
     <description>
         Provides SSH support to the console
@@ -39,8 +39,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
     </dependencies>
 
@@ -64,7 +64,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <_versionpolicy>${bnd.version.policy}</_versionpolicy>
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/CatAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/CatAction.java
similarity index 96%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/CatAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/CatAction.java
index 3462320..e4912be 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/CatAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/CatAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.io.IOException;
 import java.io.BufferedReader;
@@ -27,7 +27,7 @@
 import java.net.MalformedURLException;
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/EchoAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/EchoAction.java
similarity index 89%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/EchoAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/EchoAction.java
index 585b0a5..3049683 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/EchoAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/EchoAction.java
@@ -1,11 +1,11 @@
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.util.List;
 
 import org.apache.felix.gogo.commands.Command;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Argument;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 
 @Command(scope = "shell", name = "echo", description="Echo or print arguments to STDOUT")
 public class EchoAction extends OsgiCommandSupport
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/ExecuteAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/ExecuteAction.java
similarity index 90%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/ExecuteAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/ExecuteAction.java
index 4b7643f..794b24d 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/ExecuteAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/ExecuteAction.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.util.List;
 
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
-import org.apache.felix.karaf.gshell.commands.utils.PumpStreamHandler;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.commands.utils.PumpStreamHandler;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 
 /**
  * Execute system processes.
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/GrepAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java
similarity index 97%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/GrepAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java
index 85c3c77..9c90036 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/GrepAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.io.IOException;
 import java.io.Reader;
 import java.io.InputStreamReader;
 import java.util.regex.Pattern;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/HistoryAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/HistoryAction.java
similarity index 94%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/HistoryAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/HistoryAction.java
index c7607f1..39e3110 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/HistoryAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/HistoryAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 /**
  * TODO
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/InfoAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/InfoAction.java
similarity index 97%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/InfoAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/InfoAction.java
index 68264b0..1b176d4 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/InfoAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/InfoAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.util.Locale;
 import java.text.DecimalFormatSymbols;
@@ -29,7 +29,7 @@
 import java.lang.management.GarbageCollectorMXBean;
 import java.lang.reflect.Method;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Command;
 import org.fusesource.jansi.Ansi;
 
@@ -50,7 +50,7 @@
         ClassLoadingMXBean cl = ManagementFactory.getClassLoadingMXBean();
 
         //
-        // print ServiceMix informations
+        // print Karaf informations
         //
         maxNameLen = 25;
         System.out.println("Karaf");
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/JavaAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/JavaAction.java
similarity index 95%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/JavaAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/JavaAction.java
index 693086b..c035ca2 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/JavaAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/JavaAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.lang.reflect.Method;
 import java.util.List;
@@ -22,7 +22,7 @@
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.apache.felix.gogo.commands.Option;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 
 /**
  * Execute a Java standard application.
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/MoreAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/MoreAction.java
similarity index 73%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/MoreAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/MoreAction.java
index d5d0e62..5f0b481 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/MoreAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/MoreAction.java
@@ -1,4 +1,4 @@
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import org.apache.felix.gogo.commands.Command;
 
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/PrintfAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/PrintfAction.java
similarity index 92%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/PrintfAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/PrintfAction.java
index 10bb546..889c750 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/PrintfAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/PrintfAction.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.util.Collection;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SleepAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SleepAction.java
similarity index 92%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SleepAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SleepAction.java
index ad8b831..69a09b6 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SleepAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SleepAction.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SortAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SortAction.java
similarity index 98%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SortAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SortAction.java
index d610fce..8cd9918 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SortAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SortAction.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -37,7 +37,7 @@
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.apache.felix.gogo.commands.Option;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 
 /**
  * Sort lines of text
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SourceAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SourceAction.java
similarity index 94%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SourceAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SourceAction.java
index 5c827e4..82b482d 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/SourceAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/SourceAction.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 /**
  * TODO
diff --git a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/TacAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/TacAction.java
similarity index 95%
rename from karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/TacAction.java
rename to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/TacAction.java
index 77432d6..646f4e7 100644
--- a/karaf/gshell/gshell-commands/src/main/java/org/apache/felix/karaf/gshell/commands/TacAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/TacAction.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.io.StringWriter;
 import java.io.BufferedReader;
@@ -27,7 +27,7 @@
 import java.io.OutputStreamWriter;
 import java.io.Writer;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Command;
 import org.apache.felix.gogo.commands.Option;
 
diff --git a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/PumpStreamHandler.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/PumpStreamHandler.java
similarity index 98%
copy from karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/PumpStreamHandler.java
copy to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/PumpStreamHandler.java
index 37c5769..ba0d839 100644
--- a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/PumpStreamHandler.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/PumpStreamHandler.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.wrapper;
+package org.apache.felix.karaf.shell.commands.utils;
 
 import java.io.InputStream;
 import java.io.OutputStream;
diff --git a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/StreamPumper.java
similarity index 98%
copy from karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java
copy to karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/StreamPumper.java
index 58aa8e5..1cb35b7 100644
--- a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/StreamPumper.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.wrapper;
+package org.apache.felix.karaf.shell.commands.utils;
 
 import java.io.InputStream;
 import java.io.OutputStream;
diff --git a/karaf/gshell/gshell-commands/src/main/resources/OSGI-INF/blueprint/gshell-commands.xml b/karaf/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
similarity index 60%
rename from karaf/gshell/gshell-commands/src/main/resources/OSGI-INF/blueprint/gshell-commands.xml
rename to karaf/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
index a8f01e4..ea44666 100644
--- a/karaf/gshell/gshell-commands/src/main/resources/OSGI-INF/blueprint/gshell-commands.xml
+++ b/karaf/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
@@ -19,51 +19,51 @@
 -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="shell/cat">
-            <action class="org.apache.felix.karaf.gshell.commands.CatAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.CatAction"/>
         </command>
         <command name="shell/echo">
-            <action class="org.apache.felix.karaf.gshell.commands.EchoAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.EchoAction"/>
         </command>
         <command name="shell/exec">
-            <action class="org.apache.felix.karaf.gshell.commands.ExecuteAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.ExecuteAction"/>
         </command>
         <command name="shell/grep">
-            <action class="org.apache.felix.karaf.gshell.commands.GrepAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.GrepAction"/>
         </command>
         <!--
         <command name="shell/history">
-            <action class="org.apache.felix.karaf.gshell.commands.HistoryAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.HistoryAction"/>
         </command>
         -->
         <command name="shell/info">
-            <action class="org.apache.felix.karaf.gshell.commands.InfoAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.InfoAction"/>
         </command>
         <command name="shell/java">
-            <action class="org.apache.felix.karaf.gshell.commands.JavaAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.JavaAction"/>
         </command>
         <!--
         <command name="shell/more">
-            <action class="org.apache.felix.karaf.gshell.commands.MoreAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.MoreAction"/>
         </command>
         -->
         <command name="shell/printf">
-            <action class="org.apache.felix.karaf.gshell.commands.PrintfAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.PrintfAction"/>
         </command>
         <command name="shell/sleep">
-            <action class="org.apache.felix.karaf.gshell.commands.SleepAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.SleepAction"/>
         </command>
         <command name="shell/sort">
-            <action class="org.apache.felix.karaf.gshell.commands.SortAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.SortAction"/>
         </command>
         <!--
         <command name="shell/source">
-            <action class="org.apache.felix.karaf.gshell.commands.SourceAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.SourceAction"/>
         </command>
         -->
         <command name="shell/tac">
-            <action class="org.apache.felix.karaf.gshell.commands.TacAction"/>
+            <action class="org.apache.felix.karaf.shell.commands.TacAction"/>
         </command>
     </command-bundle>
 
diff --git a/karaf/gshell/gshell-commands/src/test/java/org/apache/felix/karaf/gshell/commands/SortTest.java b/karaf/shell/commands/src/test/java/org/apache/felix/karaf/shell/commands/SortTest.java
similarity index 97%
rename from karaf/gshell/gshell-commands/src/test/java/org/apache/felix/karaf/gshell/commands/SortTest.java
rename to karaf/shell/commands/src/test/java/org/apache/felix/karaf/shell/commands/SortTest.java
index 6ca9972..8e9d72f 100644
--- a/karaf/gshell/gshell-commands/src/test/java/org/apache/felix/karaf/gshell/commands/SortTest.java
+++ b/karaf/shell/commands/src/test/java/org/apache/felix/karaf/shell/commands/SortTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.commands;
+package org.apache.felix.karaf.shell.commands;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/karaf/gshell/gshell-config/pom.xml b/karaf/shell/config/pom.xml
similarity index 83%
rename from karaf/gshell/gshell-config/pom.xml
rename to karaf/shell/config/pom.xml
index 7b8dbd2..cf5efc5 100644
--- a/karaf/gshell/gshell-config/pom.xml
+++ b/karaf/shell/config/pom.xml
@@ -22,25 +22,25 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.config</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.config</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell ConfigAdmin Commands</name>
+    <name>Apache Felix Karaf :: Shell ConfigAdmin Commands</name>
 
     <description>
-        Provides the ConfigAdmin GShell commands
+        Provides the ConfigAdmin Shell commands
     </description>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
@@ -74,7 +74,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>!*</Private-Package>
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/CancelCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/CancelCommand.java
similarity index 96%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/CancelCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/CancelCommand.java
index 79a4643..15e31ca 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/CancelCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/CancelCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/ConfigCommandSupport.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/ConfigCommandSupport.java
similarity index 95%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/ConfigCommandSupport.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/ConfigCommandSupport.java
index 8ab53d1..9d945b7 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/ConfigCommandSupport.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/ConfigCommandSupport.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.cm.ConfigurationAdmin;
 
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/EditCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/EditCommand.java
similarity index 97%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/EditCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/EditCommand.java
index b458b2b..7a9e934 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/EditCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/EditCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 import java.util.Properties;
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/ListCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/ListCommand.java
similarity index 97%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/ListCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/ListCommand.java
index 1eac7dd..c4ca570 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/ListCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/ListCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 import java.util.Enumeration;
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropAppendCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropAppendCommand.java
similarity index 97%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropAppendCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropAppendCommand.java
index 7cbc6f4..98762c6 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropAppendCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropAppendCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropDelCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropDelCommand.java
similarity index 96%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropDelCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropDelCommand.java
index 753865b..428ab0c 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropDelCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropDelCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropListCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropListCommand.java
similarity index 96%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropListCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropListCommand.java
index d1eec28..faeb701 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropListCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropListCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 import java.util.Enumeration;
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropSetCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropSetCommand.java
similarity index 96%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropSetCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropSetCommand.java
index 0f98861..e617d1b 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/PropSetCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/PropSetCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/UpdateCommand.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/UpdateCommand.java
similarity index 96%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/UpdateCommand.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/UpdateCommand.java
index 535b3ad..f32c053 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/UpdateCommand.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/UpdateCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import java.util.Dictionary;
 
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/completers/ConfigurationCompleter.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/completers/ConfigurationCompleter.java
similarity index 93%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/completers/ConfigurationCompleter.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/completers/ConfigurationCompleter.java
index 8ee9ca8..c366f1e 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/completers/ConfigurationCompleter.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/completers/ConfigurationCompleter.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.config.completers;
+package org.apache.felix.karaf.shell.config.completers;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.completer.StringsCompleter;
+import org.apache.felix.karaf.shell.console.Completer;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.cm.ConfigurationEvent;
diff --git a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/completers/ConfigurationPropertyCompleter.java b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/completers/ConfigurationPropertyCompleter.java
similarity index 93%
rename from karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/completers/ConfigurationPropertyCompleter.java
rename to karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/completers/ConfigurationPropertyCompleter.java
index 48472ba..d74b524 100644
--- a/karaf/gshell/gshell-config/src/main/java/org/apache/felix/karaf/gshell/config/completers/ConfigurationPropertyCompleter.java
+++ b/karaf/shell/config/src/main/java/org/apache/felix/karaf/shell/config/completers/ConfigurationPropertyCompleter.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.config.completers;
+package org.apache.felix.karaf.shell.config.completers;
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.Completer;
 
 /**
  * {@link jline.Completor} for Configuration Admin properties.
diff --git a/karaf/gshell/gshell-config/src/main/resources/OSGI-INF/blueprint/gshell-config.xml b/karaf/shell/config/src/main/resources/OSGI-INF/blueprint/shell-config.xml
similarity index 71%
rename from karaf/gshell/gshell-config/src/main/resources/OSGI-INF/blueprint/gshell-config.xml
rename to karaf/shell/config/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index 5239584..1c04063 100644
--- a/karaf/gshell/gshell-config/src/main/resources/OSGI-INF/blueprint/gshell-config.xml
+++ b/karaf/shell/config/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -20,55 +20,55 @@
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
            default-activation="lazy">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="config/cancel">
-            <action class="org.apache.felix.karaf.gshell.config.CancelCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.CancelCommand"/>
         </command>
         <command name="config/edit">
-            <action class="org.apache.felix.karaf.gshell.config.EditCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.EditCommand"/>
             <completers>
                 <ref component-id="configCompleter" />
                 <null/>
             </completers>
         </command>
         <command name="config/list">
-            <action class="org.apache.felix.karaf.gshell.config.ListCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.ListCommand"/>
         </command>
         <command name="config/propdel">
-            <action class="org.apache.felix.karaf.gshell.config.PropDelCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.PropDelCommand"/>
             <completers>
                 <ref component-id="configPropertyCompleter" />
                 <null/>
             </completers>
         </command>
         <command name="config/proplist">
-            <action class="org.apache.felix.karaf.gshell.config.PropListCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.PropListCommand"/>
         </command>
         <command name="config/propset">
-            <action class="org.apache.felix.karaf.gshell.config.PropSetCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.PropSetCommand"/>
             <completers>
                 <ref component-id="configPropertyCompleter" />
                 <null/>
             </completers>
         </command>
         <command name="config/propappend">
-            <action class="org.apache.felix.karaf.gshell.config.PropAppendCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.PropAppendCommand"/>
             <completers>
                 <ref component-id="configPropertyCompleter" />
                 <null/>
             </completers>
         </command>
         <command name="config/update">
-            <action class="org.apache.felix.karaf.gshell.config.UpdateCommand"/>
+            <action class="org.apache.felix.karaf.shell.config.UpdateCommand"/>
         </command>
     </command-bundle>
 
-    <bean id="configCompleter" class="org.apache.felix.karaf.gshell.config.completers.ConfigurationCompleter" init-method="init">
+    <bean id="configCompleter" class="org.apache.felix.karaf.shell.config.completers.ConfigurationCompleter" init-method="init">
         <property name="admin" ref="configAdmin"/>
     </bean>
     <service ref="configCompleter" interface="org.osgi.service.cm.ConfigurationListener" />
 
-    <bean id="configPropertyCompleter" class="org.apache.felix.karaf.gshell.config.completers.ConfigurationPropertyCompleter" />
+    <bean id="configPropertyCompleter" class="org.apache.felix.karaf.shell.config.completers.ConfigurationPropertyCompleter" />
 
     <reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin"  />
 
diff --git a/karaf/gshell/gshell-config/src/test/java/org/apache/felix/karaf/gshell/config/EditCommandTest.java b/karaf/shell/config/src/test/java/org/apache/felix/karaf/shell/config/EditCommandTest.java
similarity index 98%
rename from karaf/gshell/gshell-config/src/test/java/org/apache/felix/karaf/gshell/config/EditCommandTest.java
rename to karaf/shell/config/src/test/java/org/apache/felix/karaf/shell/config/EditCommandTest.java
index e01dbb5..f4787c1 100644
--- a/karaf/gshell/gshell-config/src/test/java/org/apache/felix/karaf/gshell/config/EditCommandTest.java
+++ b/karaf/shell/config/src/test/java/org/apache/felix/karaf/shell/config/EditCommandTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.config;
+package org.apache.felix.karaf.shell.config;
 
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
diff --git a/karaf/gshell/gshell-console/pom.xml b/karaf/shell/console/pom.xml
similarity index 90%
rename from karaf/gshell/gshell-console/pom.xml
rename to karaf/shell/console/pom.xml
index 64da3dc..902b38f 100644
--- a/karaf/gshell/gshell-console/pom.xml
+++ b/karaf/shell/console/pom.xml
@@ -22,19 +22,19 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.console</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell Console</name>
+    <name>Apache Felix Karaf :: Shell Console</name>
 
     <description>
-        Provides the OSGi GShell integration
+        Provides the OSGi Shell integration
     </description>
 
     <dependencies>
@@ -102,7 +102,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Import-Package>
                             !javax.swing,
-                            !org.apache.felix.karaf.gshell.console*,
+                            !org.apache.felix.karaf.shell.console*,
                             !org.fusesource.jansi*,
                             !org.apache.felix.gogo.commands*,
                             !jline,
@@ -112,7 +112,7 @@
                         </Import-Package>
                         <Export-Package>
                             org.apache.felix.gogo.commands*;version=${felix.gogo.version},
-                            org.apache.felix.karaf.gshell.console*;version=${pom.version},
+                            org.apache.felix.karaf.shell.console*;version=${pom.version},
                             org.fusesource.jansi;version=${jansi.version},
                             jline;version=${jline.version},
 
diff --git a/karaf/gshell/gshell-console/src/main/filtered-resources/org/apache/felix/karaf/gshell/console/branding.properties b/karaf/shell/console/src/main/filtered-resources/org/apache/felix/karaf/shell/console/branding.properties
similarity index 100%
rename from karaf/gshell/gshell-console/src/main/filtered-resources/org/apache/felix/karaf/gshell/console/branding.properties
rename to karaf/shell/console/src/main/filtered-resources/org/apache/felix/karaf/shell/console/branding.properties
diff --git a/karaf/gshell/gshell-console/src/main/java/jline/AnsiWindowsTerminal.java b/karaf/shell/console/src/main/java/jline/AnsiWindowsTerminal.java
similarity index 100%
rename from karaf/gshell/gshell-console/src/main/java/jline/AnsiWindowsTerminal.java
rename to karaf/shell/console/src/main/java/jline/AnsiWindowsTerminal.java
diff --git a/karaf/gshell/gshell-console/src/main/java/jline/NoInterruptUnixTerminal.java b/karaf/shell/console/src/main/java/jline/NoInterruptUnixTerminal.java
similarity index 100%
rename from karaf/gshell/gshell-console/src/main/java/jline/NoInterruptUnixTerminal.java
rename to karaf/shell/console/src/main/java/jline/NoInterruptUnixTerminal.java
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/BlueprintContainerAware.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/BlueprintContainerAware.java
similarity index 95%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/BlueprintContainerAware.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/BlueprintContainerAware.java
index 38ec43f..11b1b68 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/BlueprintContainerAware.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/BlueprintContainerAware.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console;
+package org.apache.felix.karaf.shell.console;
 
 import org.osgi.service.blueprint.container.BlueprintContainer;
 
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/BundleContextAware.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/BundleContextAware.java
similarity index 94%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/BundleContextAware.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/BundleContextAware.java
index 50c1f21..c5fbe40 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/BundleContextAware.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/BundleContextAware.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console;
+package org.apache.felix.karaf.shell.console;
 
 import org.osgi.framework.BundleContext;
 
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/CompletableFunction.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/CompletableFunction.java
similarity index 77%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/CompletableFunction.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/CompletableFunction.java
index 077095b..3b22b68 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/CompletableFunction.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/CompletableFunction.java
@@ -1,4 +1,4 @@
-package org.apache.felix.karaf.gshell.console;
+package org.apache.felix.karaf.shell.console;
 
 import java.util.List;
 
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/Completer.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/Completer.java
similarity index 94%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/Completer.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/Completer.java
index 7bc3543..b72ba4b 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/Completer.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/Completer.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console;
+package org.apache.felix.karaf.shell.console;
 
 import java.util.List;
 
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/OsgiCommandSupport.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/OsgiCommandSupport.java
similarity index 97%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/OsgiCommandSupport.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/OsgiCommandSupport.java
index 983f7e2..a992893 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/OsgiCommandSupport.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/OsgiCommandSupport.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console;
+package org.apache.felix.karaf.shell.console;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/BlueprintCommand.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/BlueprintCommand.java
similarity index 95%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/BlueprintCommand.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/BlueprintCommand.java
index 85b4fe4..80e3b4c 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/BlueprintCommand.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/BlueprintCommand.java
@@ -15,7 +15,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.felix.karaf.gshell.console.commands;
+package org.apache.felix.karaf.shell.console.commands;
 
 import java.lang.reflect.Type;
 import java.util.List;
@@ -31,10 +31,10 @@
 import org.apache.felix.gogo.commands.basic.AbstractCommand;
 import org.apache.felix.gogo.commands.basic.ActionPreparator;
 import org.apache.felix.gogo.commands.basic.DefaultActionPreparator;
-import org.apache.felix.karaf.gshell.console.BlueprintContainerAware;
-import org.apache.felix.karaf.gshell.console.BundleContextAware;
-import org.apache.felix.karaf.gshell.console.CompletableFunction;
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.BlueprintContainerAware;
+import org.apache.felix.karaf.shell.console.BundleContextAware;
+import org.apache.felix.karaf.shell.console.CompletableFunction;
+import org.apache.felix.karaf.shell.console.Completer;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.blueprint.container.BlueprintContainer;
 import org.osgi.service.blueprint.container.Converter;
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/GenericType.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/GenericType.java
similarity index 98%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/GenericType.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/GenericType.java
index 9cb54f1..c417b86 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/GenericType.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/GenericType.java
@@ -15,7 +15,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.felix.karaf.gshell.console.commands;
+package org.apache.felix.karaf.shell.console.commands;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.GenericArrayType;
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/NamespaceHandler.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/NamespaceHandler.java
similarity index 97%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/NamespaceHandler.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/NamespaceHandler.java
index 1e4e1c7..a788fa2 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/commands/NamespaceHandler.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/commands/NamespaceHandler.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console.commands;
+package org.apache.felix.karaf.shell.console.commands;
 
 import java.net.URL;
 import java.util.List;
@@ -32,7 +32,7 @@
 import org.apache.geronimo.blueprint.mutable.MutableValueMetadata;
 import org.apache.geronimo.blueprint.mutable.MutableRefMetadata;
 import org.apache.geronimo.blueprint.mutable.MutableCollectionMetadata;
-import org.apache.felix.karaf.gshell.console.CompletableFunction;
+import org.apache.felix.karaf.shell.console.CompletableFunction;
 import org.osgi.service.blueprint.reflect.BeanArgument;
 import org.osgi.service.blueprint.reflect.BeanProperty;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
@@ -79,7 +79,7 @@
     private int nameCounter = 0;
 
     public URL getSchemaLocation(String namespace) {
-        return getClass().getResource("karaf-gshell.xsd");
+        return getClass().getResource("karaf-shell.xsd");
     }
 
     public ComponentMetadata decorate(Node node, ComponentMetadata component, ParserContext context) {
@@ -259,7 +259,7 @@
     }
 
     public synchronized String getName() {
-        return "gshell-" + ++nameCounter;
+        return "shell-" + ++nameCounter;
     }
 
     private static boolean nodeNameEquals(Node node, String name) {
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/AggregateCompleter.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/AggregateCompleter.java
similarity index 95%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/AggregateCompleter.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/AggregateCompleter.java
index 7cd1364..d858ca2 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/AggregateCompleter.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/AggregateCompleter.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.console.completer;
+package org.apache.felix.karaf.shell.console.completer;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Collection;
 
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.Completer;
 
 /**
  * Completer which contains multipule completers and aggregates them together.
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/ArgumentCompleter.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/ArgumentCompleter.java
similarity index 98%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/ArgumentCompleter.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/ArgumentCompleter.java
index 4464928..1e655d8 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/ArgumentCompleter.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/ArgumentCompleter.java
@@ -4,11 +4,11 @@
  * This software is distributable under the BSD license. See the terms of the
  * BSD license in the documentation provided with this software.
  */
-package org.apache.felix.karaf.gshell.console.completer;
+package org.apache.felix.karaf.shell.console.completer;
 
 import java.util.*;
 
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.Completer;
 
 public class ArgumentCompleter implements Completer {
     final Completer[] completers;
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/CommandsCompleter.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/CommandsCompleter.java
similarity index 93%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/CommandsCompleter.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/CommandsCompleter.java
index 48143fe..030d6ef 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/CommandsCompleter.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/CommandsCompleter.java
@@ -1,4 +1,4 @@
-package org.apache.felix.karaf.gshell.console.completer;
+package org.apache.felix.karaf.shell.console.completer;
 
 import java.util.List;
 import java.util.Map;
@@ -8,8 +8,8 @@
 import java.util.Collections;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.felix.karaf.gshell.console.Completer;
-import org.apache.felix.karaf.gshell.console.CompletableFunction;
+import org.apache.felix.karaf.shell.console.Completer;
+import org.apache.felix.karaf.shell.console.CompletableFunction;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.command.CommandProcessor;
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/NullCompleter.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/NullCompleter.java
similarity index 69%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/NullCompleter.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/NullCompleter.java
index fa80f40..ec46ddc 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/NullCompleter.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/NullCompleter.java
@@ -1,8 +1,8 @@
-package org.apache.felix.karaf.gshell.console.completer;
+package org.apache.felix.karaf.shell.console.completer;
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.Completer;
 
 public class NullCompleter implements Completer {
 
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/StringsCompleter.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/StringsCompleter.java
similarity index 94%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/StringsCompleter.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/StringsCompleter.java
index 42391c8..6c9629e 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/completer/StringsCompleter.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/completer/StringsCompleter.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console.completer;
+package org.apache.felix.karaf.shell.console.completer;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -24,7 +24,7 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.Completer;
 
 /**
  * Completer for a set of strings.
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/CompleterAsCompletor.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/CompleterAsCompletor.java
similarity index 83%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/CompleterAsCompletor.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/CompleterAsCompletor.java
index db6a3ac..e4c61ab 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/CompleterAsCompletor.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/CompleterAsCompletor.java
@@ -1,9 +1,9 @@
-package org.apache.felix.karaf.gshell.console.jline;
+package org.apache.felix.karaf.shell.console.jline;
 
 import java.util.List;
 
 import jline.Completor;
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.Completer;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/Console.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java
similarity index 97%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/Console.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java
index cc13940..2929ec7 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/Console.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console.jline;
+package org.apache.felix.karaf.shell.console.jline;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -34,7 +34,7 @@
 import jline.UnsupportedTerminal;
 import jline.WindowsTerminal;
 import jline.AnsiWindowsTerminal;
-import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.shell.console.Completer;
 import org.osgi.service.command.CommandProcessor;
 import org.osgi.service.command.CommandSession;
 import org.osgi.service.command.Converter;
@@ -138,7 +138,7 @@
 
     protected void welcome() {
         Properties props = new Properties();
-        loadProps(props, "/org/apache/felix/karaf/gshell/console/branding.properties");
+        loadProps(props, "/org/apache/felix/karaf/shell/console/branding.properties");
         loadProps(props, "/org/apache/felix/karaf/branding/branding.properties");
         String welcome = props.getProperty("welcome");
         if (welcome != null && welcome.length() > 0) {
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/ConsoleFactory.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/ConsoleFactory.java
similarity index 95%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/ConsoleFactory.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/ConsoleFactory.java
index 7cff958..75085a8 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/ConsoleFactory.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/ConsoleFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.console.jline;
+package org.apache.felix.karaf.shell.console.jline;
 
 import java.io.InputStream;
 import java.io.PrintStream;
@@ -24,8 +24,8 @@
 import java.lang.reflect.Method;
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.Completer;
-import org.apache.felix.karaf.gshell.console.completer.AggregateCompleter;
+import org.apache.felix.karaf.shell.console.Completer;
+import org.apache.felix.karaf.shell.console.completer.AggregateCompleter;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.command.CommandProcessor;
 import org.osgi.service.command.CommandSession;
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/TerminalFactory.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/TerminalFactory.java
similarity index 95%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/TerminalFactory.java
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/TerminalFactory.java
index 04da2f5..32504ac 100644
--- a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/TerminalFactory.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/TerminalFactory.java
@@ -1,4 +1,4 @@
-package org.apache.felix.karaf.gshell.console.jline;
+package org.apache.felix.karaf.shell.console.jline;
 
 import jline.Terminal;
 import jline.UnsupportedTerminal;
diff --git a/karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/keybindings.properties b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/keybindings.properties
similarity index 100%
rename from karaf/gshell/gshell-console/src/main/java/org/apache/felix/karaf/gshell/console/jline/keybindings.properties
rename to karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/keybindings.properties
diff --git a/karaf/gshell/gshell-console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml b/karaf/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
similarity index 88%
rename from karaf/gshell/gshell-console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
rename to karaf/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
index 4182dae..9a3cd05 100644
--- a/karaf/gshell/gshell-console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
+++ b/karaf/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
@@ -35,11 +35,11 @@
                             unbind-method="unregister"/>
     </reference-list>
 
-    <bean id="commandCompleter" class="org.apache.felix.karaf.gshell.console.completer.CommandsCompleter">
+    <bean id="commandCompleter" class="org.apache.felix.karaf.shell.console.completer.CommandsCompleter">
         <property name="bundleContext" ref="blueprintBundleContext"/>
     </bean>
 
-    <bean id="consoleFactory" class="org.apache.felix.karaf.gshell.console.jline.ConsoleFactory">
+    <bean id="consoleFactory" class="org.apache.felix.karaf.shell.console.jline.ConsoleFactory">
         <property name="start" value="$[karaf.startLocalConsole]"/>
         <property name="bundleContext" ref="blueprintBundleContext"/>
         <property name="completers">
@@ -54,7 +54,7 @@
           factory-ref="terminalFactory"
           factory-method="getTerminal"/>
 
-    <bean id="terminalFactory" class="org.apache.felix.karaf.gshell.console.jline.TerminalFactory"
+    <bean id="terminalFactory" class="org.apache.felix.karaf.shell.console.jline.TerminalFactory"
           init-method="init"
           destroy-method="destroy"/>
 
diff --git a/karaf/gshell/gshell-console/src/main/resources/OSGI-INF/blueprint/gshell-namespacehandler.xml b/karaf/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml
similarity index 88%
rename from karaf/gshell/gshell-console/src/main/resources/OSGI-INF/blueprint/gshell-namespacehandler.xml
rename to karaf/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml
index 1c0c01a..2351bc9 100644
--- a/karaf/gshell/gshell-console/src/main/resources/OSGI-INF/blueprint/gshell-namespacehandler.xml
+++ b/karaf/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml
@@ -21,9 +21,9 @@
 
     <service interface="org.apache.geronimo.blueprint.NamespaceHandler">
         <service-properties>
-            <entry key="osgi.service.blueprint.namespace" value="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0"/>
+            <entry key="osgi.service.blueprint.namespace" value="http://felix.apache.org/karaf/xmlns/shell/v1.0.0"/>
         </service-properties>
-        <bean class="org.apache.felix.karaf.gshell.console.commands.NamespaceHandler"/>
+        <bean class="org.apache.felix.karaf.shell.console.commands.NamespaceHandler"/>
     </service>
 
 </blueprint>
diff --git a/karaf/gshell/gshell-console/src/main/resources/org/apache/felix/karaf/gshell/console/commands/karaf-gshell.xsd b/karaf/shell/console/src/main/resources/org/apache/felix/karaf/shell/console/commands/karaf-shell.xsd
similarity index 97%
rename from karaf/gshell/gshell-console/src/main/resources/org/apache/felix/karaf/gshell/console/commands/karaf-gshell.xsd
rename to karaf/shell/console/src/main/resources/org/apache/felix/karaf/shell/console/commands/karaf-shell.xsd
index a848db1..7230804 100644
--- a/karaf/gshell/gshell-console/src/main/resources/org/apache/felix/karaf/gshell/console/commands/karaf-gshell.xsd
+++ b/karaf/shell/console/src/main/resources/org/apache/felix/karaf/shell/console/commands/karaf-shell.xsd
@@ -20,10 +20,10 @@
 
 <!-- $Rev: 699828 $ $Date: 2008-09-28 16:35:27 +0200 (Sun, 28 Sep 2008) $ -->
 
-<xsd:schema xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0"
+<xsd:schema xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:bp="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-        targetNamespace="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0"
+        targetNamespace="http://felix.apache.org/karaf/xmlns/shell/v1.0.0"
         elementFormDefault="qualified"
         attributeFormDefault="unqualified">
 
diff --git a/karaf/gshell/gshell-log/pom.xml b/karaf/shell/log/pom.xml
similarity index 85%
rename from karaf/gshell/gshell-log/pom.xml
rename to karaf/shell/log/pom.xml
index 5f697e2..bedb7f8 100644
--- a/karaf/gshell/gshell-log/pom.xml
+++ b/karaf/shell/log/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.log</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.log</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell Log Commands</name>
+    <name>Apache Felix Karaf :: Shell Log Commands</name>
 
     <description>
         Provides the OSGi Log commands
@@ -39,8 +39,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
@@ -74,7 +74,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>!*</Private-Package>
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/DisplayException.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/DisplayException.java
similarity index 94%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/DisplayException.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/DisplayException.java
index 72e3d1f..a0224ef 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/DisplayException.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/DisplayException.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log;
+package org.apache.felix.karaf.shell.log;
 
 import org.ops4j.pax.logging.spi.PaxLoggingEvent;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Command;
 
 @Command(scope = "log", name = "display-exception", description = "Display the last exception from the log.")
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/DisplayLog.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/DisplayLog.java
similarity index 91%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/DisplayLog.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/DisplayLog.java
index 2235de6..2baf45b 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/DisplayLog.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/DisplayLog.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log;
+package org.apache.felix.karaf.shell.log;
 
-import org.apache.felix.karaf.gshell.log.layout.PatternConverter;
-import org.apache.felix.karaf.gshell.log.layout.PatternParser;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.log.layout.PatternConverter;
+import org.apache.felix.karaf.shell.log.layout.PatternParser;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
 import org.ops4j.pax.logging.spi.PaxLoggingEvent;
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/GetLogLevel.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/GetLogLevel.java
similarity index 97%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/GetLogLevel.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/GetLogLevel.java
index 31ee58a..b0873b2 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/GetLogLevel.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/GetLogLevel.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log;
+package org.apache.felix.karaf.shell.log;
 
 import java.util.Dictionary;
 import java.util.Enumeration;
@@ -24,7 +24,7 @@
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/LruList.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/LruList.java
similarity index 98%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/LruList.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/LruList.java
index 5c22668..dacf244 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/LruList.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/LruList.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.log;
+package org.apache.felix.karaf.shell.log;
 
 import java.util.Arrays;
 
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/SetLogLevel.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/SetLogLevel.java
similarity index 97%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/SetLogLevel.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/SetLogLevel.java
index 46ee4db..48c8b63 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/SetLogLevel.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/SetLogLevel.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log;
+package org.apache.felix.karaf.shell.log;
 
 import java.util.Dictionary;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.ServiceReference;
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/VmLogAppender.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/VmLogAppender.java
similarity index 96%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/VmLogAppender.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/VmLogAppender.java
index 20ddd1f..5cffacd 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/VmLogAppender.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/VmLogAppender.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.log;
+package org.apache.felix.karaf.shell.log;
 
 import org.ops4j.pax.logging.spi.PaxAppender;
 import org.ops4j.pax.logging.spi.PaxLoggingEvent;
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/AbsoluteTimeDateFormat.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/AbsoluteTimeDateFormat.java
similarity index 98%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/AbsoluteTimeDateFormat.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/AbsoluteTimeDateFormat.java
index 6b06e16..8e443bf 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/AbsoluteTimeDateFormat.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/AbsoluteTimeDateFormat.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log.layout;
+package org.apache.felix.karaf.shell.log.layout;
 
 import java.text.DateFormat;
 import java.text.FieldPosition;
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/DateTimeDateFormat.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/DateTimeDateFormat.java
similarity index 97%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/DateTimeDateFormat.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/DateTimeDateFormat.java
index aeb85bf..476b03a 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/DateTimeDateFormat.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/DateTimeDateFormat.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log.layout;
+package org.apache.felix.karaf.shell.log.layout;
 
 import java.text.DateFormatSymbols;
 import java.text.FieldPosition;
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/FormattingInfo.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/FormattingInfo.java
similarity index 96%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/FormattingInfo.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/FormattingInfo.java
index 8c4c9b5..75f7834 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/FormattingInfo.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/FormattingInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log.layout;
+package org.apache.felix.karaf.shell.log.layout;
 
 
 /**
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/ISO8601DateFormat.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/ISO8601DateFormat.java
similarity index 98%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/ISO8601DateFormat.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/ISO8601DateFormat.java
index c2177f5..cf3a8ea 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/ISO8601DateFormat.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/ISO8601DateFormat.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log.layout;
+package org.apache.felix.karaf.shell.log.layout;
 
 import java.text.FieldPosition;
 import java.text.ParsePosition;
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/PatternConverter.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/PatternConverter.java
similarity index 97%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/PatternConverter.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/PatternConverter.java
index f5af299..1554b7f 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/PatternConverter.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/PatternConverter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log.layout;
+package org.apache.felix.karaf.shell.log.layout;
 
 import org.ops4j.pax.logging.spi.PaxLoggingEvent;
 
diff --git a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/PatternParser.java b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/PatternParser.java
similarity index 99%
rename from karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/PatternParser.java
rename to karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/PatternParser.java
index 3d54334..ed6f4e6 100644
--- a/karaf/gshell/gshell-log/src/main/java/org/apache/felix/karaf/gshell/log/layout/PatternParser.java
+++ b/karaf/shell/log/src/main/java/org/apache/felix/karaf/shell/log/layout/PatternParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.log.layout;
+package org.apache.felix.karaf.shell.log.layout;
 
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
diff --git a/karaf/gshell/gshell-log/src/main/resources/OSGI-INF/blueprint/gshell-log.xml b/karaf/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml
similarity index 81%
rename from karaf/gshell/gshell-log/src/main/resources/OSGI-INF/blueprint/gshell-log.xml
rename to karaf/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml
index 91fce90..01885da 100644
--- a/karaf/gshell/gshell-log/src/main/resources/OSGI-INF/blueprint/gshell-log.xml
+++ b/karaf/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml
@@ -29,36 +29,36 @@
         </cm:default-properties>
     </cm:property-placeholder>
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="log/display">
-            <action class="org.apache.felix.karaf.gshell.log.DisplayLog">
+            <action class="org.apache.felix.karaf.shell.log.DisplayLog">
                 <property name="events" ref="events"/>
                 <property name="pattern" value="${pattern}"/>
             </action>
         </command>
         <link name="log/d" target="log/display"/>
         <command name="log/display-exception">
-            <action class="org.apache.felix.karaf.gshell.log.DisplayException">
+            <action class="org.apache.felix.karaf.shell.log.DisplayException">
                 <property name="events" ref="events"/>
             </action>
         </command>
         <link name="log/de" target="log/display-exception"/>
         <command name="log/get">
-            <action class="org.apache.felix.karaf.gshell.log.GetLogLevel" />
+            <action class="org.apache.felix.karaf.shell.log.GetLogLevel" />
         </command>
         <command name="log/set">
-            <action class="org.apache.felix.karaf.gshell.log.SetLogLevel" />
+            <action class="org.apache.felix.karaf.shell.log.SetLogLevel" />
         </command>
 
         <alias name="ld" alias="log/d"/>
         <alias name="lde" alias="log/de"/>
     </command-bundle>
 
-    <bean id="vmLogAppender" class="org.apache.felix.karaf.gshell.log.VmLogAppender">
+    <bean id="vmLogAppender" class="org.apache.felix.karaf.shell.log.VmLogAppender">
         <property name="events" ref="events"/>
     </bean>
 
-    <bean id="events" class="org.apache.felix.karaf.gshell.log.LruList">
+    <bean id="events" class="org.apache.felix.karaf.shell.log.LruList">
         <argument value="${size}"/>
     </bean>
 
diff --git a/karaf/gshell/gshell-log/src/main/resources/OSGI-INF/metatype/metatype.properties b/karaf/shell/log/src/main/resources/OSGI-INF/metatype/metatype.properties
similarity index 100%
rename from karaf/gshell/gshell-log/src/main/resources/OSGI-INF/metatype/metatype.properties
rename to karaf/shell/log/src/main/resources/OSGI-INF/metatype/metatype.properties
diff --git a/karaf/gshell/gshell-log/src/main/resources/OSGI-INF/metatype/metatype.xml b/karaf/shell/log/src/main/resources/OSGI-INF/metatype/metatype.xml
similarity index 100%
rename from karaf/gshell/gshell-log/src/main/resources/OSGI-INF/metatype/metatype.xml
rename to karaf/shell/log/src/main/resources/OSGI-INF/metatype/metatype.xml
diff --git a/karaf/gshell/gshell-obr/pom.xml b/karaf/shell/obr/pom.xml
similarity index 83%
rename from karaf/gshell/gshell-obr/pom.xml
rename to karaf/shell/obr/pom.xml
index 302e5e8..0ab0f69 100644
--- a/karaf/gshell/gshell-obr/pom.xml
+++ b/karaf/shell/obr/pom.xml
@@ -22,19 +22,19 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.obr</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.obr</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell OBR Commands</name>
+    <name>Apache Felix Karaf :: Shell OBR Commands</name>
 
     <description>
-        Provides the OBR GShell commands
+        Provides the OBR Shell commands
     </description>
 
     <dependencies>
@@ -50,8 +50,8 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
     </dependencies>
 
@@ -69,7 +69,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>!*</Private-Package>
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/AddUrlCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/AddUrlCommand.java
similarity index 96%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/AddUrlCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/AddUrlCommand.java
index 8d35fa9..18a4c4b 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/AddUrlCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/AddUrlCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.net.URL;
 import java.util.List;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/DeployCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/DeployCommand.java
similarity index 96%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/DeployCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/DeployCommand.java
index 2b66df7..37cd146 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/DeployCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/DeployCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.util.List;
 
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/FileUtil.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/FileUtil.java
similarity index 98%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/FileUtil.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/FileUtil.java
index 21941a5..b70e15a 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/FileUtil.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/FileUtil.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/InfoCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/InfoCommand.java
similarity index 98%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/InfoCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/InfoCommand.java
index 1f57419..ab50497 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/InfoCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/InfoCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.io.PrintStream;
 import java.lang.reflect.Array;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ListCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ListCommand.java
similarity index 98%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ListCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ListCommand.java
index 816134e..7a43565 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ListCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ListCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.util.List;
 
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ListUrlCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ListUrlCommand.java
similarity index 96%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ListUrlCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ListUrlCommand.java
index b64cbf7..ee071b1 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ListUrlCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ListUrlCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import org.osgi.service.obr.Repository;
 import org.osgi.service.obr.RepositoryAdmin;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ObrCommandSupport.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ObrCommandSupport.java
similarity index 98%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ObrCommandSupport.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ObrCommandSupport.java
index f709545..94b16c1 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/ObrCommandSupport.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/ObrCommandSupport.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.io.PrintStream;
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.Version;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/RefreshUrlCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/RefreshUrlCommand.java
similarity index 97%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/RefreshUrlCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/RefreshUrlCommand.java
index b5cb373..0a3dd4d 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/RefreshUrlCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/RefreshUrlCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.net.URL;
 import java.util.List;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/RemoveUrlCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/RemoveUrlCommand.java
similarity index 96%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/RemoveUrlCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/RemoveUrlCommand.java
index 677d40f..5c307dd 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/RemoveUrlCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/RemoveUrlCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.net.URL;
 import java.util.List;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/SourceCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/SourceCommand.java
similarity index 97%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/SourceCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/SourceCommand.java
index 5af1b41..12e28d3 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/SourceCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/SourceCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import java.net.URL;
 import java.util.List;
diff --git a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/StartCommand.java b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/StartCommand.java
similarity index 96%
rename from karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/StartCommand.java
rename to karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/StartCommand.java
index e1c9fd9..0164846 100644
--- a/karaf/gshell/gshell-obr/src/main/java/org/apache/felix/karaf/gshell/obr/StartCommand.java
+++ b/karaf/shell/obr/src/main/java/org/apache/felix/karaf/shell/obr/StartCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.obr;
+package org.apache.felix.karaf.shell.obr;
 
 import org.osgi.service.obr.RepositoryAdmin;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-obr/src/main/resources/OSGI-INF/blueprint/gshell-obr.xml b/karaf/shell/obr/src/main/resources/OSGI-INF/blueprint/shell-obr.xml
similarity index 66%
rename from karaf/gshell/gshell-obr/src/main/resources/OSGI-INF/blueprint/gshell-obr.xml
rename to karaf/shell/obr/src/main/resources/OSGI-INF/blueprint/shell-obr.xml
index 4100852..096cc00 100644
--- a/karaf/gshell/gshell-obr/src/main/resources/OSGI-INF/blueprint/gshell-obr.xml
+++ b/karaf/shell/obr/src/main/resources/OSGI-INF/blueprint/shell-obr.xml
@@ -19,33 +19,33 @@
 -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="obr/addUrl">
-            <action class="org.apache.felix.karaf.gshell.obr.AddUrlCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.AddUrlCommand"/>
         </command>
         <command name="obr/deploy">
-            <action class="org.apache.felix.karaf.gshell.obr.DeployCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.DeployCommand"/>
         </command>
         <command name="obr/info">
-            <action class="org.apache.felix.karaf.gshell.obr.InfoCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.InfoCommand"/>
         </command>
         <command name="obr/list">
-            <action class="org.apache.felix.karaf.gshell.obr.ListCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.ListCommand"/>
         </command>
         <command name="obr/listUrl">
-            <action class="org.apache.felix.karaf.gshell.obr.ListUrlCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.ListUrlCommand"/>
         </command>
         <command name="obr/removeUrl">
-            <action class="org.apache.felix.karaf.gshell.obr.RemoveUrlCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.RemoveUrlCommand"/>
         </command>
         <command name="obr/refreshUrl">
-            <action class="org.apache.felix.karaf.gshell.obr.RefreshUrlCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.RefreshUrlCommand"/>
         </command>
         <command name="obr/source">
-            <action class="org.apache.felix.karaf.gshell.obr.SourceCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.SourceCommand"/>
         </command>
         <command name="obr/start">
-            <action class="org.apache.felix.karaf.gshell.obr.StartCommand"/>
+            <action class="org.apache.felix.karaf.shell.obr.StartCommand"/>
         </command>
     </command-bundle>
 
diff --git a/karaf/gshell/gshell-osgi/pom.xml b/karaf/shell/osgi/pom.xml
similarity index 81%
rename from karaf/gshell/gshell-osgi/pom.xml
rename to karaf/shell/osgi/pom.xml
index 2ef8131..d9bd71d 100644
--- a/karaf/gshell/gshell-osgi/pom.xml
+++ b/karaf/shell/osgi/pom.xml
@@ -22,25 +22,25 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.osgi</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.osgi</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell OSGi Commands</name>
+    <name>Apache Felix Karaf :: Shell OSGi Commands</name>
 
     <description>
-        Provides the OSGi GShell commands
+        Provides the OSGi Shell commands
     </description>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
@@ -55,6 +55,11 @@
             <optional>true</optional>
         </dependency>
         <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
             <groupId>org.springframework.osgi</groupId>
             <artifactId>spring-osgi-extender</artifactId>
             <optional>true</optional>
@@ -73,7 +78,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             org.springframework*;resolution:=optional,
                             *
                         </Import-Package>
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BlueprintListener.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BlueprintListener.java
similarity index 98%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BlueprintListener.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BlueprintListener.java
index 7da1a74..5c02f11 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BlueprintListener.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BlueprintListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleCommand.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleCommand.java
similarity index 93%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleCommand.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleCommand.java
index 436969e..ae66f9f 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleCommand.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleCommand.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Argument;
 import org.osgi.framework.Bundle;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleLevel.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleLevel.java
similarity index 98%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleLevel.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleLevel.java
index e7573a3..fb27683 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleLevel.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleLevel.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleStateListener.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleStateListener.java
similarity index 95%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleStateListener.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleStateListener.java
index 3f5116c..3f37c48 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundleStateListener.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundleStateListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import org.osgi.framework.Bundle;
 
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundlesCommand.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundlesCommand.java
similarity index 94%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundlesCommand.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundlesCommand.java
index 71bf3da..887304c 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/BundlesCommand.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/BundlesCommand.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Option;
 import org.osgi.framework.Bundle;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Headers.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Headers.java
similarity index 95%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Headers.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Headers.java
index 33321dd..cf17ede 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Headers.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Headers.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.Dictionary;
 import java.util.Enumeration;
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.Bundle;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/InstallBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/InstallBundle.java
similarity index 95%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/InstallBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/InstallBundle.java
index 1bfab67..6061006 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/InstallBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/InstallBundle.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.io.PrintStream;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.felix.gogo.commands.Argument;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.Bundle;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ListBundles.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ListBundles.java
similarity index 98%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ListBundles.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ListBundles.java
index 564c234..7844bb1 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ListBundles.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ListBundles.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.Bundle;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ListServices.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ListServices.java
similarity index 98%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ListServices.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ListServices.java
index e824347..0c36909 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ListServices.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ListServices.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.List;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/RefreshBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/RefreshBundle.java
similarity index 95%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/RefreshBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/RefreshBundle.java
index c0c4f5e..581070a 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/RefreshBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/RefreshBundle.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.Bundle;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ResolveBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ResolveBundle.java
similarity index 97%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ResolveBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ResolveBundle.java
index c51aae9..1251892 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/ResolveBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/ResolveBundle.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import org.osgi.framework.Bundle;
 import org.osgi.framework.ServiceReference;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/RestartBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/RestartBundle.java
similarity index 96%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/RestartBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/RestartBundle.java
index fab3e5d..eaee362 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/RestartBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/RestartBundle.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.List;
 
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Shutdown.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Shutdown.java
similarity index 92%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Shutdown.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Shutdown.java
index 67a1237..9298ef5 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Shutdown.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Shutdown.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.Bundle;
 
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/SpringStateListenerFactory.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/SpringStateListenerFactory.java
similarity index 98%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/SpringStateListenerFactory.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/SpringStateListenerFactory.java
index d394658..96914bc 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/SpringStateListenerFactory.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/SpringStateListenerFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.Map;
 import java.util.Hashtable;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StartBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StartBundle.java
similarity index 96%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StartBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StartBundle.java
index 4964532..4a0cb0f 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StartBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StartBundle.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.List;
 
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StartLevel.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StartLevel.java
similarity index 94%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StartLevel.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StartLevel.java
index 8e55db0..8e7c3e3 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StartLevel.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StartLevel.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.ServiceReference;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StopBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StopBundle.java
similarity index 96%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StopBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StopBundle.java
index 4b511b0..5036e01 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/StopBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/StopBundle.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.util.List;
 
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/UninstallBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/UninstallBundle.java
similarity index 95%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/UninstallBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/UninstallBundle.java
index 0de91d3..363f603 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/UninstallBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/UninstallBundle.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import org.osgi.framework.Bundle;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/UpdateBundle.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/UpdateBundle.java
similarity index 96%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/UpdateBundle.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/UpdateBundle.java
index d22a1b0..8accc56 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/UpdateBundle.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/UpdateBundle.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.io.InputStream;
 import java.net.URL;
diff --git a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Util.java b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Util.java
similarity index 98%
rename from karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Util.java
rename to karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Util.java
index e57579e..62e23b9 100644
--- a/karaf/gshell/gshell-osgi/src/main/java/org/apache/felix/karaf/gshell/osgi/Util.java
+++ b/karaf/shell/osgi/src/main/java/org/apache/felix/karaf/shell/osgi/Util.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.osgi;
+package org.apache.felix.karaf.shell.osgi;
 
 import java.io.IOException;
 
diff --git a/karaf/gshell/gshell-osgi/src/main/resources/OSGI-INF/blueprint/gshell-osgi.xml b/karaf/shell/osgi/src/main/resources/OSGI-INF/blueprint/shell-osgi.xml
similarity index 62%
rename from karaf/gshell/gshell-osgi/src/main/resources/OSGI-INF/blueprint/gshell-osgi.xml
rename to karaf/shell/osgi/src/main/resources/OSGI-INF/blueprint/shell-osgi.xml
index 9cb7c40..bb4b1f3 100644
--- a/karaf/gshell/gshell-osgi/src/main/resources/OSGI-INF/blueprint/gshell-osgi.xml
+++ b/karaf/shell/osgi/src/main/resources/OSGI-INF/blueprint/shell-osgi.xml
@@ -19,18 +19,18 @@
 -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="osgi/bundle-level">
-            <action class="org.apache.felix.karaf.gshell.osgi.BundleLevel"/>
+            <action class="org.apache.felix.karaf.shell.osgi.BundleLevel"/>
         </command>
         <command name="osgi/headers">
-            <action class="org.apache.felix.karaf.gshell.osgi.Headers"/>
+            <action class="org.apache.felix.karaf.shell.osgi.Headers"/>
         </command>
         <command name="osgi/install">
-            <action class="org.apache.felix.karaf.gshell.osgi.InstallBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.InstallBundle"/>
         </command>
         <command name="osgi/list">
-            <action class="org.apache.felix.karaf.gshell.osgi.ListBundles">
+            <action class="org.apache.felix.karaf.shell.osgi.ListBundles">
                 <property name="bundleStateListenerFactories">
                     <list xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
                         <ref component-id="blueprintListener" />
@@ -40,41 +40,41 @@
             </action>
         </command>
         <command name="osgi/ls">
-            <action class="org.apache.felix.karaf.gshell.osgi.ListServices"/>
+            <action class="org.apache.felix.karaf.shell.osgi.ListServices"/>
         </command>
         <command name="osgi/refresh">
-            <action class="org.apache.felix.karaf.gshell.osgi.RefreshBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.RefreshBundle"/>
         </command>
         <command name="osgi/update">
-            <action class="org.apache.felix.karaf.gshell.osgi.UpdateBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.UpdateBundle"/>
         </command>
         <command name="osgi/resolve">
-            <action class="org.apache.felix.karaf.gshell.osgi.ResolveBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.ResolveBundle"/>
         </command>
         <command name="osgi/restart">
-            <action class="org.apache.felix.karaf.gshell.osgi.RestartBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.RestartBundle"/>
         </command>
         <command name="osgi/shutdown">
-            <action class="org.apache.felix.karaf.gshell.osgi.Shutdown"/>
+            <action class="org.apache.felix.karaf.shell.osgi.Shutdown"/>
         </command>
         <command name="osgi/start">
-            <action class="org.apache.felix.karaf.gshell.osgi.StartBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.StartBundle"/>
         </command>
         <command name="osgi/start-level">
-            <action class="org.apache.felix.karaf.gshell.osgi.StartLevel"/>
+            <action class="org.apache.felix.karaf.shell.osgi.StartLevel"/>
         </command>
         <command name="osgi/stop">
-            <action class="org.apache.felix.karaf.gshell.osgi.StopBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.StopBundle"/>
         </command>
         <command name="osgi/uninstall">
-            <action class="org.apache.felix.karaf.gshell.osgi.UninstallBundle"/>
+            <action class="org.apache.felix.karaf.shell.osgi.UninstallBundle"/>
         </command>
     </command-bundle>
 
-    <bean id="blueprintListener" class="org.apache.felix.karaf.gshell.osgi.BlueprintListener" />
+    <bean id="blueprintListener" class="org.apache.felix.karaf.shell.osgi.BlueprintListener" />
     <service ref="blueprintListener" interface="org.osgi.service.blueprint.container.BlueprintListener" />
 
-    <bean id="springListener" class="org.apache.felix.karaf.gshell.osgi.SpringStateListenerFactory" destroy-method="destroy">
+    <bean id="springListener" class="org.apache.felix.karaf.shell.osgi.SpringStateListenerFactory" destroy-method="destroy">
         <property name="bundleContext" ref="blueprintBundleContext" />
     </bean>
 
diff --git a/karaf/gshell/gshell-packages/pom.xml b/karaf/shell/packages/pom.xml
similarity index 82%
rename from karaf/gshell/gshell-packages/pom.xml
rename to karaf/shell/packages/pom.xml
index 5545f6b..4f5b613 100644
--- a/karaf/gshell/gshell-packages/pom.xml
+++ b/karaf/shell/packages/pom.xml
@@ -22,25 +22,25 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.packages</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.packages</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell PackageAdmin Commands</name>
+    <name>Apache Felix Karaf :: Shell PackageAdmin Commands</name>
 
     <description>
-        Provides the PackageAdmin GShell commands
+        Provides the PackageAdmin Shell commands
     </description>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
@@ -68,7 +68,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>!*</Private-Package>
diff --git a/karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/ExportsCommand.java b/karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/ExportsCommand.java
similarity index 98%
rename from karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/ExportsCommand.java
rename to karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/ExportsCommand.java
index 9e60576..96ae308 100644
--- a/karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/ExportsCommand.java
+++ b/karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/ExportsCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.packages;
+package org.apache.felix.karaf.shell.packages;
 
 import java.io.PrintStream;
 import java.util.List;
diff --git a/karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/ImportsCommand.java b/karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/ImportsCommand.java
similarity index 98%
rename from karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/ImportsCommand.java
rename to karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/ImportsCommand.java
index 5235131..f2d9733 100644
--- a/karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/ImportsCommand.java
+++ b/karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/ImportsCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.packages;
+package org.apache.felix.karaf.shell.packages;
 
 import java.io.PrintStream;
 import java.util.ArrayList;
diff --git a/karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/PackageCommandSupport.java b/karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/PackageCommandSupport.java
similarity index 94%
rename from karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/PackageCommandSupport.java
rename to karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/PackageCommandSupport.java
index d01c653..84ae132 100644
--- a/karaf/gshell/gshell-packages/src/main/java/org/apache/felix/karaf/gshell/packages/PackageCommandSupport.java
+++ b/karaf/shell/packages/src/main/java/org/apache/felix/karaf/shell/packages/PackageCommandSupport.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.packages;
+package org.apache.felix.karaf.shell.packages;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.packageadmin.PackageAdmin;
 
diff --git a/karaf/gshell/gshell-packages/src/main/resources/OSGI-INF/blueprint/gshell-packages.xml b/karaf/shell/packages/src/main/resources/OSGI-INF/blueprint/shell-packages.xml
similarity index 81%
rename from karaf/gshell/gshell-packages/src/main/resources/OSGI-INF/blueprint/gshell-packages.xml
rename to karaf/shell/packages/src/main/resources/OSGI-INF/blueprint/shell-packages.xml
index 972e8cb..59f63ca 100644
--- a/karaf/gshell/gshell-packages/src/main/resources/OSGI-INF/blueprint/gshell-packages.xml
+++ b/karaf/shell/packages/src/main/resources/OSGI-INF/blueprint/shell-packages.xml
@@ -19,12 +19,12 @@
 -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="packages/exports">
-            <action class="org.apache.felix.karaf.gshell.packages.ExportsCommand"/>
+            <action class="org.apache.felix.karaf.shell.packages.ExportsCommand"/>
         </command>
         <command name="packages/imports">
-            <action class="org.apache.felix.karaf.gshell.packages.ImportsCommand"/>
+            <action class="org.apache.felix.karaf.shell.packages.ImportsCommand"/>
         </command>
     </command-bundle>
 
diff --git a/karaf/gshell/pom.xml b/karaf/shell/pom.xml
similarity index 72%
rename from karaf/gshell/pom.xml
rename to karaf/shell/pom.xml
index b0feb18..fe66cbb 100644
--- a/karaf/gshell/pom.xml
+++ b/karaf/shell/pom.xml
@@ -27,23 +27,23 @@
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>gshell</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>shell</artifactId>
     <packaging>pom</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell</name>
+    <name>Apache Felix Karaf :: Shell</name>
 
     <modules>
-        <module>gshell-console</module>
-        <module>gshell-osgi</module>
-        <module>gshell-admin</module>
-        <module>gshell-obr</module>
-        <module>gshell-wrapper</module>
-        <module>gshell-log</module>
-        <module>gshell-config</module>
-        <module>gshell-packages</module>
-        <module>gshell-ssh</module>
-        <module>gshell-commands</module>
+        <module>admin</module>
+        <module>commands</module>
+        <module>config</module>
+        <module>console</module>
+        <module>log</module>
+        <module>obr</module>
+        <module>osgi</module>
+        <module>packages</module>
+        <module>ssh</module>
+        <module>wrapper</module>
     </modules>
 
 </project>
diff --git a/karaf/gshell/src/test/configs/services/org.apache.servicemix.shell.properties b/karaf/shell/src/test/configs/services/org.apache.servicemix.shell.properties
similarity index 100%
rename from karaf/gshell/src/test/configs/services/org.apache.servicemix.shell.properties
rename to karaf/shell/src/test/configs/services/org.apache.servicemix.shell.properties
diff --git a/karaf/gshell/src/test/configs/services/org.ops4j.pax.logging.properties b/karaf/shell/src/test/configs/services/org.ops4j.pax.logging.properties
similarity index 96%
rename from karaf/gshell/src/test/configs/services/org.ops4j.pax.logging.properties
rename to karaf/shell/src/test/configs/services/org.ops4j.pax.logging.properties
index 23075bf..d1f34a6 100644
--- a/karaf/gshell/src/test/configs/services/org.ops4j.pax.logging.properties
+++ b/karaf/shell/src/test/configs/services/org.ops4j.pax.logging.properties
@@ -30,5 +30,5 @@
 log4j.appender.out=org.apache.log4j.FileAppender
 log4j.appender.out.layout=org.apache.log4j.PatternLayout
 log4j.appender.out.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
-log4j.appender.out.file=target/gshell.log
+log4j.appender.out.file=target/shell.log
 log4j.appender.out.append=true
diff --git a/karaf/gshell/gshell-ssh/pom.xml b/karaf/shell/ssh/pom.xml
similarity index 87%
rename from karaf/gshell/gshell-ssh/pom.xml
rename to karaf/shell/ssh/pom.xml
index 0665fd0..3166527 100644
--- a/karaf/gshell/gshell-ssh/pom.xml
+++ b/karaf/shell/ssh/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.ssh</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.ssh</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell SSH</name>
+    <name>Apache Felix Karaf :: Shell SSH</name>
 
     <description>
         Provides SSH support to the console
@@ -39,8 +39,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
@@ -87,7 +87,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             org.apache.sshd.server.keyprovider,
                             org.apache.sshd.server.jaas,
                             *
diff --git a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/ShellCommandFactory.java b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellCommandFactory.java
similarity index 98%
rename from karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/ShellCommandFactory.java
rename to karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellCommandFactory.java
index 87a542f..4e0c290 100644
--- a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/ShellCommandFactory.java
+++ b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellCommandFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.ssh;
+package org.apache.felix.karaf.shell.ssh;
 
 import java.io.Closeable;
 import java.io.IOException;
diff --git a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/ShellFactoryImpl.java b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java
similarity index 93%
rename from karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/ShellFactoryImpl.java
rename to karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java
index a4a2820..f38cc1b 100644
--- a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/ShellFactoryImpl.java
+++ b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.ssh;
+package org.apache.felix.karaf.shell.ssh;
 
 import java.io.Closeable;
 import java.io.IOException;
@@ -27,15 +27,15 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.felix.karaf.gshell.console.Completer;
-import org.apache.felix.karaf.gshell.console.completer.AggregateCompleter;
-import org.apache.felix.karaf.gshell.console.jline.Console;
+import org.apache.felix.karaf.shell.console.Completer;
+import org.apache.felix.karaf.shell.console.completer.AggregateCompleter;
+import org.apache.felix.karaf.shell.console.jline.Console;
 import org.apache.sshd.server.ShellFactory;
 import org.osgi.service.command.CommandProcessor;
 import org.osgi.service.command.CommandSession;
 
 /**
- * SSHD {@link org.apache.sshd.server.ShellFactory} which provides access to GShell.
+ * SSHD {@link org.apache.sshd.server.ShellFactory} which provides access to Shell.
  *
  * @version $Rev: 731517 $ $Date: 2009-01-05 11:25:19 +0100 (Mon, 05 Jan 2009) $
  */
diff --git a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshAction.java b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshAction.java
similarity index 96%
rename from karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshAction.java
rename to karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshAction.java
index 2e868fd..a9e165f 100644
--- a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshAction.java
+++ b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshAction.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.ssh;
+package org.apache.felix.karaf.shell.ssh;
 
 import java.io.IOException;
 
@@ -27,8 +27,8 @@
 import org.apache.sshd.client.future.ConnectFuture;
 import org.apache.sshd.common.util.NoCloseInputStream;
 import org.apache.sshd.common.util.NoCloseOutputStream;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
-import org.apache.felix.karaf.gshell.console.BlueprintContainerAware;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.BlueprintContainerAware;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
diff --git a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshServerAction.java b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshServerAction.java
similarity index 92%
rename from karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshServerAction.java
rename to karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshServerAction.java
index 9abfc8a..a67eaf7 100644
--- a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshServerAction.java
+++ b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshServerAction.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.ssh;
+package org.apache.felix.karaf.shell.ssh;
 
 import org.apache.sshd.SshServer;
-import org.apache.felix.karaf.gshell.console.BlueprintContainerAware;
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.BlueprintContainerAware;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
 import org.slf4j.Logger;
diff --git a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshServerFactory.java b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshServerFactory.java
similarity index 96%
rename from karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshServerFactory.java
rename to karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshServerFactory.java
index 56efe3e..150da1f 100644
--- a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshServerFactory.java
+++ b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshServerFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.ssh;
+package org.apache.felix.karaf.shell.ssh;
 
 import org.apache.sshd.SshServer;
 
diff --git a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshTerminal.java b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshTerminal.java
similarity index 98%
rename from karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshTerminal.java
rename to karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshTerminal.java
index da71d2c..b8235af 100644
--- a/karaf/gshell/gshell-ssh/src/main/java/org/apache/felix/karaf/gshell/ssh/SshTerminal.java
+++ b/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/SshTerminal.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.karaf.gshell.ssh;
+package org.apache.felix.karaf.shell.ssh;
 
 import java.io.InputStream;
 import java.io.IOException;
diff --git a/karaf/gshell/gshell-ssh/src/main/resources/OSGI-INF/blueprint/gshell-ssh.xml b/karaf/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
similarity index 86%
rename from karaf/gshell/gshell-ssh/src/main/resources/OSGI-INF/blueprint/gshell-ssh.xml
rename to karaf/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
index fac2c54..10c0439 100644
--- a/karaf/gshell/gshell-ssh/src/main/resources/OSGI-INF/blueprint/gshell-ssh.xml
+++ b/karaf/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
@@ -33,16 +33,16 @@
         </cm:default-properties>
     </cm:property-placeholder>
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="ssh/ssh">
-            <action class="org.apache.felix.karaf.gshell.ssh.SshAction">
+            <action class="org.apache.felix.karaf.shell.ssh.SshAction">
                 <property name="sshClientId">
                     <bp:idref component-id="sshClient"/>
                 </property>
             </action>
         </command>
         <command name="ssh/sshd">
-            <action class="org.apache.felix.karaf.gshell.ssh.SshServerAction">
+            <action class="org.apache.felix.karaf.shell.ssh.SshServerAction">
                 <property name="sshServerId">
                     <bp:idref component-id="sshServer"/>
                 </property>
@@ -56,7 +56,7 @@
     <bean id="sshServer" class="org.apache.sshd.SshServer" factory-method="setUpDefaultServer" scope="prototype">
         <property name="port" value="${sshPort}"/>
         <property name="shellFactory">
-            <bean class="org.apache.felix.karaf.gshell.ssh.ShellFactoryImpl">
+            <bean class="org.apache.felix.karaf.shell.ssh.ShellFactoryImpl">
                 <property name="completers">
                     <list>
                         <ref component-id="commandCompleter"/>
@@ -66,7 +66,7 @@
             </bean>
         </property>
         <property name="commandFactory">
-            <bean class="org.apache.felix.karaf.gshell.ssh.ShellCommandFactory">
+            <bean class="org.apache.felix.karaf.shell.ssh.ShellCommandFactory">
                 <property name="commandProcessor" ref="commandProcessor"/>
             </bean>
         </property>
@@ -81,7 +81,7 @@
         <property name="domain" value="${sshRealm}"/>
     </bean>
 
-    <bean id="sshServerFactory" class="org.apache.felix.karaf.gshell.ssh.SshServerFactory" init-method="start"
+    <bean id="sshServerFactory" class="org.apache.felix.karaf.shell.ssh.SshServerFactory" init-method="start"
           destroy-method="stop" activation="eager">
         <argument ref="sshServer"/>
         <property name="start" value="$[karaf.startRemoteShell]"/>
@@ -97,7 +97,7 @@
                             unbind-method="unregister"/>
     </reference-list>
 
-    <bean id="commandCompleter" class="org.apache.felix.karaf.gshell.console.completer.CommandsCompleter">
+    <bean id="commandCompleter" class="org.apache.felix.karaf.shell.console.completer.CommandsCompleter">
         <property name="bundleContext" ref="blueprintBundleContext" />
     </bean>
 
diff --git a/karaf/gshell/gshell-wrapper/pom.xml b/karaf/shell/wrapper/pom.xml
similarity index 85%
rename from karaf/gshell/gshell-wrapper/pom.xml
rename to karaf/shell/wrapper/pom.xml
index 7970e13..765666c 100644
--- a/karaf/gshell/gshell-wrapper/pom.xml
+++ b/karaf/shell/wrapper/pom.xml
@@ -22,25 +22,25 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.felix.karaf.gshell</groupId>
-        <artifactId>gshell</artifactId>
+        <groupId>org.apache.felix.karaf.shell</groupId>
+        <artifactId>shell</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.felix.karaf.gshell</groupId>
-    <artifactId>org.apache.felix.karaf.gshell.wrapper</artifactId>
+    <groupId>org.apache.felix.karaf.shell</groupId>
+    <artifactId>org.apache.felix.karaf.shell.wrapper</artifactId>
     <packaging>bundle</packaging>
     <version>0.9.0-SNAPSHOT</version>
-    <name>Apache Felix Karaf :: GShell Service Wrapper</name>
+    <name>Apache Felix Karaf :: Shell Service Wrapper</name>
 
     <description>
-        Provides the Service Wrapper GShell integration
+        Provides the Service Wrapper Shell integration
     </description>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
@@ -84,7 +84,7 @@
                         <Import-Package>
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>!*</Private-Package>
diff --git a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/InstallCommand.java b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/InstallCommand.java
similarity index 98%
rename from karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/InstallCommand.java
rename to karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/InstallCommand.java
index aafd6cc..4818d26 100644
--- a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/InstallCommand.java
+++ b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/InstallCommand.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.karaf.gshell.wrapper;
+package org.apache.felix.karaf.shell.wrapper;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -26,7 +26,7 @@
 import java.util.Map;
 import java.util.Scanner;
 
-import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
 import org.fusesource.jansi.Ansi;
diff --git a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/PumpStreamHandler.java b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/PumpStreamHandler.java
similarity index 98%
rename from karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/PumpStreamHandler.java
rename to karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/PumpStreamHandler.java
index 37c5769..3809bed 100644
--- a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/PumpStreamHandler.java
+++ b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/PumpStreamHandler.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.wrapper;
+package org.apache.felix.karaf.shell.wrapper;
 
 import java.io.InputStream;
 import java.io.OutputStream;
diff --git a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/StreamPumper.java
similarity index 98%
rename from karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java
rename to karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/StreamPumper.java
index 58aa8e5..8c2e689 100644
--- a/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java
+++ b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/StreamPumper.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.felix.karaf.gshell.wrapper;
+package org.apache.felix.karaf.shell.wrapper;
 
 import java.io.InputStream;
 import java.io.OutputStream;
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/OSGI-INF/blueprint/gshell-wrapper.xml b/karaf/shell/wrapper/src/main/resources/OSGI-INF/blueprint/shell-wrapper.xml
similarity index 85%
rename from karaf/gshell/gshell-wrapper/src/main/resources/OSGI-INF/blueprint/gshell-wrapper.xml
rename to karaf/shell/wrapper/src/main/resources/OSGI-INF/blueprint/shell-wrapper.xml
index 91e4a14..522663b 100644
--- a/karaf/gshell/gshell-wrapper/src/main/resources/OSGI-INF/blueprint/gshell-wrapper.xml
+++ b/karaf/shell/wrapper/src/main/resources/OSGI-INF/blueprint/shell-wrapper.xml
@@ -19,9 +19,9 @@
 -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
 
-    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+    <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
         <command name="wrapper/install">
-            <action class="org.apache.felix.karaf.gshell.wrapper.InstallCommand"/>
+            <action class="org.apache.felix.karaf.shell.wrapper.InstallCommand"/>
         </command>
     </command-bundle>
 
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/all/karaf-wrapper.conf b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/all/karaf-wrapper.conf
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/all/karaf-wrapper.conf
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/all/karaf-wrapper.conf
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/all/karaf-wrapper.jar b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/all/karaf-wrapper.jar
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/all/karaf-wrapper.jar
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/all/karaf-wrapper.jar
Binary files differ
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/linux/karaf-wrapper b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/linux/karaf-wrapper
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/linux/karaf-wrapper
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/linux/karaf-wrapper
Binary files differ
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/linux/libwrapper.so b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/linux/libwrapper.so
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/linux/libwrapper.so
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/linux/libwrapper.so
Binary files differ
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/macosx/karaf-wrapper b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/macosx/karaf-wrapper
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/macosx/karaf-wrapper
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/macosx/karaf-wrapper
Binary files differ
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/macosx/libwrapper.jnilib b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/macosx/libwrapper.jnilib
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/macosx/libwrapper.jnilib
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/macosx/libwrapper.jnilib
Binary files differ
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/unix/karaf-service b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/unix/karaf-service
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/unix/karaf-service
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/unix/karaf-service
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/windows/karaf-service.bat b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/karaf-service.bat
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/windows/karaf-service.bat
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/karaf-service.bat
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/windows/karaf-wrapper.exe b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/karaf-wrapper.exe
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/windows/karaf-wrapper.exe
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/karaf-wrapper.exe
Binary files differ
diff --git a/karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/windows/wrapper.dll b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/wrapper.dll
similarity index 100%
rename from karaf/gshell/gshell-wrapper/src/main/resources/org/apache/felix/karaf/gshell/wrapper/windows/wrapper.dll
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/wrapper.dll
Binary files differ
diff --git a/karaf/tooling/features-maven-plugin/src/main/java/org/apache/felix/karaf/tooling/features/GenerateFeaturesFileMojo.java b/karaf/tooling/features-maven-plugin/src/main/java/org/apache/felix/karaf/tooling/features/GenerateFeaturesFileMojo.java
index 07004f2..5df9947 100644
--- a/karaf/tooling/features-maven-plugin/src/main/java/org/apache/felix/karaf/tooling/features/GenerateFeaturesFileMojo.java
+++ b/karaf/tooling/features-maven-plugin/src/main/java/org/apache/felix/karaf/tooling/features/GenerateFeaturesFileMojo.java
@@ -118,7 +118,7 @@
      * 
      * @parameter
      */
-    private String kernelVersion;
+    private String karafVersion;
     
     /**
      * A properties file containing bundle translations
@@ -223,9 +223,9 @@
     	
     	Artifact kernel = factory.createArtifact("org.apache.felix.karaf", 
     			                                 "apache-felix-karaf",
-    			                                 kernelVersion, Artifact.SCOPE_PROVIDED, "pom");
+    			                                 karafVersion, Artifact.SCOPE_PROVIDED, "pom");
     	resolver.resolve(kernel, remoteRepos, localRepo);
-    	getLog().info("-- List of bundles provided by ServiceMix Kernel " + kernelVersion + " --");
+    	getLog().info("-- List of bundles provided by Karaf " + karafVersion + " --");
         for (Artifact artifact : getDependencies(kernel)) {
         	getLog().info(" " + artifact);
             provided.add(artifact);
diff --git a/karaf/webconsole/admin/pom.xml b/karaf/webconsole/admin/pom.xml
index 00e4908..2633291 100644
--- a/karaf/webconsole/admin/pom.xml
+++ b/karaf/webconsole/admin/pom.xml
@@ -55,8 +55,8 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.admin</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.admin</artifactId>
             <version>0.9.0-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
diff --git a/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java b/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java
index 810505f..93154ca 100644
--- a/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java
+++ b/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java
@@ -25,8 +25,8 @@
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.apache.felix.karaf.gshell.admin.AdminService;
-import org.apache.felix.karaf.gshell.admin.Instance;
+import org.apache.felix.karaf.shell.admin.AdminService;
+import org.apache.felix.karaf.shell.admin.Instance;
 import org.apache.felix.webconsole.AbstractWebConsolePlugin;
 import org.json.JSONException;
 import org.osgi.framework.BundleContext;
diff --git a/karaf/webconsole/admin/src/main/resources/OSGI-INF/blueprint/webconsole-admin.xml b/karaf/webconsole/admin/src/main/resources/OSGI-INF/blueprint/webconsole-admin.xml
index 081b1ea..48499a6 100644
--- a/karaf/webconsole/admin/src/main/resources/OSGI-INF/blueprint/webconsole-admin.xml
+++ b/karaf/webconsole/admin/src/main/resources/OSGI-INF/blueprint/webconsole-admin.xml
@@ -20,7 +20,7 @@
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
            xmlns:cm="http://geronimo.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0">
 
-    <reference id="adminService" interface="org.apache.felix.karaf.gshell.admin.AdminService" />
+    <reference id="adminService" interface="org.apache.felix.karaf.shell.admin.AdminService" />
 
     <bean id="adminPlugin" class="org.apache.felix.karaf.webconsole.admin.AdminPlugin" init-method="start" destroy-method="stop">
         <property name="adminService" ref="adminService" />
diff --git a/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java b/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java
index 1984461..821aedf 100644
--- a/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java
+++ b/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java
@@ -221,7 +221,7 @@
         boolean success = false;
         if ( featuresService == null )
         {
-            this.log.error( "GShell Features service is unavailable." );
+            this.log.error( "Shell Features service is unavailable." );
         }
         try
         {
@@ -240,7 +240,7 @@
         boolean success = false;
         if ( featuresService == null )
         {
-            this.log.error( "GShell Features service is unavailable." );
+            this.log.error( "Shell Features service is unavailable." );
         }
         try
         {
@@ -259,7 +259,7 @@
         boolean success = false;
         if ( featuresService == null )
         {
-            this.log.error( "GShell Features service is unavailable." );
+            this.log.error( "Shell Features service is unavailable." );
         }
         try
         {
@@ -278,7 +278,7 @@
         boolean success = false;
         if ( featuresService == null )
         {
-            this.log.error( "GShell Features service is unavailable." );
+            this.log.error( "Shell Features service is unavailable." );
         }
         try
         {
@@ -298,7 +298,7 @@
         boolean success = false;
         if ( featuresService == null )
         {
-            this.log.error( "GShell Features service is unavailable." );
+            this.log.error( "Shell Features service is unavailable." );
         }
         try
         {
@@ -386,7 +386,7 @@
 
         if ( featuresService == null )
         {
-            this.log.error( "GShell Features service is unavailable." );
+            this.log.error( "Shell Features service is unavailable." );
             return repositories;
         }
 
@@ -411,7 +411,7 @@
 
         if ( featuresService == null )
         {
-            this.log.error( "GShell Features service is unavailable." );
+            this.log.error( "Shell Features service is unavailable." );
             return features;
         }
 
diff --git a/karaf/webconsole/gogo/pom.xml b/karaf/webconsole/gogo/pom.xml
index 96512a0..35c8059 100644
--- a/karaf/webconsole/gogo/pom.xml
+++ b/karaf/webconsole/gogo/pom.xml
@@ -61,8 +61,8 @@
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix.karaf.gshell</groupId>
-      <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+      <groupId>org.apache.felix.karaf.shell</groupId>
+      <artifactId>org.apache.felix.karaf.shell.console</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.servicemix.bundles</groupId>
diff --git a/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java b/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java
index 4572b52..cadca38 100644
--- a/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java
+++ b/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java
@@ -40,9 +40,9 @@
 import javax.servlet.ServletException;
 
 import org.apache.felix.webconsole.AbstractWebConsolePlugin;
-import org.apache.felix.karaf.gshell.console.jline.Console;
-import org.apache.felix.karaf.gshell.console.Completer;
-import org.apache.felix.karaf.gshell.console.completer.AggregateCompleter;
+import org.apache.felix.karaf.shell.console.jline.Console;
+import org.apache.felix.karaf.shell.console.Completer;
+import org.apache.felix.karaf.shell.console.completer.AggregateCompleter;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.osgi.framework.BundleContext;
diff --git a/karaf/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml b/karaf/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml
index afb2570..ebf9c22 100644
--- a/karaf/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml
+++ b/karaf/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml
@@ -38,7 +38,7 @@
                             unbind-method="unregister"/>
     </reference-list>
 
-    <bean id="commandCompleter" class="org.apache.felix.karaf.gshell.console.completer.CommandsCompleter">
+    <bean id="commandCompleter" class="org.apache.felix.karaf.shell.console.completer.CommandsCompleter">
         <property name="bundleContext" ref="blueprintBundleContext" />
     </bean>
 
