<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>
