<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.3.0-SNAPSHOT</version>
  <repositories>
    <!-- For snapshots (no release jars or non-apache jars)           -->
    <repository>
      <id>snap.domoware.isti.cnr.it</id>
      <name>Domoware Snapshot Repository</name>
      <url>http://domoware.isti.cnr.it/maven2-snap</url>
      <releases><enabled>false</enabled></releases>
    </repository>
    <!-- For release (no snapshots jars or non-apache jars)           -->
    <repository>
      <id>release.domoware.isti.cnr.it</id>
      <name>Domoware Release Repository</name>
      <url>http://domoware.isti.cnr.it/maven2</url>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>
  </repositories>   <!-- <url>http://maven.apache.org</url> -->

  <profiles>

    <profile>
      <id>jdk13</id>
      <activation>
        <property>
          <name>platform</name>
          <value>jdk13</value>
        </property>
      </activation>
  <dependencies>
    <dependency>
      <groupId>it.cnr.isti.domoware.cyberdomo</groupId>
      <artifactId>upnp-stack-jdk13</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>
	    <!--Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
	    <Embed-Transitive>true</Embed-Transitive-->
	    <Export-Package>
	      org.apache.felix.upnp.extra.*
	    </Export-Package>
            <Import-Package>
              org.osgi.*
            </Import-Package>
            <Private-Package>
              org.apache.felix.upnp.basedriver.*, org.kxml2.io, org.xmlpull.v1, org.cybergarage.*, org.apache.xerces.impl.dv.util
            </Private-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>
    </profile>

    <profile>
      <id>jdk14-or-above</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
  <dependencies>
    <dependency>
      <groupId>it.cnr.isti.domoware.cyberdomo</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.apache.felix.upnp.extra.*
	    </Export-Package>
            <Import-Package>
              org.osgi.*, javax.xml.parsers, org.w3c.dom, org.xml.sax
            </Import-Package>
            <Private-Package>
              org.apache.felix.upnp.basedriver.*, org.cybergarage.*,org.apache.xerces.impl.dv.util
            </Private-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>

    </profile>
  </profiles>


  <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.3.0-SNAPSHOT</version>      
    </dependency>
  </dependencies>
</project>
