<?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">
  <parent>
    <artifactId>surefire</artifactId>
    <groupId>org.apache.maven.surefire</groupId>
    <version>2.22.1</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <packaging>maven-plugin</packaging>
  <name>Maven Failsafe Plugin</name>
  <description>Maven Failsafe MOJO in maven-failsafe-plugin.</description>
  <prerequisites>
    <maven>2.2.1</maven>
  </prerequisites>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-plugin-plugin</artifactId>
        <executions>
          <execution>
            <id>mojo-descriptor</id>
            <phase>process-classes</phase>
            <goals>
              <goal>descriptor</goal>
            </goals>
          </execution>
          <execution>
            <id>help-goal</id>
            <goals>
              <goal>helpmojo</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-shadefire</artifactId>
            <version>2.12.4</version>
          </dependency>
        </dependencies>
        <configuration>
          <includes>
            <include>**/JUnit4SuiteTest.java</include>
          </includes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>site-site</id>
            <phase>pre-site</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
              <includeArtifactIds>maven-surefire-plugin</includeArtifactIds>
              <includeScope>provided</includeScope>
              <includeTypes>zip</includeTypes>
              <includeClassifiers>site-source</includeClassifiers>
              <outputDirectory>${project.build.directory}/source-site</outputDirectory>
              <excludeTransitive>true</excludeTransitive>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>pre-site</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/../target/source-site</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/../src/site</directory>
                  <filtering>false</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <id>generate-test-report</id>
            <phase>pre-site</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <move />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <siteDirectory>${project.build.directory}/source-site</siteDirectory>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <minimizeJar>true</minimizeJar>
              <artifactSet>
                <includes>
                  <include>org.apache.maven.shared:maven-shared-utils</include>
                  <include>commons-io:commons-io</include>
                  <include>org.apache.commons:commons-lang3</include>
                </includes>
              </artifactSet>
              <relocations>
                <relocation>
                  <pattern>org.apache.maven.shared</pattern>
                  <shadedPattern>org.apache.maven.surefire.shade.org.apache.maven.shared</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.io</pattern>
                  <shadedPattern>org.apache.maven.surefire.shade.org.apache.commons.io</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.lang3</pattern>
                  <shadedPattern>org.apache.maven.surefire.shade.org.apache.commons.lang3</shadedPattern>
                </relocation>
              </relocations>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>ci</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-docck-plugin</artifactId>
            <version>1.0</version>
            <executions>
              <execution>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>run-its</id>
      <build>
        <defaultGoal>verify</defaultGoal>
        <plugins>
          <plugin>
            <artifactId>maven-invoker-plugin</artifactId>
            <executions>
              <execution>
                <id>pre-its</id>
                <phase>pre-integration-test</phase>
                <goals>
                  <goal>install</goal>
                </goals>
                <configuration>
                  <skipInstallation>${skipTests}</skipInstallation>
                </configuration>
              </execution>
              <execution>
                <id>integration-test</id>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <projectsDirectory>src/it</projectsDirectory>
                  <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
                  <goals>
                    <goal>clean</goal>
                    <goal>verify</goal>
                    <goal>-nsu</goal>
                  </goals>
                  <setupIncludes>
                    <setupInclude>dummy-*/pom.xml</setupInclude>
                  </setupIncludes>
                  <pomIncludes>
                    <pomInclude>*/pom.xml</pomInclude>
                  </pomIncludes>
                  <postBuildHookScript>verify</postBuildHookScript>
                  <settingsFile>src/it/settings.xml</settingsFile>
                  <skipInvocation>${skipTests}</skipInvocation>
                  <streamLogs>false</streamLogs>
                  <showErrors>true</showErrors>
                  <properties>
                    <integration-test-port>${failsafe-integration-test-port}</integration-test-port>
                    <integration-test-stop-port>${failsafe-integration-test-stop-port}</integration-test-stop-port>
                  </properties>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <javaHome>${jdk.home}</javaHome>
              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
              <mavenOpts>-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2</mavenOpts>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <properties>
        <skipTests>false</skipTests>
      </properties>
    </profile>
    <profile>
      <id>reporting</id>
      <reporting>
        <plugins>
          <plugin>
            <artifactId>maven-changes-plugin</artifactId>
            <configuration>
              <skip>false</skip>
            </configuration>
            <reportSets>
              <reportSet>
                <reports>
                  <report>jira-report</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
    </profile>
  </profiles>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven.surefire</groupId>
      <artifactId>maven-surefire-common</artifactId>
      <version>2.22.1</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.22.1</version>
      <type>zip</type>
      <classifier>site-source</classifier>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>2.21.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
        <exclusion>
          <artifactId>byte-buddy</artifactId>
          <groupId>net.bytebuddy</groupId>
        </exclusion>
        <exclusion>
          <artifactId>byte-buddy-agent</artifactId>
          <groupId>net.bytebuddy</groupId>
        </exclusion>
        <exclusion>
          <artifactId>objenesis</artifactId>
          <groupId>org.objenesis</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-library</artifactId>
      <version>1.3</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.easytesting</groupId>
      <artifactId>fest-assert</artifactId>
      <version>1.4</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>fest-util</artifactId>
          <groupId>org.easytesting</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-plugin-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>
  <properties>
    <thatPlugin>Surefire</thatPlugin>
    <failsafe-integration-test-stop-port>8085</failsafe-integration-test-stop-port>
    <failsafe-integration-test-port>8084</failsafe-integration-test-port>
    <thisPlugin>Failsafe</thisPlugin>
  </properties>
</project>
