<?xml version="1.0" encoding="UTF-8"?>

<!--
 * See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->

<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.xwiki.commons</groupId>
    <artifactId>xwiki-commons-pom</artifactId>
    <version>6.4</version>
    <!-- Note: Do NOT set the <relativePath> tag here as this can cause issues. For example imagine you're using
         Jenkins and you have the following directory structure:
             workspace/xwiki-commons
             workspace/xwiki-platform_Quality_Checks
         When the "xwiki-platform_Quality_Checks" module is built you definitely don't want its pom.xml to point to
         workspace/xwiki-commons since that job may not have been built for some time (and thus it might not be up to
         date with the latest code from the SCM, thus causing build failures that are hard to track.

         By using an empty value we force Maven to resolve the parent from the Maven repositories,
         see http://maven.apache.org/ref/3.2.3/maven-model/maven.html#class_parent
    -->
    <relativePath />
  </parent>
  <groupId>org.xwiki.platform</groupId>
  <artifactId>xwiki-platform</artifactId>
  <name>XWiki Platform - Parent POM</name>
  <packaging>pom</packaging>
  <version>6.4</version>
  <description>XWiki Platform - Parent POM</description>
  <properties>
    <!-- Useful for external Maven projects that extend the Platform POM. Must not be used by Platform project! -->
    <platform.version>${commons.version}</platform.version>
    <!-- Versions of XWiki dependencies used in Platform modules -->
    <rendering.version>${platform.version}</rendering.version>
    <!-- Version of HSQLDB that we use in Platform when import XARs for creating functional test environments -->
    <hsqldb.version>2.3.1</hsqldb.version>
  </properties>
  <scm>
    <connection>scm:git:git://github.com/xwiki/xwiki-platform.git</connection>
    <developerConnection>scm:git:git@github.com:xwiki/xwiki-platform.git</developerConnection>
    <url>https://github.com/xwiki/xwiki-platform/tree/master/</url>
    <tag>xwiki-platform-6.4</tag>
  </scm>
  <issueManagement>
    <system>jira</system>
    <url>http://jira.xwiki.org/jira/browse/XWIKI</url>
  </issueManagement>
  <modules>
    <module>xwiki-platform-tools</module>
    <module>xwiki-platform-core</module>
  </modules>
  <build>
    <plugins>
      <plugin>
        <!-- Apply the Checkstyle configurations defined in the top level pom.xml file -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
      </plugin>
      <!-- Check license headers -->
      <plugin>
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <configuration>
          <includes>
            <!-- At the moment, only check the following list of files for license headers -->
            <include>**/*.java</include>
            <include>**/*.bat</include>
            <include>**/*.sh</include>
            <include>**/ApplicationResources.properties</include>
          </includes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <!-- Verify that all org.xwiki.commons dependencies have a version specified either as:
               - ${commons.version}
               - a value not starting with $ (we want to allow supporting ranges)
               Also verifies that all org.xwiki.rendering dependencies have a version specified either as:
               - ${rendering.version}
               - a value not starting with $ (we want to allow supporting ranges)
               Also verifies that all org.xwiki.platform dependencies have a version specified either as:
               - ${project.version}
               - a value not starting with $ (we want to allow supporting ranges)
          -->
          <execution>
            <id>check-dependency-version</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <validateDependencyVersion implementation="org.xwiki.tool.enforcer.ValidateDependencyVersion">
                  <versionCheck>
                    <groupIdPrefix>org.xwiki.commons</groupIdPrefix>
                    <allowedVersionRegex>\$\{commons.version\}|[^$].*</allowedVersionRegex>
                  </versionCheck>
                  <versionCheck>
                    <groupIdPrefix>org.xwiki.rendering</groupIdPrefix>
                    <allowedVersionRegex>\$\{rendering.version\}|[^$].*</allowedVersionRegex>
                  </versionCheck>
                  <versionCheck>
                    <groupIdPrefix>org.xwiki.platform</groupIdPrefix>
                    <allowedVersionRegex>\$\{project.version\}|[^$].*</allowedVersionRegex>
                  </versionCheck>
                </validateDependencyVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>**/*Test.java</include>
            <include>**/*IntegrationTests.java</include>
          </includes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
