<?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>
  <groupId>org.apache.mnemonic</groupId>
  <artifactId>mnemonic-parent</artifactId>
  <version>0.11.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>mnemonic-parent</name>
  <url>http://mnemonic.apache.org</url>

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

  <licenses>
    <license>
      <name>Apache 2.0 License</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <mailingLists>
    <mailingList>
      <name>Dev</name>
      <subscribe>dev-subscribe@mnemonic.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@mnemonic.apache.org</unsubscribe>
      <post>dev@mnemonic.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/mnemonic-dev</archive>
    </mailingList>
    <mailingList>
      <name>Users</name>
      <subscribe>users-subscribe@mnemonic.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@mnemonic.apache.org</unsubscribe>
      <post>users@mnemonic.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/mnemonic-users</archive>
    </mailingList>
    <mailingList>
      <name>Commits</name>
      <subscribe>commits-subscribe@mnemonic.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@mnemonic.apache.org</unsubscribe>
      <post>commits@mnemonic.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/mnemonic-commits</archive>
    </mailingList>
  </mailingLists>

  <prerequisites>
    <maven>${maven.min-version}</maven>
  </prerequisites>

  <scm>
    <url>https://git-wip-us.apache.org/repos/asf/mnemonic.git</url>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/mnemonic.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/mnemonic.git</developerConnection>
    <tag>HEAD</tag>
  </scm>

  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/MNEMONIC</url>
  </issueManagement>

  <inceptionYear>2014</inceptionYear>

  <modules>
    <module>mnemonic-core</module>
    <module>mnemonic-collections</module>
    <module>mnemonic-examples</module>
    <module>mnemonic-memory-services</module>
    <module>mnemonic-computing-services</module>
    <module>mnemonic-query</module>
    <module>mnemonic-common</module>
  </modules>

  <properties>
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <maven.min-version>3.2.1</maven.min-version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <skipTests>true</skipTests>
    <root.dir>${session.executionRootDirectory}</root.dir>
    <memory.service.dist.dir>${root.dir}/mnemonic-memory-services/service-dist</memory.service.dist.dir>
    <computing.service.dist.dir>${root.dir}/mnemonic-computing-services/service-dist</computing.service.dist.dir>
    <github.global.server>github</github.global.server>
    <buildtools.dir>${basedir}/bin</buildtools.dir>
    <gpg.keyname>apache.org</gpg.keyname>
    <slf4j.version>1.7.21</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <logback.version>1.1.7</logback.version>
    <javadoc.opts></javadoc.opts>
  </properties>

  <repositories>
  </repositories>
  <pluginRepositories>
  </pluginRepositories>

  <dependencies>
  </dependencies>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
      </dependency>
      <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.17</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.flowcomputing.commons</groupId>
        <artifactId>commons-resgc</artifactId>
        <version>0.8.17</version>
      </dependency>
      <dependency>
        <groupId>org.flowcomputing.commons</groupId>
        <artifactId>commons-primitives</artifactId>
        <version>0.6.1</version>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.3.1</version>
      </dependency>
      <dependency>
        <groupId>com.squareup</groupId>
        <artifactId>javapoet</artifactId>
        <version>1.9.0</version>
      </dependency>
      <!-- logging dependencies -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>${logback.version}</version>
      </dependency>
      <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-core</artifactId>
       <version>${logback.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>1.13</version>
        <!--executions>
          <execution>
            <id>download-licenses</id>
            <goals>
              <goal>download-licenses</goal>
            </goals>
          </execution>
        </executions-->
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <filesets>
            <fileset>
              <directory>.</directory>
              <includes>
                <!-- use to clear all jar files to prevent it from performing test if not built on jdk9 -->
                <include>**/target/*.jar</include>
                <inlcude>**/*.dat</inlcude>
              </includes>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.4</version>
        <dependencies>
          <dependency>
            <!--
                | allows markdown syntax for site generation. To use it place files below
                | src/site/markdown/[filename].md
            -->
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-markdown</artifactId>
            <version>1.7</version>
          </dependency>
        </dependencies>
        <configuration>
          <skipDeploy>true</skipDeploy>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <configuration>
          <checkoutDirectory>${project.build.directory}/scmpublish</checkoutDirectory>
          <checkinComment>Publishing site for ${project.artifactId}:${project.version}</checkinComment>
          <content>${project.reporting.outputDirectory}/../staging</content>
          <skipDeletedFiles>true</skipDeletedFiles>
          <pubScmUrl>scm:git:https://github.com/NonVolatileComputing/Mnemonic.git</pubScmUrl>
          <scmBranch>gh-pages</scmBranch> <!-- branch with static site -->
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>2.17</version>
          <configuration>
            <configLocation>bin/mnemonic-checkstyle.xml</configLocation>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
            <encoding>UTF-8</encoding>
            <failOnViolation>true</failOnViolation>
          </configuration>
          <executions>
            <execution>
              <id>validate</id>
              <phase>validate</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.11</version>
          <configuration>
            <excludes>
              <exclude>.git/**/*</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/*.</exclude>
              <exclude>**/target/**/*</exclude>
              <exclude>**/README*</exclude>
              <exclude>**/LICENSE*</exclude>
              <exclude>**/*.log</exclude>
              <exclude>**/*.dat</exclude>
              <exclude>**/dependency-reduced-pom.xml</exclude>
              <exclude>**/META-INF/**/*</exclude>
              <exclude>**/META-INFO/**/*</exclude>
              <exclude>**/native/build/**/*</exclude>
              <exclude>**/native/dist/**/*</exclude>
              <exclude>**/service-dist/**</exclude>
              <exclude>**/*.iml</exclude>
              <exclude>**/*.patch</exclude>
            </excludes>
          </configuration>
          <executions>
            <execution>
              <phase>validate</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.3</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <compilerArgs>
              <arg>-XDignore.symbol.file</arg>
              <arg>-XDenableSunApiLintControl</arg>
            </compilerArgs>
            <fork>true</fork>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.bsc.maven</groupId>
          <artifactId>maven-processor-plugin</artifactId>
          <version>2.2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.20.1</version>
          <configuration>
            <skipTests>${skipTests}</skipTests>
            <enableAssertions>true</enableAssertions>
            <argLine>-Djava.ext.dirs=${memory.service.dist.dir}:${computing.service.dist.dir}</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>1.1</version>
        </plugin>
        <plugin>
          <groupId>com.github.wvengen</groupId>
          <artifactId>proguard-maven-plugin</artifactId>
          <version>2.0.11</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>2.4.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
          <configuration>
            <forceCreation>true</forceCreation>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.4.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
            <useReleaseProfile>true</useReleaseProfile>
            <releaseProfiles>apache-release</releaseProfiles>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <goals>deploy</goals>
            <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat>
            <pushChanges>false</pushChanges>
            <localCheckout>true</localCheckout>
          </configuration>
          <executions>
            <execution>
              <id>default</id>
              <goals>
                <goal>perform</goal>
              </goals>
              <configuration>
                <pomFileName>pom.xml</pomFileName>
              </configuration>
            </execution>
          </executions>
        </plugin>

      </plugins>
    </pluginManagement>

  </build>

<profiles>
  <profile>
    <id>activate-buildtools-in-module</id>
    <activation>
      <file>
        <exists>${basedir}/../bin/mnemonic-checkstyle.xml</exists>
      </file>
    </activation>
    <properties>
      <buildtools.dir>${basedir}/../bin</buildtools.dir>
    </properties>
  </profile>
  <profile>
    <id>activate-buildtools-in-submodule</id>
    <activation>
      <file>
        <exists>${basedir}/../../bin/mnemonic-checkstyle.xml</exists>
      </file>
    </activation>
    <properties>
      <buildtools.dir>${basedir}/../../bin</buildtools.dir>
    </properties>
  </profile>

  <profile>
    <id>nochecks</id>
    <properties>
      <pmd.skip>true</pmd.skip>
      <checkstyle.skip>true</checkstyle.skip>
    </properties>
  </profile>

  <profile>
    <id>apache-release</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.4</version>
          <configuration>
            <finalName>apache-mnemonic-${project.version}</finalName>
            <descriptor>bin/source-assembly.xml</descriptor>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <configuration>
            <!-- Disable this plugin so that it won't generate a DEPENDENCIES file in the source tar -->
            <skip>true</skip>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>

  <profile>
    <id>release-sign-artifacts</id>
    <activation>
      <property>
        <name>performRelease</name>
        <value>true</value>
      </property>
    </activation>
    <build>
      <plugins>
        <plugin>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.6</version>
          <executions>
            <execution>
              <id>sign-artifacts</id>
              <phase>verify</phase>
              <goals>
                <goal>sign</goal>
              </goals>
              <configuration>
                <keyname>${gpg.keyname}</keyname>
                <useAgent>true</useAgent>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>
  </profile>
  <profile>
     <id>doclint-java8-disable</id>
     <activation>
       <jdk>[1.8,)</jdk>
     </activation>
     <properties>
       <javadoc.opts>-Xdoclint:none</javadoc.opts>
     </properties>
  </profile>
  <profile>
    <id>support-jdk9-modules</id>
    <activation>
      <jdk>[1.6,1.8]</jdk>
    </activation>
    <modules>
      <module>mnemonic-benches</module>
      <module>mnemonic-sessions</module>
      <module>mnemonic-hadoop</module>
      <module>mnemonic-spark</module>
    </modules>
  </profile>
</profiles>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.6</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <additionalparam>${javadoc.opts}</additionalparam>
        </configuration>
        <reportSets>
          <reportSet>
            <id>non-aggregate</id>
            <reports>
              <report>javadoc</report>
              <report>test-javadoc</report>
            </reports>
          </reportSet>
          <reportSet>
            <id>aggregate</id>
            <inherited>false</inherited>
            <reports>
              <report>aggregate</report>
              <report>test-aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>3.0.4</version>
        <configuration>
          <effort>Max</effort>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

</project>
