<project>

  <parent>
    <groupId>org.apache.felix</groupId>
    <artifactId>felix</artifactId>
    <version>0.9.0-incubator-SNAPSHOT</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <packaging>osgi-bundle</packaging>
  <name>Apache Felix MOSGi JMX MBean for obr interaction</name>
  <artifactId>org.apache.felix.mosgi.managedelements.obrprobe</artifactId>
  <version>0.9.0-incubator-SNAPSHOT</version>
  
  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.core</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.mosgi.console.ifc</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.bundlerepository</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix.plugins</groupId>
        <artifactId>maven-osgi-plugin</artifactId>
        <!--version>${felix.version}</version-->
        <extensions>true</extensions>
        <configuration>
          <osgiManifest>
            <bundleName>MOSGi JMX MBean for obr interaction</bundleName>
            <bundleDescription>MOSGi JMX MBean for obr interaction</bundleDescription>
            <bundleActivator>auto-detect</bundleActivator>
            <bundleDocUrl>http://oscar-osgi.sf.net/obr2/${pom.artifactId}/</bundleDocUrl>
            <bundleUrl>http://oscar-osgi.sf.net/obr2/${pom.artifactId}/${pom.artifactId}-${pom.version}.jar</bundleUrl>
            <bundleSource>http://oscar-osgi.sf.net/obr2/${pom.artifactId}/${pom.artifactId}-${pom.version}-src.jar</bundleSource>
            <bundleSymbolicName>${pom.artifactId}</bundleSymbolicName>
            <exportPackage>
              ${pom.artifactId};specification-version="1.0.0"
            </exportPackage>
            <importPackage>
              org.osgi.framework;specification-version="1.0.0",
              org.osgi.service.log;specification-version="1.0.0",
              javax.management;specification-version="1.0.0",
              org.osgi.service.obr,
              org.apache.felix.mosgi.console.ifc;specification-version="1.0.0"
            </importPackage>
          </osgiManifest>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
