<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>bundle</packaging>
  <groupId>org.apache.felix</groupId>
  <name>Apache Felix UPnP Base Driver</name>
  <artifactId>org.apache.felix.upnp.basedriver</artifactId>
  <version>0.2.0-SNAPSHOT</version>
  <repositories>
    <!-- For snapshots (no release jars or non-apache jars)           -->
    <repository>
      <id>snapshot.cgupnpjava.sourceforge.net</id>
      <name>CyberLink for Java repository</name>
      <url>http://cgupnpjava.sourceforge.net/snapshots-repository/</url>
      <releases><enabled>false</enabled></releases>
    </repository>
    <repository>
      <id>cgupnpjava.sourceforge.net</id>
      <name>CyberLink for Java repository</name>
      <url>http://cgupnpjava.sourceforge.net/repository/</url>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>
  </repositories>   <!-- <url>http://maven.apache.org</url> -->
  <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>org.apache.felix</groupId>
      <artifactId>org.apache.felix.upnp.extra</artifactId>
      <version>0.2.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.cybergarage.cyberlink</groupId>
      <artifactId>upnp-stack</artifactId>
      <version>1.8.0-SNAPSHOT</version>
    </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>${pom.name}</Bundle-Name>
            <Bundle-Activator>org.apache.felix.upnp.basedriver.Activator</Bundle-Activator>
            <Bundle-Vendor>Apache Software Foundation</Bundle-Vendor>
            <Bundle-Author><![CDATA[Matteo Demuru <demuru@apache.org>,Francesco Furfari <furfari@apache.org>,Stefano "Kismet" Lenzi <lenzi@apache.org>]]></Bundle-Author>
            <Bundle-Description>
               	A Bundle implementation of the UPnP Service Specification R4
            </Bundle-Description>
            <Bundle-SymbolicName>org.apache.felix.upnp.basedriver</Bundle-SymbolicName>
            <Export-Package>org.cybergarage.upnp</Export-Package>
            <Import-Package>
              org.apache.felix.upnp.extra.*, org.xml.sax.*, org.osgi.*, javax.*, org.w3c.*, 
              !org.apache.xerces.*, !org.kxml2.io, !org.xmlpull.v1
            </Import-Package>
            <Private-Package>org.apache.felix.upnp.basedriver.*,org.cybergarage.*</Private-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
