<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/xsd/maven-4.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>
  <packaging>bundle</packaging>
  <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
  <version>0.7.3-incubator-SNAPSHOT</version>
  <name>Apache Felix iPOJO Manipulator</name>
  <dependencies>
    <dependency>
      <groupId>asm</groupId>
      <artifactId>asm</artifactId>
      <version>3.0</version>
    </dependency>
    <dependency>
      <groupId>asm</groupId>
      <artifactId>asm-commons</artifactId>
      <version>3.0</version>
    </dependency>
    <!-- to remove -->
    <dependency>
      <groupId>asm</groupId>
      <artifactId>asm-tree</artifactId>
      <version>3.0</version>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
      <version>0.7.3-incubator-SNAPSHOT</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>          
            <Bundle-Name>iPOJO Manipulator</Bundle-Name>
            <Bundle-Vendor>Clement ESCOFFIER</Bundle-Vendor>
            <Bundle-Description> iPOJO Manipulator </Bundle-Description>
            <Private-Package>
            	org.apache.felix.ipojo.manipulation,
            	org.apache.felix.ipojo.manipulator,
            	org.apache.felix.ipojo.xml.parser,
              	org.objectweb.asm,
              	org.objectweb.asm.commons,
              	org.objectweb.asm.tree <!-- to remove -->
            </Private-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>