<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.uima</groupId>
    <artifactId>parent-pom</artifactId>
    <relativePath />
    <version>10</version>
  </parent>
  <artifactId>uimafit-parent</artifactId>
  <version>2.4.0</version>
  <packaging>pom</packaging>
  <name>Apache UIMA uimaFIT - Parent</name>
  <url>${uimaWebsiteUrl}</url>
  <inceptionYear>2012</inceptionYear>
  <properties>
    <spring.version>3.2.16.RELEASE</spring.version>
    <uima.version>2.10.2</uima.version>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <!-- 
     BACKWARD_COMPATIBLE_IMPLEMENTER - patch version (=.=.+)
     BACKWARD_COMPATIBLE_USER        - minor version (=.+.0)
     NON_BACKWARD_COMPATIBLE         - major version (+.0.0)
    -->
    <compat.level>BACKWARD_COMPATIBLE_USER</compat.level>
    <compat.previous.version>2.3.0</compat.previous.version>
  </properties>
  <!--
    - Only required while uimaFIT depends on unreleased versions of UIMA.
    <repositories>
    <repository>
    <id>apache.snapshots</id>
    <name>Apache Snapshot Repository</name>
    <url>http://repository.apache.org/snapshots</url>
    <releases>
    <enabled>false</enabled>
    </releases>
    </repository>
    </repositories>
    <pluginRepositories>
    <pluginRepository>
    <id>apache.snapshots.plugins</id>
    <name>Apache Snapshot Repository - Maven plugins</name>
    <url>http://repository.apache.org/snapshots</url>
    <layout>default</layout>
    <releases>
    <enabled>false</enabled>
    </releases>
    <snapshots>
    <enabled>true</enabled>
    <checksumPolicy>fail</checksumPolicy>
    <updatePolicy>never</updatePolicy>
    </snapshots>
    </pluginRepository>
    </pluginRepositories>
  -->

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
      </dependency>
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.2</version>
        <!-- 2.2 is the last Java 5 compatible version -->
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging-api</artifactId>
        <version>1.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.uima</groupId>
        <artifactId>uimaj-core</artifactId>
        <version>${uima.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.uima</groupId>
        <artifactId>uimaj-cpe</artifactId>
        <version>${uima.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.uima</groupId>
        <artifactId>uimaj-tools</artifactId>
        <version>${uima.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom</artifactId>
        <version>1.1.3</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
        <!--
          - This is excluded in the assembly and not here to avoid unwanted side-effects
          - on users' projects.
          <exclusions>
          <exclusion>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          </exclusion>
          </exclusions>
        -->
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <build>
    <plugins>
      <!-- This should no longer be required with current versions of the maven-resources-plugin
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
        <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
        </plugin>
      -->
      <plugin>
        <groupId>org.codehaus.gmaven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <version>1.5</version>
        <executions>
          <execution>
            <!-- Load postNoticeText from NOTICE file -->
            <id>read-notice</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <source>
                def noticeFile = new File(project.basedir.path +
                "/NOTICE");
                if (noticeFile.exists()) {
                project.properties.postNoticeText = noticeFile.text;
                }
              </source>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.6</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.11</version>
          <executions>
            <execution>
              <id>default-cli</id>
              <configuration>
                <excludes>
                  <!-- Plain documentation -->
                  <exclude>README*</exclude>
                  <!-- Release files -->
                  <exclude>RELEASE_NOTES*</exclude>
                  <exclude>issuesFixed/**</exclude>
                  <exclude>release.properties</exclude>
                  <!-- Build controls -->
                  <exclude>.activate-enforce-compatibility</exclude>
                </excludes>
              </configuration>
            </execution>
          </executions>
          <dependencies>
            <!-- https://issues.apache.org/jira/browse/RAT-158 -->
            <dependency>
              <groupId>org.apache.maven.doxia</groupId>
              <artifactId>doxia-core</artifactId>
              <version>1.7</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.5.1</version>
          <configuration>
            <source>${maven.compiler.source}</source>
            <target>${maven.compiler.target}</target>
            <!--encoding>UTF-8</encoding this inherited from apache pom 7 -->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.3</version>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <configuration>
                <source>${maven.compiler.source}</source>
              </configuration>
            </execution>
            <execution>
              <id>default-cli</id>  <!-- Jenkins runs this apparently 3/2015 -->
              <configuration>
                <source>${maven.compiler.source}</source>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.uima</groupId>
          <artifactId>jcasgen-maven-plugin</artifactId>
          <version>${uima.version}</version>
        </plugin>
        <!--This plugin's configuration is used to store Eclipse m2e settings
          only. It has no influence on the Maven build itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <versionRange>[1.4,)</versionRange>
                    <goals>
                      <goal>execute</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>findbugs</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>findbugs-maven-plugin</artifactId>
              <version>3.0.3</version>
              <executions>
                <execution>
                  <phase>package</phase>
                  <goals>
                    <goal>findbugs</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>enforce-compatibility</id>
      <activation>
        <file>
          <exists>.activate-enforce-compatibility</exists>
        </file>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-enforcer-plugin</artifactId>
              <version>1.4.1</version>
              <dependencies>
                <dependency>
                  <groupId>org.semver</groupId>
                  <artifactId>enforcer-rule</artifactId>
                  <version>0.9.33</version>
                </dependency>
              </dependencies>
              <executions>
                <execution>
                  <id>enforce-compatibility</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>enforce</goal>
                  </goals>
                  <configuration>
                    <rules>
                      <requireBackwardCompatibility implementation="org.semver.enforcer.RequireBackwardCompatibility">
                        <previousVersion>${compat.previous.version}</previousVersion>
                        <dumpDetails>true</dumpDetails>
                        <compatibilityType>${compat.level}</compatibilityType>
                      </requireBackwardCompatibility>
                    </rules>
                  </configuration>
                </execution>
              </executions>
            </plugin>

            <plugin>
              <groupId>org.apache.rat</groupId>
              <artifactId>apache-rat-plugin</artifactId>
              <executions>
                <execution>
                  <id>default-cli</id>
                  <configuration>
                    <excludes combine.children="append">
                      <exclude>**/api-change-report/**/*.*</exclude>
                    </excludes>
                  </configuration>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>

        <plugins>
          <!-- https://siom79.github.io/japicmp/MavenPlugin.html -->
          <plugin>
            <groupId>com.github.siom79.japicmp</groupId>
            <artifactId>japicmp-maven-plugin</artifactId>
            <version>0.9.3</version>
            <configuration>
              <oldVersion>
                <dependency>
                  <groupId>${project.groupId}</groupId>
                  <artifactId>${project.artifactId}</artifactId>
                  <version>${compat.previous.version}</version>
                </dependency>
              </oldVersion>
              <parameter>
                <onlyModified>true</onlyModified>
                <!-- filter out classes with impl in their package or class name -->
                <postAnalysisScript>${project.basedir}/../uimafit-parent/src/main/groovy/api-report.groovy</postAnalysisScript>
                <breakBuildBasedOnSemanticVersioning>true</breakBuildBasedOnSemanticVersioning>
                <reportOnlyFilename>true</reportOnlyFilename>
              </parameter>
            </configuration>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>cmp</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <!-- This copy is to have the api change report included in the source distribution -->
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-API-change-report</id>
                <phase>install</phase>  <!-- must follow verify -->
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" />
                    <if>
                      <available file="${project.build.directory}/japicmp/" />
                      <then>
                        <copy toDir="${basedir}/api-change-report">
                          <fileset dir="${project.build.directory}/japicmp" />
                        </copy>
                      </then>
                    </if>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/uima/build/tags/uimafit-2.4.0/uimafit-parent</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/uima/build/tags/uimafit-2.4.0/uimafit-parent</developerConnection>
    <url>http://svn.apache.org/viewvc/uima/build/tags/uimafit-2.4.0/uimafit-parent</url>
  </scm>
</project>