<?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/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>29</version>
  </parent>

  <groupId>org.apache.datasketches</groupId>
  <artifactId>datasketches-java-common</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

  <name>${project.artifactId}</name>
  <description>Contains common java classes and methods to support test code in multiple different Java repositories.</description>
  <url>https://datasketches.apache.org/</url>
  <inceptionYear>2015</inceptionYear>

  <mailingLists>
    <mailingList>
      <name>DataSketches Developers</name>
      <subscribe>dev-subscribe@datasketches.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@datasketches.apache.org</unsubscribe>
      <post>dev@datasketches.apache.org</post>
      <archive>https://mail-archives.apache.org/mod_mbox/datasketches-dev</archive>
    </mailingList>
    <mailingList>
      <name>DataSketches Users</name>
      <subscribe>user-subscribe@datasketches.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@datasketches.apache.org</unsubscribe>
      <post>user@datasketches.apache.org</post>
      <archive>https://mail-archives.apache.org/mod_mbox/datasketches-user</archive>
    </mailingList>
  </mailingLists>

  <scm>
    <connection>scm:git:ssh://git@github.com/apache/${project.artifactId}.git</connection>
    <developerConnection>scm:git:ssh://git@github.com/apache/${project.artifactId}.git</developerConnection>
    <url>https://github.com/apache/${project.artifactId}</url>
    <tag>HEAD</tag>
  </scm>

  <issueManagement>
    <!-- <system>jira</system>
      <url>https://issues.apache.org/jira/browse/DATASKETCHES</url> -->
    <system>GitHub</system>
    <url>https://github.com/apache/${project.artifactId}/issues</url>
  </issueManagement>

  <developers>
    <developer>
      <name>The Apache DataSketches Team</name>
      <email>dev@datasketches.apache.org</email>
      <url>https://datasketches.apache.org</url>
      <organization>Apache Software Foundation</organization>
      <organizationUrl>http://www.apache.org</organizationUrl>
    </developer>
  </developers>

  <properties>
    <!-- UNIQUE FOR THIS JAVA COMPONENT -->
    <datasketches-memory.version>2.2.0</datasketches-memory.version>
    <!-- END:UNIQUE FOR THIS JAVA COMPONENT -->

    <!-- Test -->
    <testng.version>7.5.1</testng.version>

    <!-- System-wide properties -->
    <maven.version>3.5.0</maven.version>
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <argLine>-Xmx4g -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8</argLine>
    <charset.encoding>UTF-8</charset.encoding>
    <project.build.sourceEncoding>${charset.encoding}</project.build.sourceEncoding>
    <project.build.resourceEncoding>${charset.encoding}</project.build.resourceEncoding>
    <project.reporting.outputEncoding>${charset.encoding}</project.reporting.outputEncoding>
    <maven.build.timestamp.format>yyyy-MM-dd'T'HH-mm-ss'Z'</maven.build.timestamp.format>

    <!-- org.codehaus plugins -->
    <!-- used for strict profile testing-->
    <plexus-compiler-javac-errorprone.version>2.8.5</plexus-compiler-javac-errorprone.version>
    <versions-maven-plugin.version>2.8.1</versions-maven-plugin.version>

    <!--  Maven Plugins -->
    <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version> <!-- overrides parent -->
    <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <!-- overrides parent -->
    <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version> <!-- overrides parent -->
    <maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version> <!-- overrides parent -->
    <maven-failsafe-plugin.version>3.1.2</maven-failsafe-plugin.version>
    <maven-gpg-plugin.version>3.1.0</maven-gpg-plugin.version> <!-- overrides parent -->
    <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version> <!-- overrides parent -->
    <maven-javadoc-plugin.version>3.6.2</maven-javadoc-plugin.version> <!-- overrides parent -->
    <maven-release-plugin.version>3.0.0-M4</maven-release-plugin.version> <!-- overrides parent -->
    <maven-remote-resources-plugin.version>[1.7.0,)</maven-remote-resources-plugin.version> <!-- overrides parent -->
    <maven-source-plugin.version>3.2.1</maven-source-plugin.version> <!-- overrides parent -->
    <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version> <!-- overrides parent -->
    <!-- Apache Plugins -->
    <apache-rat-plugin.version>0.13</apache-rat-plugin.version> <!-- overrides parent -->
    <!-- org.jacoco Maven Plugins -->
    <jacoco-maven-plugin.version>0.8.7</jacoco-maven-plugin.version>
    <!-- org.eluder Maven Plugins -->
    <coveralls-repo-token></coveralls-repo-token>
    <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
    <!-- other -->
    <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version> <!-- not used -->
    <git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version>
  </properties>

  <dependencies>
    <!-- Test Scope -->
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>${testng.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>

        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven-assembly-plugin.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
        </plugin>

        <plugin>
          <!-- We want to deploy the artifacts to a staging location for perusal -->
          <!-- Apache Parent pom: apache-release profile -->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-plugin.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven-enforcer-plugin.version}</version>
          <executions>
            <execution>
              <id>enforce-banned-dependencies</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <requireJavaVersion>
                    <version>[1.8,1.9),[8,9),[11,12)</version>
                  </requireJavaVersion>
                  <requireMavenVersion>
                    <version>[${maven.version},)</version>
                  </requireMavenVersion>
                  <bannedDependencies>
                    <excludes>
                      <!--LGPL licensed library-->
                      <exclude>com.google.code.findbugs:annotations</exclude>
                    </excludes>
                  </bannedDependencies>
                </rules>
                <fail>true</fail>
              </configuration>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <!-- Extends Apache Parent pom, pluginManagement-->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-plugin.version}</version>
          <executions>
            <execution>
              <id>default-jar</id>
              <phase>package</phase>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
            <execution>
              <id>default-test-jar</id>
              <phase>package</phase>
              <goals>
                <goal>test-jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <!-- Extends Apache Parent pom, apache-release profile -->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven-javadoc-plugin.version}</version>
          <configuration>
            <docfilessubdirs>true</docfilessubdirs>
          </configuration>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <!-- Apache Parent pom, pluginManagement-->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${maven-release-plugin.version}</version>
        </plugin>

        <plugin>
          <!-- Extends Apache Parent pom, apache-release profile -->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven-source-plugin.version}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>package</phase>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
            <execution>
              <id>attach-test-sources</id>
              <phase>package</phase>
              <goals>
                <goal>test-jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <!-- Apache Parent pom, pluginManagement-->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
          <configuration>
            <trimStackTrace>false</trimStackTrace>
            <useManifestOnlyJar>false</useManifestOnlyJar>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
            <reportsDirectory>${project.build.directory}/test-output/${maven.build.timestamp}</reportsDirectory>
          </configuration>
        </plugin>

        <plugin>
          <!-- Apache Parent pom, pluginManagement-->
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>${apache-rat-plugin.version}</version>
          <executions>
            <execution>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <outputDirectory>${project.basedir}/rat</outputDirectory>
            <consoleOutput>true</consoleOutput>
            <useDefaultExcludes>true</useDefaultExcludes>
            <excludes>
              <!-- rat uses .gitignore for excludes by default -->
              <exclude>**/*.yaml</exclude>
              <exclude>**/*.yml</exclude>
              <exclude>**/.*</exclude>
              <exclude>**/test/resources/**/*.txt</exclude>
              <exclude>**/git.properties</exclude>
              <exclude>**/*.sk</exclude>
              <exclude>LICENSE</exclude>
              <exclude>NOTICE</exclude>
            </excludes>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${versions-maven-plugin.version}</version>
        </plugin>

        <plugin>
          <!-- Submit code coverage report to Coveralls.io. -->
          <groupId>org.eluder.coveralls</groupId>
          <artifactId>coveralls-maven-plugin</artifactId>
          <version>${coveralls-maven-plugin.version}</version>
          <configuration>
            <repoToken>${coveralls-repo-token}</repoToken>
          </configuration>
        </plugin>

        <plugin>
          <!-- Generates code coverage report from website. -->
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>default-prepare-agent</id>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
            </execution>
            <execution>
              <id>default-report</id>
              <goals>
                <goal>report</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>pl.project13.maven</groupId>
          <artifactId>git-commit-id-plugin</artifactId>
          <version>${git-commit-id-plugin.version}</version>
        </plugin>

      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.eluder.coveralls</groupId>
        <artifactId>coveralls-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <!-- Ignore nuisance warning from Apache parent plugin:
         "maven-remote-resources-plugin (goal "process") is ignored by m2e".
         This profile is only active when the property "m2e.version" is set,
         which is the case when building in Eclipse with m2e.

    <profile>
      <id>only-eclipse</id>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-remote-resources-plugin</artifactId>
              <version>${maven-remote-resources-plugin.version}</version>
              <executions>
                <execution>
                  <id>process-resource-bundles</id>
                  <phase>none</phase>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>

        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-remote-resources-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    -->
    <profile>
      <id>strict</id>
      <!-- The error prone compiler is only currently supported for compilation in JDK 8 -->
      <activation>
        <jdk>[1.8, 1.9),8</jdk>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>${maven-compiler-plugin.version}</version>
              <dependencies>
                <dependency>
                  <groupId>org.codehaus.plexus</groupId>
                  <artifactId>plexus-compiler-javac-errorprone</artifactId>
                  <version>${plexus-compiler-javac-errorprone.version}</version>
                </dependency>
              </dependencies>
              <configuration>
                <source>${maven.compiler.source}</source>
                <target>${maven.compiler.target}</target>
                <compilerId>javac-with-errorprone</compilerId>
                <forceJavacCompilerUse>true</forceJavacCompilerUse>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>

    <!--  This profile is used to release signed jars to the Apache Nexus repository.
          This must be executed from a git repository set at the proper Release branch (e.g., 1.1.X)
          and at a Release Candidate tag (e.g., 1.1.0-RC1).
          The pom version in the release branch must be properly set to something like: "1.1.0".
          The pom version in the master would be set to something like: "1.2.0-SNAPSHOT".
          Test Command: mvn clean verify -Pnexus-jars -DskipTests=true
          Command: mvn clean deploy -Dnexus-jars
          Verify Command (from terminal): gpg -v &#45;&#45;verify $ASC $FILE # dashdashverify
    -->
    <profile>
      <id>nexus-jars</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>pl.project13.maven</groupId>
              <artifactId>git-commit-id-plugin</artifactId>
              <version>${git-commit-id-plugin.version}</version>
              <executions>
                <execution>
                  <goals>
                    <goal>revision</goal>
                  </goals>
                  <phase>initialize</phase>
                </execution>
              </executions>
              <configuration>
                <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
                <dateFormatTimeZone>UTC</dateFormatTimeZone>
                <verbose>false</verbose>
                <skipPoms>false</skipPoms>
                <format>json</format>
                <generateGitPropertiesFile>true</generateGitPropertiesFile>
                <generateGitPropertiesFilename>${project.build.directory}/git.properties</generateGitPropertiesFilename>
                <!-- Maven commands are sometimes run on the release artifact directly, which is not a Git repository -->
                <failOnNoGitDirectory>false</failOnNoGitDirectory>
                <failOnUnableToExtractRepoInfo>true</failOnUnableToExtractRepoInfo>
                <commitIdGenerationMode>full</commitIdGenerationMode>
                <includeOnlyProperties>
                  <includeProperty>git.branch</includeProperty>
                  <includeProperty>git.commit.id.full</includeProperty>
                  <includeProperty>git.commit.time</includeProperty>
                  <includeProperty>git.commit.user.email</includeProperty>
                  <includeProperty>git.tags</includeProperty>
                </includeOnlyProperties>
                <gitDescribe>
                  <skip>false</skip>
                  <always>true</always>
                  <abbrev>7</abbrev>
                  <dirty>-dirty</dirty>
                  <tags>true</tags>
                  <forceLongFormat>true</forceLongFormat>
                </gitDescribe>
              </configuration>
            </plugin>

            <!-- Extends Apache Parent pom, pluginManagement-->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jar-plugin</artifactId>
              <version>${maven-jar-plugin.version}</version>
              <executions>
                <execution>
                  <id>default-jar</id>
                  <goals>
                    <goal>jar</goal>
                  </goals>
                </execution>
                <execution>
                  <id>default-test-jar</id>
                  <goals>
                    <goal>test-jar</goal>
                  </goals>
                </execution>
              </executions>
              <configuration>
                <archive>
                  <manifest>
                    <addDefaultEntries>false</addDefaultEntries>
                    <addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
                    <addDefaultImplementationEntries>false</addDefaultImplementationEntries>
                  </manifest>
                  <manifestEntries>
                    <Build-Jdk>${java.version} (${java.vendor} ${java.vm.version})</Build-Jdk>
                    <Build-OS>${os.name} ${os.arch} ${os.version}</Build-OS>
                    <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
                    <GroupId-ArtifactId>${project.groupId}:${project.artifactId}</GroupId-ArtifactId>
                    <!-- these properties are generated by the git-commit-id-plugin during initialize -->
                    <!--suppress UnresolvedMavenProperty -->
                    <git-branch>${git.branch}</git-branch>
                    <!--suppress UnresolvedMavenProperty -->
                    <git-commit-id>${git.commit.id.full}</git-commit-id>
                    <!--suppress UnresolvedMavenProperty -->
                    <git-commit-time>${git.commit.time}</git-commit-time>
                    <!--suppress UnresolvedMavenProperty -->
                    <git-commit-user-email>${git.commit.user.email}</git-commit-user-email>
                    <!--suppress UnresolvedMavenProperty -->
                    <git-commit-tag>${git.tags}</git-commit-tag>
                  </manifestEntries>
                </archive>
              </configuration>
            </plugin>

            <!-- We want to sign the artifacts, POM, and all attached artifacts -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-gpg-plugin</artifactId>
              <version>${maven-gpg-plugin.version}</version>
              <executions>
                <execution>
                  <id>sign-artifacts</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>sign</goal>
                  </goals>
                </execution>
              </executions>
              <configuration>
                <gpgArguments>
                  <arg>--verbose</arg>
                  <!-- prints the algorithm used -->
                  <arg>--personal-digest-preferences=SHA512</arg>
                </gpgArguments>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>

        <plugins>
          <plugin>
            <groupId>pl.project13.maven</groupId>
            <artifactId>git-commit-id-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- Disable source release assembly for 'apache-release' profile.
             This is performed from a script outside Maven -->
    <!--
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>${maven-assembly-plugin.version}</version>
            <executions>
              <execution>
                <id>source-release-assembly</id>
                <phase>none</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    -->

    <profile>
      <id>java8only</id>
      <activation>
        <jdk>[1.8,1.9),[8,9)</jdk>
      </activation>
    </profile>

    <profile>
      <id>java11plus</id>
      <activation>
        <jdk>[11,14)</jdk>
      </activation>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <!-- Apache Parent pom, pluginManagement-->
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <argLine>@{argLine}
                  --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
                  --add-exports java.base/jdk.internal.ref=ALL-UNNAMED
                  --add-opens java.base/java.nio=ALL-UNNAMED
                  --add-opens java.base/sun.nio.ch=ALL-UNNAMED
                </argLine>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>
</project>
