diff --git a/karaf/shell/admin/NOTICE b/karaf/shell/admin/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/admin/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/admin/pom.xml b/karaf/shell/admin/pom.xml
index f90cdf8..65252e7 100644
--- a/karaf/shell/admin/pom.xml
+++ b/karaf/shell/admin/pom.xml
@@ -37,6 +37,10 @@
         Provides administration commands
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -100,7 +104,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-antrun-plugin</artifactId>
-                <version>1.2</version>
                 <executions>
                     <execution>
                         <id>create-prop</id>
@@ -130,18 +133,6 @@
                         </goals>
                     </execution>
                 </executions>
-                <dependencies>
-                    <dependency>
-                        <groupId>ant-contrib</groupId>
-                        <artifactId>ant-contrib</artifactId>
-                        <version>1.0b3</version>
-                    </dependency>
-                    <dependency>
-                        <groupId>ant</groupId>
-                        <artifactId>ant-optional</artifactId>
-                        <version>1.5.3-1</version>
-                    </dependency>
-               </dependencies>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -210,6 +201,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/commands/NOTICE b/karaf/shell/commands/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/commands/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/commands/pom.xml b/karaf/shell/commands/pom.xml
index d703da1..b5f1ee3 100644
--- a/karaf/shell/commands/pom.xml
+++ b/karaf/shell/commands/pom.xml
@@ -37,6 +37,10 @@
         Provides SSH support to the console
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -62,6 +66,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/config/NOTICE b/karaf/shell/config/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/config/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/config/pom.xml b/karaf/shell/config/pom.xml
index cf5efc5..f525e48 100644
--- a/karaf/shell/config/pom.xml
+++ b/karaf/shell/config/pom.xml
@@ -37,6 +37,10 @@
         Provides the ConfigAdmin Shell commands
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -72,6 +76,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/console/NOTICE b/karaf/shell/console/NOTICE
new file mode 100644
index 0000000..b303416
--- /dev/null
+++ b/karaf/shell/console/NOTICE
@@ -0,0 +1,29 @@
+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
+FUSE Source (http://www.fusesource.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+JLine (http://jline.sourceforge.net).
+Licensed under the BSD License.
+
+
+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/shell/console/pom.xml b/karaf/shell/console/pom.xml
index 902b38f..ea11520 100644
--- a/karaf/shell/console/pom.xml
+++ b/karaf/shell/console/pom.xml
@@ -37,6 +37,10 @@
         Provides the OSGi Shell integration
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>jline</groupId>
@@ -101,10 +105,10 @@
                     <instructions>
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Import-Package>
-                            !javax.swing,
                             !org.apache.felix.karaf.shell.console*,
-                            !org.fusesource.jansi*,
                             !org.apache.felix.gogo.commands*,
+                            !org.fusesource.jansi*,
+                            !javax.swing,
                             !jline,
                             com.sun.jna*;resolution:=optional,
                             org.apache.felix.karaf.branding;resolution:=optional,
diff --git a/karaf/shell/log/NOTICE b/karaf/shell/log/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/log/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/log/pom.xml b/karaf/shell/log/pom.xml
index bedb7f8..56bcd13 100644
--- a/karaf/shell/log/pom.xml
+++ b/karaf/shell/log/pom.xml
@@ -37,6 +37,10 @@
         Provides the OSGi Log commands
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -72,6 +76,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/obr/NOTICE b/karaf/shell/obr/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/obr/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/obr/pom.xml b/karaf/shell/obr/pom.xml
index 0ab0f69..94fec6c 100644
--- a/karaf/shell/obr/pom.xml
+++ b/karaf/shell/obr/pom.xml
@@ -37,6 +37,10 @@
         Provides the OBR Shell commands
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix</groupId>
@@ -67,6 +71,7 @@
                             ${pom.artifactId}*;version=${project.version}
                         </Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/osgi/NOTICE b/karaf/shell/osgi/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/osgi/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/osgi/pom.xml b/karaf/shell/osgi/pom.xml
index d9bd71d..73a0926 100644
--- a/karaf/shell/osgi/pom.xml
+++ b/karaf/shell/osgi/pom.xml
@@ -37,6 +37,10 @@
         Provides the OSGi Shell commands
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -76,6 +80,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/packages/NOTICE b/karaf/shell/packages/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/packages/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/packages/pom.xml b/karaf/shell/packages/pom.xml
index 4f5b613..15f4cb2 100644
--- a/karaf/shell/packages/pom.xml
+++ b/karaf/shell/packages/pom.xml
@@ -37,6 +37,10 @@
         Provides the PackageAdmin Shell commands
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -66,6 +70,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/src/test/configs/services/org.apache.servicemix.shell.properties b/karaf/shell/src/test/configs/services/org.apache.servicemix.shell.properties
deleted file mode 100644
index 7779a61..0000000
--- a/karaf/shell/src/test/configs/services/org.apache.servicemix.shell.properties
+++ /dev/null
@@ -1,20 +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.
-#
-#
-startLocalConsole=false
diff --git a/karaf/shell/src/test/configs/services/org.ops4j.pax.logging.properties b/karaf/shell/src/test/configs/services/org.ops4j.pax.logging.properties
deleted file mode 100644
index d1f34a6..0000000
--- a/karaf/shell/src/test/configs/services/org.ops4j.pax.logging.properties
+++ /dev/null
@@ -1,34 +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.
-#
-#
-log4j.rootLogger=DEBUG, out
-
-log4j.logger.org.springframework=DEBUG
-
-# CONSOLE appender not used by default
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
-
-# File appender
-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/shell.log
-log4j.appender.out.append=true
diff --git a/karaf/shell/ssh/NOTICE b/karaf/shell/ssh/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/ssh/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/ssh/pom.xml b/karaf/shell/ssh/pom.xml
index 3166527..6745f0a 100644
--- a/karaf/shell/ssh/pom.xml
+++ b/karaf/shell/ssh/pom.xml
@@ -37,6 +37,10 @@
         Provides SSH support to the console
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -85,6 +89,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
diff --git a/karaf/shell/wrapper/NOTICE b/karaf/shell/wrapper/NOTICE
new file mode 100644
index 0000000..2f69501
--- /dev/null
+++ b/karaf/shell/wrapper/NOTICE
@@ -0,0 +1,21 @@
+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.
+
+
+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/shell/wrapper/pom.xml b/karaf/shell/wrapper/pom.xml
index 765666c..31c9b4d 100644
--- a/karaf/shell/wrapper/pom.xml
+++ b/karaf/shell/wrapper/pom.xml
@@ -37,6 +37,10 @@
         Provides the Service Wrapper Shell integration
     </description>
 
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.felix.karaf.shell</groupId>
@@ -82,6 +86,7 @@
                         <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
                         <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
                         <Import-Package>
+                            !${pom.artifactId}*,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
                             org.apache.felix.karaf.shell.console,
