<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>1.1.0-SNAPSHOT</version>
    <relativePath>../pom/pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <packaging>osgi-bundle</packaging>
  <groupId>org.apache.felix</groupId>
  <name>Apache Felix UPnP Extra </name>
  <artifactId>org.apache.felix.upnp.extra</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <!-- <url>http://maven.apache.org</url> -->
  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>0.9.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix.plugins</groupId>
        <artifactId>maven-osgi-plugin</artifactId>
        <version>0.9.0-SNAPSHOT</version>
        <extensions>true</extensions>
        <configuration>
          <osgiManifest>
            <bundleName>UPnPExtra</bundleName>
            <bundleVendor>Apache Software Foundation</bundleVendor>
            <bundleVersion>0.1.0</bundleVersion>
            <bundleDescription>
               	A library used to extend the integration between UPnP and OSGi that is not part of the standard. Also services that allow to change the beahviour of the UPnP Base Driver
            </bundleDescription>
            <bundleSymbolicName>org.apache.felix.upnp.extra</bundleSymbolicName>
            <exportPackage>
               	org.apache.felix.upnp.extra.util;specification-version=1.0,org.apache.felix.upnp.extra.controller;specification-version=1.0
            </exportPackage>
          </osgiManifest>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
