<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>JBoss Web Services - Stack Native Testsuite</name>
  <artifactId>jbossws-native-testsuite</artifactId>
  <packaging>pom</packaging>

  <!-- Parent -->
  <parent>
    <groupId>org.jboss.ws.native</groupId>
    <artifactId>jbossws-native</artifactId>
    <version>4.1.0.Beta1</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

  <!-- Properties -->
  <properties>
    <surefire.jdwp.args>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</surefire.jdwp.args>
    <surefire.gc.args>-Xmx256m -XX:MaxPermSize=128m</surefire.gc.args>
    <test.archive.directory>${project.build.directory}/test-libs</test.archive.directory>
    <test.classes.directory>${project.build.directory}/test-classes</test.classes.directory>
    <test.resources.directory>${project.build.directory}/test-resources</test.resources.directory>
    <wsdl.publish.location>${project.build.directory}/wsdl-publish</wsdl.publish.location>
    <jboss.javaee.version>5.0.0.GA</jboss.javaee.version>
    <log4j.output.dir>${project.build.directory}</log4j.output.dir>
    <appclient.output.dir>${project.build.directory}/appclient-logs</appclient.output.dir>
  </properties>

  <!-- Modules -->
  <modules>
    <module>native-tests</module>
  </modules>

  <!-- Dependencies -->
  <dependencies>
    <dependency>
      <groupId>org.jboss.ws.native</groupId>
      <artifactId>jbossws-native-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.ws</groupId>
      <artifactId>jbossws-shared-testsuite</artifactId>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.16</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.javaee</groupId>
      <artifactId>jboss-javaee</artifactId>
      <version>${jboss.javaee.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- Build -->
  <build>
    <testResources>
      <!-- copy etc files -->
      <testResource>
        <directory>src/test/etc</directory>
        <filtering>true</filtering>
      </testResource>
      <!-- copy handler definitions -->
      <testResource>
        <targetPath>../test-classes</targetPath>
        <directory>src/test/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </testResource>
      <!-- copy non binary files -->
      <testResource>
        <targetPath>../test-resources</targetPath>
        <directory>src/test/resources</directory>
        <includes>
          <include>**/*.wsdl</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </testResource>
      <!-- copy binary files -->
      <testResource>
        <targetPath>../test-resources</targetPath>
        <directory>src/test/resources</directory>
        <excludes>
          <exclude>**/*.wsdl</exclude>
          <exclude>**/*.xml</exclude>
        </excludes>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.5</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>target/wsconsume/java</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <skip>true</skip>
          <failIfNoTests>false</failIfNoTests>
        </configuration>
        <executions>
          <execution>
            <id>integration-tests</id>
            <phase>integration-test</phase>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <parallel>classes</parallel>
              <threadCount>1</threadCount>
              <perCoreThreadCount>true</perCoreThreadCount>
              <skip>false</skip>
              <includes>
                <include>**/*Test.java</include>
                <include>**/*TestCase.java</include>
                <include>**/*TestCaseForked.java</include>
              </includes>
              <systemProperties>
            <property>
              <name>jboss.bind.address</name>
              <value>${jboss.bind.address}</value>
            </property>
            <property>
              <name>java.protocol.handler.pkgs</name>
              <value>org.jboss.net.protocol|org.jboss.vfs.protocol|org.jboss.virtual.protocol</value>
            </property>
            <property>
              <name>jboss.home</name>
              <value>${jboss.home}</value>
            </property>
            <property>
              <name>jbossws.integration.target</name>
              <value>${jbossws.integration.target}</value>
            </property>
            <property>
              <name>test.disable.deployment</name>
              <value>false</value>
            </property>
            <property>
              <name>log4j.output.dir</name>
              <value>${log4j.output.dir}</value>
            </property>
            <property>
              <name>appclient.output.dir</name>
              <value>${appclient.output.dir}</value>
            </property>
            <property>
              <name>org.jboss.ws.testsuite.securityDomain.users.propfile</name>
              <value>${project.build.directory}/test-classes/jbossws-users.properties</value>
            </property>
            <property>
              <name>org.jboss.ws.testsuite.securityDomain.roles.propfile</name>
              <value>${project.build.directory}/test-classes/jbossws-roles.properties</value>
            </property>
            <property>
              <name>test.archive.directory</name>
              <value>${test.archive.directory}</value>
            </property>
            <property>
              <name>test.classes.directory</name>
              <value>${test.classes.directory}</value>
            </property>
            <property>
              <name>test.resources.directory</name>
              <value>${test.resources.directory}</value>
            </property>
            <property>
              <name>wsdl.publish.location</name>
              <value>${wsdl.publish.location}</value>
            </property>
          </systemProperties>
        </configuration>
        </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <!-- Profiles -->
  <profiles>

    <!--
    Name:  debug
    Descr: Enable remote debuging for tests
    -->
    <profile>
      <id>debug</id>
      <activation>
        <property>
          <name>debug</name>
        </property>
      </activation>
      <properties>
        <surefire.jvm.args>${surefire.jdwp.args} ${surefire.gc.args}</surefire.jvm.args>
      </properties>
    </profile>
    <profile>
      <id>no-debug</id>
      <activation>
        <property>
          <name>!debug</name>
        </property>
      </activation>
      <properties>
        <surefire.jvm.args>${surefire.gc.args}</surefire.jvm.args>
      </properties>
    </profile>

    <!--
    Name:  hudson
    Descr: Ignore test failures on hudson
    -->
    <profile>
      <id>hudson</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <testFailureIgnore>true</testFailureIgnore>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
    Name:  jboss712
    Descr: JBoss-7.1.2 specific options
    -->
    <profile>
      <id>jboss712</id>
      <properties>
        <jboss.version>${jboss712.version}</jboss.version>
        <jbossws.integration.target>jboss712</jbossws.integration.target>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.as</groupId>
          <artifactId>jboss-as-webservices-tests-integration</artifactId>
          <version>${jboss.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.jboss.as</groupId>
              <artifactId>jboss-as-transactions</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss.remoting3</groupId>
              <artifactId>jboss-remoting</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss</groupId>
              <artifactId>jboss-remote-naming</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss.as</groupId>
              <artifactId>jboss-as-security</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.jboss</groupId>
          <artifactId>jboss-remote-naming</artifactId>
          <version>1.0.3.Final</version>
        </dependency>
        <dependency>
          <groupId>org.jboss</groupId>
          <artifactId>jboss-ejb-client</artifactId>
          <version>1.0.10.Final</version>
          <exclusions>
            <exclusion>
              <groupId>org.jboss.remoting3</groupId>
              <artifactId>jboss-remoting</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss.xnio</groupId>
              <artifactId>xnio-api</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.jboss.remotingjmx</groupId>
          <artifactId>remoting-jmx</artifactId>
          <version>1.0.3.Final</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.remoting3</groupId>
          <artifactId>jboss-remoting</artifactId>
          <version>3.2.7.GA</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <argLine>${surefire.jvm.args} ${surefire.default-mgmt-serurity.args}</argLine>
              <excludes>
                 <!-- no excludes ATM -->
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
    Name:  jboss720
    Descr: JBoss-7.2.0 specific options
    -->
    <profile>
      <id>jboss720</id>
      <properties>
        <jboss.version>${jboss720.version}</jboss.version>
        <jbossws.integration.target>jboss720</jbossws.integration.target>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.as</groupId>
          <artifactId>jboss-as-webservices-tests-integration</artifactId>
          <version>${jboss.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.jboss.as</groupId>
              <artifactId>jboss-as-transactions</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss.remoting3</groupId>
              <artifactId>jboss-remoting</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss</groupId>
              <artifactId>jboss-remote-naming</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss.as</groupId>
              <artifactId>jboss-as-security</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.jboss</groupId>
          <artifactId>jboss-remote-naming</artifactId>
          <version>1.0.3.Final</version>
        </dependency>
        <dependency>
          <groupId>org.jboss</groupId>
          <artifactId>jboss-ejb-client</artifactId>
          <version>1.0.10.Final</version>
          <exclusions>
            <exclusion>
              <groupId>org.jboss.remoting3</groupId>
              <artifactId>jboss-remoting</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.jboss.xnio</groupId>
              <artifactId>xnio-api</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.jboss.remotingjmx</groupId>
          <artifactId>remoting-jmx</artifactId>
          <version>1.0.3.Final</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.remoting3</groupId>
          <artifactId>jboss-remoting</artifactId>
          <version>3.2.7.GA</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <argLine>${surefire.jvm.args} ${surefire.default-mgmt-serurity.args}</argLine>
              <excludes>
                 <!-- no excludes ATM -->
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!--
    Name:  no-jboss-bind-address
    Descr: Set the default jboss.bind.address

    command line cannot overwrite pom properties
    http://jira.codehaus.org/browse/MNG-3546
    -->
    <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>

    <profile>
      <id>default-mgmt-security</id>
      <activation>
        <property>
          <name>!jbossws.deployer.authentication.username</name>
        </property>
      </activation>
      <properties>
        <surefire.default-mgmt-serurity.args>-Djbossws.deployer.authentication.username=admin -Djbossws.deployer.authentication.password=admin</surefire.default-mgmt-serurity.args>
      </properties>
    </profile>
    <profile>
      <id>custom-mgmt-security</id>
      <activation>
        <property>
          <name>jbossws.deployer.authentication.username</name>
        </property>
      </activation>
      <properties>
        <surefire.default-mgmt-serurity.args> </surefire.default-mgmt-serurity.args>
      </properties>
    </profile>

  </profiles>

</project>
