<?xml version="1.0" encoding="UTF-8"?>
<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</name>
  <groupId>org.jboss.osgi</groupId>
  <artifactId>jboss-osgi</artifactId>
  <packaging>pom</packaging>

  <version>1.0.0.Beta2</version>

  <parent>
    <groupId>org.jboss.osgi</groupId>
    <artifactId>jboss-osgi-parent</artifactId>
    <version>1.0.0</version>
  </parent>
  
  <!-- Modules -->
  <modules>
    <module>spi</module>
    <module>3rdparty</module>
    <module>runtime</module>
    <module>integration</module>
    <module>repository</module>
    <module>bundles</module>
    <module>husky</module>
    <module>blueprint</module>
    <module>testsuite</module>
  </modules>

  <!-- Properties -->
  <properties>
    <surefire.security.args>-Djava.security.manager -Djava.security.policy=src/test/resources/tst.policy</surefire.security.args>
    <version.args4j>2.0.12</version.args4j>
    <version.equinox>3.4.2</version.equinox>
    <version.felix.bundlerepository>1.0.3</version.felix.bundlerepository>
    <version.felix.configadmin>1.0.10</version.felix.configadmin>
    <version.felix.framework>1.8.0</version.felix.framework>
    <version.felix.http.jetty>1.0.0</version.felix.http.jetty>
    <version.felix.javax.servlet>1.0.0</version.felix.javax.servlet>
    <version.felix.log>1.0.0</version.felix.log>
    <version.felix.metatype>1.0.2</version.felix.metatype>
    <version.felix.osgi.core>1.2.0</version.felix.osgi.core>
    <version.felix.scr>1.0.0</version.felix.scr>
    <version.felix.webconsole>1.2.8</version.felix.webconsole>
    <version.izpack>4.2.0</version.izpack>
    <version.javax.servlet>2.4</version.javax.servlet>
    <version.jboss.aop>2.0.1.GA</version.jboss.aop>
    <version.jboss.deployers>2.0.5.GA</version.jboss.deployers>
    <version.jboss.jdocbook.plugin>2.1.2</version.jboss.jdocbook.plugin>
    <version.jboss.jdocbook.style>1.1.0</version.jboss.jdocbook.style>
    <version.jboss.logging>2.0.5.GA</version.jboss.logging>
    <version.jboss.microcontainer>2.0.4.GA</version.jboss.microcontainer>
    <version.jboss.naming>5.0.1.GA</version.jboss.naming>
    <version.jboss.osgi.apache.xerces>2.9.1</version.jboss.osgi.apache.xerces>
    <version.jboss.osgi.blueprint>1.0.0.Alpha1</version.jboss.osgi.blueprint>
    <version.jboss.osgi.common>1.0.0.Beta2</version.jboss.osgi.common>
    <version.jboss.osgi.common.core>2.2.11</version.jboss.osgi.common.core>
    <version.jboss.osgi.deployers>1.0.0.Beta2</version.jboss.osgi.deployers>
    <version.jboss.osgi.hotdeploy>1.0.0.Beta2</version.jboss.osgi.hotdeploy>
    <version.jboss.osgi.husky>1.0.0.Beta2</version.jboss.osgi.husky>
    <version.jboss.osgi.integration.jbossas>1.0.0.Beta2</version.jboss.osgi.integration.jbossas>
    <version.jboss.osgi.jaxb>2.1.10</version.jboss.osgi.jaxb>
    <version.jboss.osgi.jmx>1.0.0.Beta2</version.jboss.osgi.jmx>
    <version.jboss.osgi.jndi>1.0.0.Beta2</version.jboss.osgi.jndi>
    <version.jboss.osgi.microcontainer>1.0.0.Beta2</version.jboss.osgi.microcontainer>
    <version.jboss.osgi.remotelog>1.0.0.Beta2</version.jboss.osgi.remotelog>
    <version.jboss.osgi.runtime.equinox>1.0.0.Beta2</version.jboss.osgi.runtime.equinox>
    <version.jboss.osgi.runtime.felix>1.0.0.Beta2</version.jboss.osgi.runtime.felix>
    <version.jboss.osgi.runtime.knopflerfish>1.0.0.Beta2</version.jboss.osgi.runtime.knopflerfish>
    <version.jboss.osgi.spi>1.0.0.Beta2</version.jboss.osgi.spi>
    <version.jboss.osgi.webconsole>1.0.0.Beta2</version.jboss.osgi.webconsole>
    <version.jboss.osgi.xml.binding>2.0.0</version.jboss.osgi.xml.binding>
    <version.jbossas>5.0.1.GA</version.jbossas>
    <version.junit>4.6</version.junit>
    <version.knopflerfish>2.2.0</version.knopflerfish>
    <version.osgi>r4v41</version.osgi>
  </properties>

  <!-- DependencyManagement -->
  <dependencyManagement>
    <dependencies>

      <!-- JBoss OSGi Dependencies -->
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-blueprint</artifactId>
        <version>1.0.0.Alpha1</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-deployers</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-integration-jbossas</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-husky</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-spi</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>

      <!-- JBoss OSGi Bundle Dependencies -->
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-common</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-hotdeploy</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-jmx</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-jndi</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-microcontainer</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-remotelog</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-webconsole</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>

      <!-- 3rd Party Bundle Dependencies -->
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-apache-xerces</artifactId>
        <version>2.9.1</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-common-core</artifactId>
        <version>2.2.11</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-jaxb</artifactId>
        <version>2.1.10</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.osgi.bundles</groupId>
        <artifactId>jboss-osgi-xml-binding</artifactId>
        <version>2.0.0</version>
      </dependency>

      <!-- 3rd Party Dependencies -->
      <dependency>
        <groupId>args4j</groupId>
        <artifactId>args4j</artifactId>
        <version>2.0.12</version>
      </dependency> 
      <dependency>
        <groupId>biz.aQute</groupId>
        <artifactId>bnd</artifactId>
        <version>${version.aqute.bnd}</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.6</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.izpack</groupId>
        <artifactId>izpack-standalone-compiler</artifactId>
        <version>4.2.0</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.aop</groupId>
        <artifactId>jboss-aop</artifactId>
        <version>2.0.1.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.deployers</groupId>
        <artifactId>jboss-deployers-client-spi</artifactId>
        <version>2.0.5.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.deployers</groupId>
        <artifactId>jboss-deployers-impl</artifactId>
        <version>2.0.5.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.deployers</groupId>
        <artifactId>jboss-deployers-vfs</artifactId>
        <version>2.0.5.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.deployers</groupId>
        <artifactId>jboss-deployers-vfs-spi</artifactId>
        <version>2.0.5.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging-spi</artifactId>
        <version>2.0.5.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging-log4j</artifactId>
        <version>2.0.5.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.microcontainer</groupId>
        <artifactId>jboss-aop-mc-int</artifactId>
        <version>2.0.4.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.microcontainer</groupId>
        <artifactId>jboss-kernel</artifactId>
        <version>2.0.4.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.naming</groupId>
        <artifactId>jnpserver</artifactId>
        <version>5.0.1.GA</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.jbossas</groupId>
        <artifactId>jboss-as-client</artifactId>
        <version>5.0.1.GA</version>
        <type>pom</type>
      </dependency>

      <!-- OSGi Dependencies -->
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>r4v41</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
        <version>r4v41</version>
      </dependency>

      <!-- Equinox Dependencies -->
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-runtime-equinox</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.equinox</groupId>
        <artifactId>org.eclipse.osgi</artifactId>
        <version>3.4.2</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.equinox</groupId>
        <artifactId>org.eclipse.osgi.services</artifactId>
        <version>3.4.2</version>
      </dependency>

      <!-- Felix Dependencies -->
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-runtime-felix</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>javax.servlet</artifactId>
        <version>1.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.bundlerepository</artifactId>
        <version>1.0.3</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.osgi.compendium</artifactId>
        <version>1.2.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>1.2.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.configadmin</artifactId>
        <version>1.0.10</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.framework</artifactId>
        <version>1.8.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.http.jetty</artifactId>
        <version>1.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.log</artifactId>
        <version>1.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.metatype</artifactId>
        <version>1.0.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.scr</artifactId>
        <version>1.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.webconsole</artifactId>
        <version>1.2.8</version>
      </dependency>

      <!-- Knopflerfish Dependencies -->
      <dependency>
        <groupId>org.jboss.osgi</groupId>
        <artifactId>jboss-osgi-runtime-knopflerfish</artifactId>
        <version>1.0.0.Beta2</version>
      </dependency>
      <dependency>
        <groupId>org.knopflerfish</groupId>
        <artifactId>org.knopflerfish.framework</artifactId>
        <version>2.2.0</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- Dependencies -->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging-log4j</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  
  <!-- Repositories -->
  <repositories>
    <repository>
      <id>repository.jboss.org</id>
      <name>JBoss Repository</name>
      <url>http://repository.jboss.org/maven2/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>snapshots.jboss.org</id>
      <name>JBoss Snapshots Repository</name>
      <url>http://snapshots.jboss.org/maven2/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <!-- Profiles -->
  <profiles>

    <!--
      Name: distro
      Desc: Build the distribution
    -->
    <profile>
      <id>distro</id>
      <modules>
        <module>distribution</module>
        <module>docbook</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <skipTests>true</skipTests>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
      Name: no-jboss-bind-address
      Desc: Set the default jboss.bind.address
    -->
    <profile>
      <id>no-jboss-bind-address</id>
      <activation>
        <property>
          <name>!jboss.bind.address</name>
        </property>
      </activation>
      <properties>
        <jboss.bind.address>localhost</jboss.bind.address>
      </properties>
    </profile>

    <!--
      Name: framework-default 
      Descr: Setup for default framework integration testing
    -->
    <profile>
      <id>framework-default</id>
      <activation>
        <property>
          <name>!framework</name>
        </property>
      </activation>
      <properties>
        <jboss.osgi.framework.properties>jboss-osgi-felix.properties</jboss.osgi.framework.properties>
      </properties>
    </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>
    </profile>

    <!--
      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>
    </profile>

    <!--
      Name: framework-knopflerfish
      Descr: Setup for Equinox framework integration testing
    -->
    <profile>
      <id>framework-knopflerfish</id>
      <activation>
        <property>
          <name>framework</name>
          <value>knopflerfish</value>
        </property>
      </activation>
      <properties>
        <jboss.osgi.framework.properties>jboss-osgi-knopflerfish.properties</jboss.osgi.framework.properties>
      </properties>
    </profile>
    
    <!--
      Name: embedded-testing 
      Descr: Setup for embedded integration testing
    -->
    <profile>
      <id>embedded-testing</id>
      <activation>
        <property>
          <name>!target.container</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <!--
                  You can copy these properties in Eclipse to debug example tests
                  
                  -Djava.protocol.handler.pkgs=org.jboss.net.protocol|org.jboss.virtual.protocol
                  -Djndi.server.port=1199
                  -Dlog4j.output.dir=${workspace_loc:jboss-osgi-testsuite-example/target}
                  -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeAwareParserConfiguration
                  -Djboss.osgi.framework.properties=jboss-osgi-felix.properties
                  -Dorg.jboss.osgi.husky.Invoker=org.jboss.osgi.husky.internal.OSGiInvoker
                  -Dtest.archive.directory=${workspace_loc:jboss-osgi-testsuite-example/target}/test-libs
                -->
                <property>
                  <name>java.protocol.handler.pkgs</name>
                  <value>org.jboss.net.protocol|org.jboss.virtual.protocol</value>
                </property>
                <property>
                  <name>jndi.server.port</name>
                  <value>1199</value>
                </property>
                <property>
                  <name>log4j.output.dir</name>
                  <value>${project.build.directory}</value>
                </property>
                <property>
                  <name>jboss.osgi.framework.properties</name>
                  <value>${jboss.osgi.framework.properties}</value>
                </property>
                <property>
                  <name>org.jboss.osgi.husky.Invoker</name>
                  <value>org.jboss.osgi.husky.internal.OSGiInvoker</value>
                </property>
                <property>
                  <name>test.archive.directory</name>
                  <value>${project.build.directory}/test-libs</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
      Name: remote-testing 
      Descr: Setup for remote integration testing
    -->
    <profile>
      <id>remote-testing</id>
      <activation>
        <property>
          <name>target.container</name>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.jboss.jbossas</groupId>
          <artifactId>jboss-as-client</artifactId>
          <scope>test</scope>
          <type>pom</type>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>java.protocol.handler.pkgs</name>
                  <value>org.jboss.net.protocol|org.jboss.virtual.protocol</value>
                </property>
                <property>
                  <name>jboss.bind.address</name>
                  <value>${jboss.bind.address}</value>
                </property>
                <property>
                  <name>jndi.server.port</name>
                  <value>1099</value>
                </property>
                <property>
                  <name>log4j.output.dir</name>
                  <value>${project.build.directory}</value>
                </property>
                <property>
                  <name>org.apache.xerces.xni.parser.XMLParserConfiguration</name>
                  <value>org.apache.xerces.parsers.XIncludeAwareParserConfiguration</value>
                </property>
                <property>
                  <name>jboss.osgi.framework.properties</name>
                  <value>${jboss.osgi.framework.properties}</value>
                </property>
                <property>
                  <name>org.jboss.osgi.husky.Invoker</name>
                  <value>org.jboss.osgi.husky.internal.OSGiInvoker</value>
                </property>
                <property>
                  <name>org.jboss.osgi.husky.runtime.connector.host</name>
                  <value>${jboss.bind.address}</value>
                </property>
                <property>
                  <name>org.jboss.osgi.husky.runtime.connector.port</name>
                  <value>5401</value>
                </property>
                <property>
                  <name>target.container</name>
                  <value>${target.container}</value>
                </property>
                <property>
                  <name>test.archive.directory</name>
                  <value>${project.build.directory}/test-libs</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <!--
      Name: jboss501
      Descr: Setup for jboss501 integration testing
    -->
    <profile>
      <id>jboss501</id>
      <activation>
        <property>
          <name>target.container</name>
          <value>jboss501</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.jboss.jbossas</groupId>
          <artifactId>jboss-as-client</artifactId>
          <scope>test</scope>
          <type>pom</type>
        </dependency>
      </dependencies>
    </profile>

    <!--
      Name: jboss510
      Descr: Setup for jboss510 integration testing
    -->
    <profile>
      <id>jboss510</id>
      <activation>
        <property>
          <name>target.container</name>
          <value>jboss510</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.jboss.jbossas</groupId>
          <artifactId>jboss-as-client</artifactId>
          <scope>test</scope>
          <type>pom</type>
        </dependency>
      </dependencies>
    </profile>

    <!--
      Name: jboss600
      Descr: Setup for jboss600 integration testing
    -->
    <profile>
      <id>jboss600</id>
      <activation>
        <property>
          <name>target.container</name>
          <value>jboss600</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.jboss.jbossas</groupId>
          <artifactId>jboss-as-client</artifactId>
          <scope>test</scope>
          <type>pom</type>
        </dependency>
      </dependencies>
    </profile>

  </profiles>

</project>
