<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-parent</artifactId>
    <version>1.2.0</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.9.0-SNAPSHOT</version>

  <properties>
    <cyberdomo.jdk14.version>1.8.0</cyberdomo.jdk14.version>
    <cyberdomo.jdk13.version>1.8.0</cyberdomo.jdk13.version>
    <cyberlink.jdk14.version>1.7.0</cyberlink.jdk14.version>
  </properties>

  <profiles>
    <profile>
      <id>LATEST</id>
      <repositories>
        <repository>
          <id>release.domoware.isti.cnr.it</id>
          <name>Domoware Java Repository</name>
          <url>http://domoware.isti.cnr.it/maven2/</url>
          <snapshots><enabled>false</enabled></snapshots>
        </repository>
        <repository>
          <id>snapshot.domoware.isti.cnr.it</id>
          <name>Domoware Java Snapshot Repository</name>
          <url>http://domoware.isti.cnr.it/maven2-snap/</url>
          <releases><enabled>false</enabled></releases>
        </repository>
      </repositories>
      <properties>
        <cyberdomo.jdk14.version>1.9.0-SNAPSHOT</cyberdomo.jdk14.version>
        <cyberdomo.jdk13.version>1.8.1-SNAPSHOT</cyberdomo.jdk13.version>
        <cyberlink.jdk14.version>1.8.0-SNAPSHOT</cyberlink.jdk14.version>
      </properties>
    </profile>

    <profile>
      <id>cyberlink</id>
      <activation>
      	<property>
          <name>cyberlink</name><value>true</value>
        </property>	
      </activation>

      <repositories>
        <repository>
          <id>release.cgupnpjava.sourceforge.net</id>
          <name>CyberLink for Java Repository</name>
          <url>http://cgupnpjava.sourceforge.net/repository/</url>
          <snapshots><enabled>false</enabled></snapshots>
        </repository>
        <repository>
          <id>snapshot.cgupnpjava.sourceforge.net</id>
          <name>CyberLink for Java Development Repository</name>
          <url>http://cgupnpjava.sourceforge.net/snapshots-repository/</url>
          <releases><enabled>false</enabled></releases>
        </repository>
      </repositories>

      <build>
        <plugins>
	  <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <executions>
              <execution>
                <id>cyberlink</id>
                <goals><goal>bundle</goal></goals>
                <configuration>
                  <classifier>cyberlink</classifier>
                  <manifestLocation>${project.build.outputDirectory}/META-INF-cyberlink</manifestLocation>
                  <excludeDependencies>it.cnr.isti.domoware.cyberdomo:upnp-stack,it.cnr.isti.domoware.cyberdomo:upnp-stack-jdk13</excludeDependencies>
                  <instructions>
                    <Export-Package>
                      org.apache.felix.upnp.basedriver.controller;version=0.1.0,
                      org.apache.felix.upnp.basedriver.util;version=0.3.0,
                      org.apache.felix.upnp.basedriver.resources;version=0.3.0,
                      org.osgi.service.upnp;version=1.1.0
                    </Export-Package>
                    <Import-Package>
                      org.osgi.*, javax.xml.parsers, org.w3c.dom, org.xml.sax,
		      !org.kxml2.io, !org.xmlpull.v1, !org.apache.xerces.parsers
                    </Import-Package>
                    <Private-Package>
                      org.apache.felix.upnp.basedriver.*;-split-package:=merge-first,
                      org.cybergarage.*,
                      org.apache.xerces.impl.dv.util
                    </Private-Package>
                  </instructions>
                </configuration>
              </execution>
            </executions>
	  </plugin>
	</plugins>
      </build>
      
      <dependencies>
        <dependency>
          <groupId>org.cybergarage.cyberlink</groupId>
          <artifactId>upnp-stack</artifactId>
          <version>1.8.0</version>
          <optional>true</optional>
	  <exclusions>
	    <exclusion>
              <groupId>xerces</groupId>
              <artifactId>xercesImpl</artifactId>
	    </exclusion>
	  </exclusions>
	</dependency>
      </dependencies>

    </profile>
  </profiles>
  
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
	  <excludeDependencies>org.cybergarage.cyberlink:upnp-stack,upnp-stack-jdk13</excludeDependencies>
          <instructions>
            <Bundle-Name>${pom.name}</Bundle-Name>
            <Bundle-Activator>
              org.apache.felix.upnp.basedriver.Activator
            </Bundle-Activator>
            <Bundle-Vendor>The 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.basedriver.controller;version=0.1.0,
              org.apache.felix.upnp.basedriver.util;version=0.3.0,
              org.apache.felix.upnp.basedriver.resources;version=0.3.0,
              org.osgi.service.upnp;version=1.1.0
            </Export-Package>
            <Import-Package>
              org.osgi.*, javax.xml.parsers, org.w3c.dom, org.xml.sax
            </Import-Package>
            <Private-Package>
              org.apache.felix.upnp.basedriver.*;-split-package:=merge-first,
              org.cybergarage.*,
              org.apache.xerces.impl.dv.util
            </Private-Package>
          </instructions>
        </configuration>
	<executions>
	  <execution>
	    <id>jdk13</id>
	    <goals><goal>bundle</goal></goals>
	    <configuration>
	      <classifier>jdk13</classifier>
              <manifestLocation>${project.build.outputDirectory}/META-INF-jdk13</manifestLocation>
              <excludeDependencies>upnp-stack</excludeDependencies>
              <instructions>
                <Export-Package>
                  org.apache.felix.upnp.basedriver.controller;version=0.1.0,
                  org.apache.felix.upnp.basedriver.util;version=0.3.0,
                  org.apache.felix.upnp.basedriver.resources;version=0.3.0,
                  org.osgi.service.upnp;version=1.1.0
                </Export-Package>
                <Import-Package>
                  org.osgi.*
                </Import-Package>
                <Private-Package>
                  org.apache.felix.upnp.basedriver.*;-split-package:=merge-first,
                  org.cybergarage.*,
                  org.kxml2.io, org.xmlpull.v1,
                  org.apache.xerces.impl.dv.util
                </Private-Package>
              </instructions>
	    </configuration>
	  </execution>
	</executions>
      </plugin>      
      <plugin>
        <groupId>org.ops4j</groupId>
        <artifactId>maven-pax-plugin</artifactId>
        <configuration>
          <provision>
            <provision>mvn:org.apache.felix/org.apache.felix.upnp.basedriver</provision>
            <provision>mvn:org.apache.felix/javax.servlet</provision>
          </provision>
        </configuration>
      </plugin>
    </plugins>
  </build>

<!-- !!! UNABLE TO ACCESS THESE REPOS !!!
  <repositories>
    <repository>
      <id>release.domoware.isti.cnr.it</id>
      <name>Domoware Java Repository</name>
      <url>http://domoware.isti.cnr.it/maven2/</url>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>
    <repository>
      <id>snapshot.domoware.isti.cnr.it</id>
      <name>Domoware Java Snapshot Repository</name>
      <url>http://domoware.isti.cnr.it/maven2-snap/</url>
      <releases><enabled>false</enabled></releases>
    </repository>
  </repositories>
-->

  <dependencies>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>1.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>it.cnr.isti.domoware.cyberdomo</groupId>
      <artifactId>upnp-stack</artifactId>
      <version>${cyberdomo.jdk14.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>it.cnr.isti.domoware.cyberdomo</groupId>
      <artifactId>upnp-stack-jdk13</artifactId>
      <version>${cyberdomo.jdk13.version}</version>
      <optional>true</optional>
    </dependency>
  </dependencies>
</project>
