<?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/maven-v4_0_0.xsd">
  <parent>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-parent</artifactId>
    <version>47</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-rng-parent</artifactId>
  <packaging>pom</packaging>
  <version>1.1</version>
  <name>Apache Commons RNG</name>

  <inceptionYear>2016</inceptionYear>
  <description>The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.</description>
  <url>http://commons.apache.org/proper/commons-rng/</url>

  <issueManagement>
    <system>jira</system>
    <url>http://issues.apache.org/jira/browse/RNG</url>
  </issueManagement>

  <scm>
    <connection>scm:git:http://git-wip-us.apache.org/repos/asf/commons-rng.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/commons-rng.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=commons-rng.git</url>
  </scm>

  <distributionManagement>
    <site>
      <id>apache.website</id>
      <name>Apache Commons Site</name>
      <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng/</url>
    </site>
  </distributionManagement>

  <developers>
    <developer>
      <name>Gilles Sadowski</name>
      <id>erans</id>
      <email>erans at apache dot org</email>
    </developer>
  </developers>

  <contributors>
    <contributor>
      <name>Artem Barger</name>
    </contributor>
    <contributor>
      <name>Rob Tompkins</name>
    </contributor>
  </contributors>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <properties>
    <!-- Do not change: "rng" is the name of the component even if the
         name of the base package evolves with major release numbers
         (see "commons.osgi.symbolicName", below). -->
    <commons.componentid>rng</commons.componentid>
    <!-- OSGi -->
    <commons.osgi.symbolicName>org.apache.commons.rng.parent</commons.osgi.symbolicName>
    <commons.osgi.export>org.apache.commons.rng.parent</commons.osgi.export>
    <!-- Java 9+ -->
    <commons.automatic.module.name>org.apache.commons.rng.parent</commons.automatic.module.name>
    <!-- do not use snapshot suffix here -->
    <commons.release.version>1.1</commons.release.version>
    <commons.rc.version>RC1</commons.rc.version>
    <commons.release.desc>(requires Java 6+)</commons.release.desc>
     <commons.rc.version>RC2</commons.rc.version>
    <commons.binary.suffix>-bin</commons.binary.suffix>

    <commons.jira.id>RNG</commons.jira.id>
    <commons.jira.pid>12320623</commons.jira.pid>
    <commons.encoding>UTF-8</commons.encoding>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
    <rng.pmd.version>3.9.0</rng.pmd.version>
    <rng.spotbugs.version>3.1.3</rng.spotbugs.version>
    <rng.checkstyle.version>3.0.0</rng.checkstyle.version>
    <rng.clirr.version>2.8</rng.clirr.version>
    <rng.mathjax.version>2.7.2</rng.mathjax.version>
    <!-- Workaround to avoid duplicating config files. -->
    <rng.parent.dir>${basedir}</rng.parent.dir>

    <!-- Temporary fix to support Java 8 -->
    <commons.jacoco.version>0.8.0</commons.jacoco.version>
    <commons.jacoco.classRatio>0.96</commons.jacoco.classRatio>
    <commons.jacoco.instructionRatio>0.8</commons.jacoco.instructionRatio>
    <commons.jacoco.methodRatio>0.8</commons.jacoco.methodRatio>
    <commons.jacoco.branchRatio>0.8</commons.jacoco.branchRatio>
    <commons.jacoco.complexityRatio>0.8</commons.jacoco.complexityRatio>
    <commons.jacoco.lineRatio>0.85</commons.jacoco.lineRatio>
    <commons.jacoco.haltOnFailure>false</commons.jacoco.haltOnFailure>

    <commons.site.path>rng</commons.site.path>
    <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng</commons.scmPubUrl>
    <commons.scmPubCheckoutDirectory>site-content</commons.scmPubCheckoutDirectory>

    <!-- Temporary fix to replace svn-based build number with git-based build number -->
    <buildnumber.skip>true</buildnumber.skip>
    <rng.jgit.buildnumber.version>1.2.10</rng.jgit.buildnumber.version>
    <implementation.build>${git.revision}; ${maven.build.timestamp}</implementation.build>

    <!-- Override default buildNumber timestamp format, needed for coveralls plugin -->
    <maven.buildNumber.timestampFormat>{0,date,yyyy-MM-dd HH:mm:ssZ}</maven.buildNumber.timestampFormat>

    <!--
        Override so that "mvn commons:download-page" will generates a web page
        referring to the files created by the "dist-archive" module.
        Temporary workaround?
    -->
    <commons.release.name>commons-rng-${project.version}</commons.release.name>
    <!-- Java8+ requires additional Javadoc qualifier for MathJax (default to empty). -->
    <allowscript.javadoc.qualifier></allowscript.javadoc.qualifier>
    <!-- Invalid flag for old javadoc versions (default to empty). -->
    <doclint.javadoc.qualifier></doclint.javadoc.qualifier>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive combine.children="append">
            <manifestEntries>
              <!-- Java 9 -->
              <Automatic-Module-Name>${commons.automatic.module.name}</Automatic-Module-Name>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <compilerArgs>
            <!-- <arg>-verbose</arg> -->
            <arg>-Xlint:all,-options,-path</arg>
          </compilerArgs>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>**/*Test.java</include>
          </includes>
          <excludes>
            <exclude>**/*AbstractTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <configuration>
          <ignorePathsToDelete>
            <ignorePathToDelete>javadocs</ignorePathToDelete>
          </ignorePathsToDelete>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <executions>
          <execution>
            <id>validate</id>
            <phase>validate</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <version>${rng.spotbugs.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>${commons.rat.version}</version>
        <configuration>
        <!--
          Needed for command-line access, e.g mvn apache-rat:rat and mvn apache-rat:check
          Below should agree with config in <reporting> section, so the site
          gets consistent output.
        -->
          <excludes combine.children="append">
            <!-- version 0.8 of apache-rat-plugin does not exclude properly
                 some default development tools files (see RAT-126) -->
            <exclude>.ekstazi/**</exclude>
            <exclude>**/site-content/**</exclude>
            <exclude>**/target/**</exclude>
            <exclude>src/site/resources/txt/userguide/stress/dh/**</exclude>
            <exclude>src/site/resources/txt/userguide/stress/tu/**</exclude>
            <exclude>dist-archive/**</exclude>
          </excludes>
        </configuration>
      </plugin>

      <plugin>
        <!-- NOTE: javadoc config must also be set under <reporting> -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <!-- Enable MathJax -->
          <additionalparam>${doclint.javadoc.qualifier} ${allowscript.javadoc.qualifier} -header '&lt;script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/${rng.mathjax.version}/MathJax.js?config=TeX-AMS-MML_HTMLorMML"&gt;&lt;/script&gt;'</additionalparam>
          <!-- <aggregate>true</aggregate> -->
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <skipAssembly>true</skipAssembly>
        </configuration>
      </plugin>
    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${rng.checkstyle.version}</version>
          <configuration>
            <includeTestSourceDirectory>false</includeTestSourceDirectory>
            <configLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle.xml</configLocation>
            <headerLocation>${rng.parent.dir}/src/main/resources/checkstyle/license-header.txt</headerLocation>
            <logViolationsToConsole>false</logViolationsToConsole>
            <failOnViolation>false</failOnViolation>
            <resourceExcludes>NOTICE.txt,LICENSE.txt</resourceExcludes>
            <excludes>**/module-info.java</excludes>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>${commons.rat.version}</version>
        <configuration>
         <!--  Should agree with apache-rat-plugin config under <build> -->
          <excludes combine.children="append">
            <!-- version 0.8 of apache-rat-plugin does not exclude properly
                 some default development tools files (see RAT-126) -->
            <exclude>.ekstazi/**</exclude>
            <exclude>src/site/resources/txt/userguide/stress/dh/**</exclude>
            <exclude>src/site/resources/txt/userguide/stress/tu/**</exclude>
            <exclude>dist-archive/**</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>${commons.changes.version}</version>
        <configuration>
          <xmlPath>${basedir}/src/changes/changes.xml</xmlPath>
          <columnNames>Fix Version,Key,Component,Summary,Type,Resolution,Status</columnNames>
          <!-- Sort cols in natural order when using JQL for JIRA 5.1 -->
          <sortColumnNames>Fix Version DESC,Type,Key DESC</sortColumnNames>
          <resolutionIds>Fixed</resolutionIds>
          <statusIds>Resolved,Closed</statusIds>
          <!-- Don't include sub-task -->
          <typeIds>Bug,New Feature,Task,Improvement,Wish,Test</typeIds>
          <!-- For JIRA >= 5.1 -->
          <useJql>true</useJql>
          <onlyCurrentVersion>${commons.changes.onlyCurrentVersion}</onlyCurrentVersion>
          <maxEntries>${commons.changes.maxEntries}</maxEntries>
          <runOnlyAtExecutionRoot>${commons.changes.runOnlyAtExecutionRoot}</runOnlyAtExecutionRoot>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>changes-report</report>
              <report>jira-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <version>${rng.spotbugs.version}</version>
        <configuration>
          <threshold>Normal</threshold>
          <effort>Default</effort>
          <excludeFilterFile>${rng.parent.dir}/src/main/resources/spotbugs/spotbugs-exclude-filter.xml</excludeFilterFile>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${rng.checkstyle.version}</version>
        <configuration>
          <configLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle.xml</configLocation>
          <headerLocation>${rng.parent.dir}/src/main/resources/checkstyle/license-header.txt</headerLocation>
          <enableRulesSummary>false</enableRulesSummary>
          <includeResources>false</includeResources>
          <excludes>**/module-info.java</excludes>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>checkstyle</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>clirr-maven-plugin</artifactId>
        <version>${rng.clirr.version}</version>
        <configuration>
          <minSeverity>${minSeverity}</minSeverity>
          <ignoredDifferencesFile>${rng.parent.dir}/src/main/resources/clirr/clirr-ignored.xml</ignoredDifferencesFile>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>${rng.pmd.version}</version>
        <configuration>
          <targetJdk>${maven.compiler.target}</targetJdk>
          <skipEmptyReport>false</skipEmptyReport>
          <analysisCache>true</analysisCache>
          <rulesets>
            <ruleset>${rng.parent.dir}/src/main/resources/pmd/pmd-ruleset.xml</ruleset>
          </rulesets>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>pmd</report>
              <report>cpd</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <!-- NOTE: javadoc config must also be set under <build> -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <!-- Enable MathJax -->
          <additionalparam>${doclint.javadoc.qualifier} ${allowscript.javadoc.qualifier} -header '&lt;script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/${rng.mathjax.version}/MathJax.js?config=TeX-AMS-MML_HTMLorMML"&gt;&lt;/script&gt;'</additionalparam>
          <!-- <aggregate>true</aggregate> -->
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>jgit-buildnumber</id>
      <activation>
        <file>
          <exists>.git</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>ru.concerteza.buildnumber</groupId>
            <artifactId>maven-jgit-buildnumber-plugin</artifactId>
            <version>${rng.jgit.buildnumber.version}</version>
            <executions>
              <execution>
                <phase>generate-resources</phase>
                <goals>
                  <goal>extract-buildnumber</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>setup-checkout</id>
      <activation>
        <file>
          <missing>site-content</missing>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <id>prepare-checkout</id>
                <phase>pre-site</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <tasks>
                    <exec executable="svn">
                      <arg line="checkout --depth immediates ${commons.scmPubUrl} ${commons.scmPubCheckoutDirectory}"/>
                    </exec>

                    <exec executable="svn">
                      <arg line="update --set-depth exclude ${commons.scmPubCheckoutDirectory}/javadocs"/>
                    </exec>

                    <pathconvert pathsep=" " property="dirs">
                      <dirset dir="${commons.scmPubCheckoutDirectory}" includes="*"/>
                    </pathconvert>
                    <exec executable="svn">
                      <arg line="update --set-depth infinity ${dirs}"/>
                    </exec>
                  </tasks>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- Ekstazi (www.ekstazi.org) profile to optimize regression testing -->
    <profile>
      <id>ekstazi</id>
      <activation>
        <property>
          <name>ekstazi</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.ekstazi</groupId>
            <artifactId>ekstazi-maven-plugin</artifactId>
            <version>4.4.0</version>
            <configuration>
              <forcefailing>true</forcefailing>
            </configuration>
            <executions>
              <execution>
                <id>ekstazi</id>
                <goals>
                  <goal>select</goal>
                  <goal>restore</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <excludesFile>${java.io.tmpdir}/${user.name}EkstaziExcludes</excludesFile>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>travis</id>
      <activation>
        <property>
          <name>env.TRAVIS</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${commons.jacoco.version}</version>
            <executions>
              <execution>
                <id>default-prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
              <execution>
                <id>default-prepare-agent-integration</id>
                <goals>
                  <goal>prepare-agent-integration</goal>
                </goals>
              </execution>
              <execution>
                <id>default-report</id>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
              <execution>
                <id>default-report-integration</id>
                <goals>
                  <goal>report-integration</goal>
                </goals>
              </execution>
              <execution>
                <id>default-check</id>
                <goals>
                  <goal>check</goal>
                </goals>
                <configuration>
                  <rules>
                    <!--  implementation is needed only for Maven 2  -->
                    <rule implementation="org.jacoco.maven.RuleConfiguration">
                      <element>BUNDLE</element>
                      <limits>
                        <!--  implementation is needed only for Maven 2  -->
                        <limit implementation="org.jacoco.report.check.Limit">
                          <counter>COMPLEXITY</counter>
                          <value>COVEREDRATIO</value>
                          <minimum>0.60</minimum>
                        </limit>
                      </limits>
                    </rule>
                  </rules>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eluder.coveralls</groupId>
            <artifactId>coveralls-maven-plugin</artifactId>
            <version>3.1.0</version>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
        Profiles for modules with special requirements.
    -->
    <profile>
      <id>commons-rng-examples</id>
      <modules>
        <module>commons-rng-examples</module>
      </modules>
    </profile>

  </profiles>

  <modules>
    <module>commons-rng-client-api</module>
    <module>commons-rng-core</module>
    <module>commons-rng-simple</module>
    <module>commons-rng-sampling</module>
    <module>dist-archive</module>
    <!--
        Built only upon explicit request (requires Java 1.7+).
        See profile "commons-rng-examples".
    -->
    <!-- <module>commons-rng-examples</module> -->
  </modules>

</project>
