<?xml version="1.0" encoding="UTF-8"?>

<!-- ====================================================================== -->
<!--                                                                        -->
<!-- JBoss, the OpenSource J2EE webOS                                       -->
<!--                                                                        -->
<!-- Distributable under LGPL license.                                      -->
<!-- See terms of license at http://www.gnu.org.                            -->
<!--                                                                        -->
<!-- ====================================================================== -->

<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">
  <modelVersion>4.0.0</modelVersion>

  <name>JBossOSGi Testsuite</name>

  <groupId>org.jboss.osgi.testsuite</groupId>
  <artifactId>jboss-osgi-testsuite</artifactId>
  <packaging>pom</packaging>

  <parent>
    <groupId>org.jboss.osgi</groupId>
    <artifactId>jboss-osgi</artifactId>
    <version>1.0.0.Beta9</version>
  </parent>

  <!-- Modules -->
  <modules>
    <module>example</module>
    <module>functional</module>
    <module>performance</module>
  </modules>

  <!-- Properties -->
  <properties>
    <version.jnp.client>5.0.1.GA</version.jnp.client>
    <surefire.system.args>-da ${surefire.memory.args} ${surefire.jpda.args} ${surefire.profiler.args}</surefire.system.args>
  </properties>

  <!-- Dependencies -->
  <dependencies>
    <dependency>
      <groupId>biz.aQute</groupId>
      <artifactId>bnd</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi</groupId>
      <artifactId>jboss-osgi-spi</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.deployment</groupId>
      <artifactId>jboss-osgi-deployment</artifactId>
    </dependency>

    <!-- Apache Aries Dependencies -->
    <dependency>
      <groupId>org.apache.aries.jmx</groupId>
      <artifactId>org.apache.aries.jmx</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.aries</groupId>
      <artifactId>org.apache.aries.util</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Bundle Dependencies -->
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.log</artifactId>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.osgi.core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.osgi.compendium</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- 
      Contains classes from org.osgi.util.tracker that must come after the framework provided ones. 
      Equinox chokes with SecurityException. 
    <dependency> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>org.apache.felix.configadmin</artifactId> 
      <scope>provided</scope> 
    </dependency> 
    -->
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.eventadmin</artifactId>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.osgi</groupId>
          <artifactId>org.osgi.compendium</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.metatype</artifactId>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.osgi.core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.osgi.compendium</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.jboss.arquillian.protocol</groupId>
      <artifactId>arquillian-osgi-bundle</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.blueprint</groupId>
      <artifactId>jboss-osgi-blueprint</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.common</groupId>
      <artifactId>jboss-osgi-common</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.common</groupId>
      <artifactId>jboss-osgi-common-core</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.http</groupId>
      <artifactId>jboss-osgi-http</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.jaxb</groupId>
      <artifactId>jboss-osgi-jaxb</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.jmx</groupId>
      <artifactId>jboss-osgi-jmx</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.jndi</groupId>
      <artifactId>jboss-osgi-jndi</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.jta</groupId>
      <artifactId>jboss-osgi-jta</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.reflect</groupId>
      <artifactId>jboss-osgi-reflect</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.serviceloader</groupId>
      <artifactId>jboss-osgi-serviceloader</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.webapp</groupId>
      <artifactId>jboss-osgi-webapp</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.osgi.xerces</groupId>
      <artifactId>jboss-osgi-xerces</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- javax.* -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
    </dependency>

    <!-- OPS4J -->
    <dependency>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-extender-war</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Test Dependencies -->
    <dependency>
      <groupId>org.jboss.naming</groupId>
      <artifactId>jnp-client</artifactId>
      <version>${version.jnp.client}</version>
      <exclusions>
        <exclusion>
          <groupId>org.jboss</groupId>
          <artifactId>jboss-common-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.jboss.logging</groupId>
          <artifactId>jboss-logging-spi</artifactId>
        </exclusion>
      </exclusions>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- Build -->
  <build>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <argLine>${surefire.system.args}</argLine>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <!-- Profiles -->
  <profiles>

    <!-- 
      Name: framework-equinox 
      Descr: Setup for Equinox framework integration testing 
    -->
    <profile>
      <id>framework-equinox</id>
      <activation>
        <property>
          <name>framework</name>
          <value>equinox</value>
        </property>
      </activation>
      <properties>
        <jboss.osgi.framework.properties>jboss-osgi-equinox.properties</jboss.osgi.framework.properties>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.osgi.equinox</groupId>
          <artifactId>jboss-osgi-equinox</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.osgi.vfs</groupId>
          <artifactId>jboss-osgi-vfs30</artifactId>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>

    <!-- 
      Name: framework-felix 
      Descr: Setup for Felix framework integration testing 
    -->
    <profile>
      <id>framework-felix</id>
      <activation>
        <property>
          <name>framework</name>
          <value>felix</value>
        </property>
      </activation>
      <properties>
        <jboss.osgi.framework.properties>jboss-osgi-felix.properties</jboss.osgi.framework.properties>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.osgi.felix</groupId>
          <artifactId>jboss-osgi-felix</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.osgi.vfs</groupId>
          <artifactId>jboss-osgi-vfs30</artifactId>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>

    <!-- 
      Name: framework-jbmsc 
      Descr: Setup for MSC Framework integration testing 
    -->
    <profile>
      <id>framework-jbmsc</id>
      <activation>
        <property>
          <name>framework</name>
          <value>jbmsc</value>
        </property>
      </activation>
      <properties>
        <jboss.osgi.framework.properties>jboss-osgi-jbmsc.properties</jboss.osgi.framework.properties>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.osgi.framework</groupId>
          <artifactId>jbosgi-framework-core</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.osgi.resolver</groupId>
          <artifactId>jbosgi-resolver-felix</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.osgi.vfs</groupId>
          <artifactId>jboss-osgi-vfs30</artifactId>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>default-framework</id>
      <activation>
        <property>
          <name>!framework</name>
        </property>
      </activation>
      <properties>
        <jboss.osgi.framework.properties>jboss-osgi-jbmsc.properties</jboss.osgi.framework.properties>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.osgi.framework</groupId>
          <artifactId>jbosgi-framework-core</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.osgi.resolver</groupId>
          <artifactId>jbosgi-resolver-felix</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.osgi.vfs</groupId>
          <artifactId>jboss-osgi-vfs30</artifactId>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>dependency-order</id>
      <activation>
        <!-- activeByDefault>true</activeByDefault -->
        <property>
          <name>user.home</name>
        </property>
      </activation>
      <dependencies>
        <!-- 
           Contains classes from org.osgi.util.tracker that must come after the framework provided ones. 
           Equinox chokes with SecurityException. 
        -->
        <dependency>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.apache.felix.configadmin</artifactId>
          <scope>provided</scope>
          <exclusions>
            <exclusion>
              <groupId>org.apache.felix</groupId>
              <artifactId>org.osgi.core</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.apache.felix</groupId>
              <artifactId>org.osgi.compendium</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
    </profile>

    <!-- 
      Name: embedded-testing 
      Descr: Setup for embedded integration testing 
    -->
    <profile>
      <id>embedded-testing</id>
      <activation>
        <property>
          <name>!target.container</name>
        </property>
      </activation>
      <properties>
        <target.container.excludes>org/jboss/test/osgi/jbossas/**</target.container.excludes>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.arquillian.container</groupId>
          <artifactId>arquillian-osgi-embedded</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <!-- 
      Name: runtime-testing 
      Descr: Setup for runtime integration testing 
    -->
    <profile>
      <id>runtime-testing</id>
      <activation>
        <property>
          <name>target.container</name>
          <value>runtime</value>
        </property>
      </activation>
      <properties>
        <target.container.excludes>org/jboss/test/osgi/jbossas/**</target.container.excludes>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.arquillian.container</groupId>
          <artifactId>arquillian-osgi-remote</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <!-- 
      Name: jboss700 
      Descr: Setup for jboss700 integration testing 
    -->
    <profile>
      <id>jboss700</id>
      <activation>
        <property>
          <name>target.container</name>
          <value>jboss700</value>
        </property>
      </activation>
      <properties>
        <target.container.excludes>org/jboss/test/osgi/nothing-to-exclude</target.container.excludes>
      </properties>
    </profile>

  </profiles>

</project>
