diff --git a/mishell/pom.xml b/mishell/pom.xml
index 9ff3343..00fd67d 100644
--- a/mishell/pom.xml
+++ b/mishell/pom.xml
@@ -1,93 +1,94 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-<parent>
-    <groupId>org.apache.felix</groupId>
-    <artifactId>felix</artifactId>
-    <version>0.9.0-incubator-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <name>Management Interactive Shell</name>
-   <packaging>osgi-bundle</packaging>
-  <artifactId>${groupId}.mishell</artifactId>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-     <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>${groupId}.jmxintrospector</artifactId>
-      <version>${pom.version}</version>
-    </dependency>
-        <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.osgi.core</artifactId>
-      <version>${pom.version}</version>
-      <scope>provided</scope>
-    </dependency>
-        <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <version>${pom.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    
-        <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.apache.felix.framework</artifactId>
-      <version>${pom.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    
-  </dependencies>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix.plugins</groupId>
-        <artifactId>maven-osgi-plugin</artifactId>
-        <version>${pom.version}</version>
-        <extensions>true</extensions>
-        <configuration>
-		    <!--
-		    We're inlining a lot here. This is nasty for a bundle, nice for an executable jar.
-		    It should be simple to change afterwards
-		    -->
-    	    <inlinedArtifacts>
-        	    <inlinedArtifact>org.apache.felix.jmxintrospector</inlinedArtifact>
-          	</inlinedArtifacts>
-          <osgiManifest>
-            <bundleActivator>${artifactId}.Activator</bundleActivator>
-            <bundleName>${name}</bundleName>
-            <bundleDescription>Management Interactive Shell</bundleDescription>
-            <bundleSymbolicName>${artifactId}</bundleSymbolicName>
-            <dynamicImportPackage>
-            *
-            </dynamicImportPackage>
-            <importPackage>
-            <!--Note that we explicitly do not import jmood classes as they we use 
-            dynamically generated interfaces and proxies instead-->
-			org.osgi.framework, javax.management, javax.management.remote, javax.script
-			</importPackage>
-            
-          </osgiManifest>
-        </configuration>
-      </plugin>
-              <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.6</source><!--should fail if not java6-->
-                    <target>1.6</target>
-                </configuration>
-             </plugin>      
-    </plugins>
-  </build>
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<parent>
+    <groupId>org.apache.felix</groupId>
+    <artifactId>felix</artifactId>
+    <version>0.9.0-incubator-SNAPSHOT</version>
+    <relativePath>../pom/pom.xml</relativePath>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <name>Management Interactive Shell</name>
+   <packaging>osgi-bundle</packaging>
+  <artifactId>${groupId}.mishell</artifactId>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+     <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>${groupId}.jmxintrospector</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+        <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>${pom.version}</version>
+      <scope>provided</scope>
+    </dependency>
+        <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>${pom.version}</version>
+      <scope>provided</scope>
+    </dependency>
+    
+        <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>org.apache.felix.framework</artifactId>
+      <version>${pom.version}</version>
+      <scope>provided</scope>
+    </dependency>
+    
+  </dependencies>
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix.plugins</groupId>
+        <artifactId>maven-osgi-plugin</artifactId>
+        <version>${pom.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+		    <!--
+		    We're inlining a lot here. This is nasty for a bundle, nice for an executable jar.
+		    It should be simple to change afterwards
+		    -->
+    	    <inlinedArtifacts>
+        	    <inlinedArtifact>org.apache.felix.jmxintrospector</inlinedArtifact>
+          	</inlinedArtifacts>
+          <osgiManifest>
+            <bundleActivator>${artifactId}.Activator</bundleActivator>
+            <bundleName>${name}</bundleName>
+            <bundleDescription>Management Interactive Shell</bundleDescription>
+            <bundleSymbolicName>${artifactId}</bundleSymbolicName>
+            <dynamicImportPackage>
+            *
+            </dynamicImportPackage>
+            <importPackage>
+            <!--Note that we explicitly do not import jmood classes as they we use 
+            dynamically generated interfaces and proxies instead-->
+			org.osgi.framework, javax.management, javax.management.remote, javax.script
+			</importPackage>
+            
+          </osgiManifest>
+        </configuration>
+      </plugin>
+              <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.6</source><!--should fail if not java6-->
+                    <target>1.6</target>
+                </configuration>
+             </plugin>      
+    </plugins>
+  </build>
+</project>
