<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

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

  <parent>
    <groupId>org.apache.maven.surefire</groupId>
    <artifactId>surefire</artifactId>
    <version>2.17</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>surefire-integration-tests</artifactId>

  <name>Maven Surefire Integration Tests</name>

  <properties>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <it.settings.showPasswords>false</it.settings.showPasswords>
    <testng.version>5.7</testng.version>
    <surefire.threadcount>5</surefire.threadcount>
    <mavenHomeUsed>${maven.home}</mavenHomeUsed>
    <useInterpolatedSettings>false</useInterpolatedSettings>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.maven.surefire</groupId>
      <artifactId>surefire-report-parser</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.shared</groupId>
      <artifactId>maven-verifier</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-settings</artifactId>
      <version>2.0.6</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>net.sourceforge.htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>2.8</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.shared</groupId>
      <artifactId>maven-shared-utils</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${shadedVersion}</version>
        <configuration>
          <threadCount>1</threadCount>
          <perCoreThreadCount>false</perCoreThreadCount>
          <forkMode>never</forkMode>
          <argLine>-Xmx512m -XX:MaxPermSize=356m</argLine>
          <includes>
            <include>org/apache/**/*IT*.java</include>
          </includes>
          <!-- Pass current surefire version to the main suite so that it -->
          <!-- can forward to all integration test projects. SUREFIRE-513 -->
          <systemPropertyVariables>
            <surefire.version>${project.version}</surefire.version>
            <testng.version>${testng.version}</testng.version>
            <maven.home>${mavenHomeUsed}</maven.home>
            <maven.settings.file>${project.basedir}/../surefire-setup-integration-tests/target/private/it-settings.xml
            </maven.settings.file>
            <maven.repo.local>${project.basedir}/../surefire-setup-integration-tests/target/it-repo</maven.repo.local>
            <maven.test.tmpdir>${project.build.directory}</maven.test.tmpdir>
            <user.localRepository>${settings.localRepository}</user.localRepository>
            <useInterpolatedSettings>${useInterpolatedSettings}</useInterpolatedSettings>
            <testBuildDirectory>${project.build.testOutputDirectory}</testBuildDirectory>
            <verifier.forkMode>${verifier.forkMode}</verifier.forkMode>
          </systemPropertyVariables>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>${shadedVersion}</version>
          </dependency>
        </dependencies>

        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>require-maven-2.1.0</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <!-- Some plugin features require a recent Maven runtime to work (e.g. SystemPropertiesTest) -->
                  <version>[2.1.0,)</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>parallel</id>
      <properties>
        <useInterpolatedSettings>false</useInterpolatedSettings>
      </properties>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <configuration>
              <parallel>classes</parallel>
              <threadCount>${surefire.threadcount}</threadCount>
              <argLine>-Xmx2512m -XX:MaxPermSize=256m</argLine>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.8.2</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>embedded</id>
      <activation>
        <file>
          <!--  This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
          <exists>${basedir}</exists>
        </file>
      </activation>
      <properties>
        <verifier.forkMode>auto</verifier.forkMode>
      </properties>
    </profile>

    <profile>
      <id>maven-2.2.1</id>
      <properties>
        <mavenHomeUsed>${project.build.directory}/maven-extract/apache-maven-2.2.1</mavenHomeUsed>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.4</version>
            <executions>
              <execution>
                <id>unpack</id>
                <phase>package</phase>
                <goals>
                  <goal>unpack</goal>
                </goals>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>org.apache.maven</groupId>
                      <artifactId>apache-maven</artifactId>
                      <version>2.2.1</version>
                      <type>tar.gz</type>
                      <classifier>bin</classifier>
                      <overWrite>false</overWrite>
                      <outputDirectory>${project.build.directory}/maven-extract</outputDirectory>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>${shadedVersion}</version>
            <configuration>
              <excludedGroups>org.apache.maven.surefire.its.Not2xCompatible</excludedGroups>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>
</project>
