<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>org.osgi</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>4.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>4.0</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>
