<project>

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

  <properties>
    <felix.version>0.8.0-SNAPSHOT</felix.version>
  </properties>

  <modelVersion>4.0.0</modelVersion>
  <packaging>osgi-bundle</packaging>
  <name>Apache Felix MOSGi JMX agent</name>
  <artifactId>org.apache.felix.mosgi.jmx.agent</artifactId>
  <version>0.9.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>${felix.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>${felix.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <version>${felix.version}</version>
      <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-MX4J Agent Service</bundleName>
            <bundleDescription>MOSGi JMX-MX4J Agent Service</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",
              org.apache.felix.mosgi.jmx.agent.mx4j.server;specification-version="1.0.0",
              org.apache.felix.mosgi.jmx.agent.mx4j.server.interceptor;specification-version="1.0.0",
              org.apache.felix.mosgi.jmx.agent.mx4j.util;specification-version="1.0.0"
            </exportPackage>
            <importPackage>
              org.osgi.service.log;specification-version="1.0.0",
              org.osgi.framework;specification-version="1.0.0",
              javax.management;specification-version="1.0.0",
              javax.management.loading;specification-version="1.0.0"
            </importPackage>
          </osgiManifest>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
