<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>0.8.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <packaging>osgi-bundle</packaging>
  <groupId>org.apache.felix</groupId>
  <name>Apache Felix UPnP Base Driver</name>
  <artifactId>org.apache.felix.upnp.basedriver</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <repositories>
    <!-- For snapshots (no release jars or non-apache jars)           -->
    <repository>
      <id>domoware.isti.cnr.it</id>
      <name>DomoWare Repository for Missing Artifacts</name>
      <url>http://domoware.isti.cnr.it/maven2</url>
    </repository>
  </repositories>   <!-- <url>http://maven.apache.org</url> -->
  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>0.8.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>0.8.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.upnp.extra</artifactId>
      <version>0.1.0-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org-cybergarage</groupId>
      <artifactId>cyberlink-upnp-patched</artifactId>
      <version>1.7.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix.plugins</groupId>
        <artifactId>maven-osgi-plugin</artifactId>
        <!-- <version>${pom.version}</version> -->
        <extensions>true</extensions>
        <configuration>
          <osgiManifest>
            <bundleName>UPnPBaseDriver</bundleName>
            <bundleVendor>Apache Software Foundation</bundleVendor>
            <bundleVersion>1.0.0</bundleVersion>
            <bundleDescription>
               	A Bundle implementation of the UPnP Service Specification R4 (not yet)
            </bundleDescription>
            <bundleSymbolicName>org.apache.felix.upnp.basedriver</bundleSymbolicName>
		<!-- <bundleClassPath>.,lib/cyberlink-1.7-patched-release.jar</bundleClassPath> -->
		<bundleActivator>org.apache.felix.upnp.basedriver.Activator</bundleActivator>
            <importPackage>
			org.w3c.dom,javax.xml.parsers,org.xml.sax,org.osgi.framework;specification-version=1.3,org.osgi.service.device;specification-version=1.1,org.osgi.service.upnp;specification-version=1.1,org.osgi.service.log;specification-version=1.3,org.apache.felix.upnp.extra.util;specification-version=1.0,org.apache.felix.upnp.extra.controller;specification-version=1.0
            </importPackage>
          </osgiManifest>
          <manifestFile>src/main/resources/release/META-INF/Manifest.mf</manifestFile>
        </configuration>
      </plugin>
    </plugins>
    <resources>
      <resource>
	  <directory>src/main/resources/release</directory>
      </resource>
    </resources>
  </build>
</project>
