<project>

  <parent>
    <groupId>org.apache.felix</groupId>
    <artifactId>felix</artifactId>
    <version>1.1.0-SNAPSHOT</version>
    <relativePath>../../pom/pom.xml</relativePath>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <packaging>bundle</packaging>
  <name>Apache Felix MOSGi Bundles management tab for the JMX console</name>
  <artifactId>org.apache.felix.mosgi.managedelements.bundlesprobes.tab</artifactId>
  <version>0.9.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>1.1.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>0.9.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.mosgi.console.ifc</artifactId>
      <version>0.9.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <version>1.0.0</version>
      <scope>provided</scope>
    </dependency>
     <dependency>
       <groupId>mx4j</groupId>
       <artifactId>mx4j-jmx</artifactId>
       <version>3.0.1</version>
       <scope>provided</scope>
    </dependency>
   
    
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>1.1.0-SNAPSHOT</version>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-Name>MOSGi Bundles management tab for the JMX console</Bundle-Name>
            <Bundle-Description>MOSGi Bundles management tab for the JMX console</Bundle-Description>
	    <Bundle-Activator>org.apache.felix.mosgi.managedelements.bundlesprobes.tab.BundlesProbesTabUI</Bundle-Activator>
            <Export-Package>${pom.artifactId}</Export-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
