<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>
  <parent>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-plugins</artifactId>
    <version>8</version>
  </parent>
  
  <artifactId>maven-patch-plugin</artifactId>
  <packaging>maven-plugin</packaging>
  <version>1.0</version>
  <name>maven-patch-plugin Maven Mojo</name>
  <url>http://maven.apache.org</url>
 
  <scm>
     <connection>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</connection>
     <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</developerConnection>
     <url>https://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</url>
  </scm>

  <dependencies> 
  
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-utils</artifactId>
      <version>1.1</version>
    </dependency>
 
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.0-beta-4</version>
          <configuration>
            <!-- TODO: Change this when the plugin graduates into /plugins! -->
            <tagBase>https://svn.apache.org/repos/asf/maven/sandbox/tags</tagBase>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>integration-tests</id>
      <activation>
        <property>
          <name>integration-tests</name>
          <value>true</value>
        </property>
      </activation>

      <properties>
        <test.remote.repo.url>file://${project.build.testOutputDirectory}/remote-repository</test.remote.repo.url>
      </properties>
  
      <build>
        <testResources>
          <testResource>
            <directory>src/it/projects</directory>
            <targetPath>projects</targetPath>
          </testResource>
          <testResource>
            <directory>src/it/it-project-parent</directory>
            <targetPath>it-project-parent</targetPath>
            <filtering>true</filtering>
          </testResource>
          <testResource>
            <directory>src/it/remote-repository</directory>
            <targetPath>remote-repository</targetPath>
          </testResource>
        </testResources>
        <plugins>
          <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <configuration>
              <filesets>
                <fileset>
                  <directory>src/it</directory>
                  <includes>
                    <include>**/build.log</include>
                  </includes>
                  <excludes>
                    <exclude>**/autoskip/skip-when-patch-tracking-file-present/target/**</exclude>
                  </excludes>
                </fileset>
              </filesets>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-component-it-plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
            <executions>
              <execution>
                <id>stage-plugin</id>
                <goals>
                  <goal>stage</goal>
                </goals>
                <configuration>
                  <pluginVersion>testing</pluginVersion>
                  <repositoryDirectory>${project.build.directory}/local-repository</repositoryDirectory>
                  <skipUnitTests>true</skipUnitTests>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-invoker-plugin</artifactId>
            <version>1.1-SNAPSHOT</version>
            <executions>
              <execution>
                <id>setup-integration-test-parent</id>
                <phase>pre-integration-test</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <suppressSummaries>true</suppressSummaries>
                  <goals>
                    <goal>install</goal>
                  </goals>
                  <localRepositoryPath>${project.build.directory}/local-repository</localRepositoryPath>
                  <pom>${project.build.testOutputDirectory}/it-project-parent/pom.xml</pom>
                  <streamLogs>true</streamLogs>
                </configuration>
              </execution>
              <execution>
                <id>integration-test</id>
                <phase>integration-test</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <debug>true</debug>
                  <projectsDirectory>${project.build.testOutputDirectory}/projects</projectsDirectory>
                  <pomIncludes>
                    <pomInclude>**/pom.xml</pomInclude>
                  </pomIncludes>
                  <pomExcludes>
                    <pomExclude>**/child*/pom.xml</pomExclude>
                    <pomExclude>**/module*/pom.xml</pomExclude>
                  </pomExcludes>
                  <postBuildHookScript>verify.bsh</postBuildHookScript>
                  <localRepositoryPath>${project.build.directory}/local-repository</localRepositoryPath>
                </configuration>
              </execution>
           </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  
</project>