<?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.metron</groupId>
    <artifactId>Metron</artifactId>
    <version>0.7.2</version>
    <packaging>pom</packaging>
    <name>Metron</name>
    <description>Metron Top Level Project</description>
    <url>https://metron.apache.org/</url>
    <organization>
        <name>The Apache Software Foundation</name>
        <url>https://www.apache.org</url>
    </organization>
    <modules>
        <module>metron-analytics</module>
        <module>metron-platform</module>
        <module>metron-deployment</module>
        <module>metron-contrib</module>
        <module>metron-interface</module>
        <module>site-book</module>
        <module>metron-stellar</module>
    </modules>

    <!--
        Note: Regarding adding dependencies and managing classpath:

            https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html

        * In general, classes referenced by a JAR-class-path entry are found as though they were part of the JAR file. The
          JAR files that appear in the JAR-class-path are searched after any earlier class path entries, and before any
          entries that appear later in the class path.

        * However, if the JAR-class-path points to a JAR file that was already searched (for example, an extension, or a
          JAR file that was listed earlier in the class path) then that JAR file will not be searched again. (This
          optimization improves efficiency and prevents circular searches.) Such a JAR file is searched at the point that it
          appears, earlier in the class path.

        * If a JAR file is installed as an extension, then any JAR-class-path it defines is ignored. All the classes
          required by an extension are presumed to be part of the SDK or to have themselves been installed as extensions.
    -->

    <repositories>
        <repository>
            <id>clojars.org</id>
            <url>https://clojars.org/repo</url>
        </repository>
        <repository>
          <id>jcenter</id>
          <url>https://jcenter.bintray.com/</url>
        </repository>
        <repository>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
                <updatePolicy>never</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <id>HDPReleases</id>
            <name>HDP Releases</name>
            <url>https://repo.hortonworks.com/content/repositories/releases/</url>
            <layout>default</layout>
        </repository>
    </repositories>
    <properties>
        <twitter>@ApacheMetron</twitter>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- base project versions -->
        <base_storm_version>1.0.1</base_storm_version>
        <base_flux_version>1.0.1</base_flux_version>
        <base_kafka_version>0.10.0</base_kafka_version>
        <base_hadoop_version>2.7.1</base_hadoop_version>
        <base_hbase_version>1.1.1</base_hbase_version>
        <base_flume_version>1.5.2</base_flume_version>
        <!-- full dependency versions -->
        <global_accumulo_version>1.8.0</global_accumulo_version>
        <global_caffeine_version>2.6.2</global_caffeine_version>
        <global_antlr_version>4.5</global_antlr_version>
        <global_opencsv_version>3.7</global_opencsv_version>
        <global_curator_version>2.7.1</global_curator_version>
        <global_classindex_version>3.3</global_classindex_version>
        <global_storm_version>1.0.3</global_storm_version>
        <global_storm_kafka_version>1.2.2</global_storm_kafka_version>
        <global_flux_version>${base_flux_version}</global_flux_version>
        <global_pcap_version>1.7.1</global_pcap_version>
        <global_kafka_version>0.10.0.1</global_kafka_version>
        <global_hadoop_version>${base_hadoop_version}</global_hadoop_version>
        <global_hbase_version>${base_hbase_version}</global_hbase_version>
        <global_flume_version>${base_flume_version}</global_flume_version>
        <global_elasticsearch_version>5.6.14</global_elasticsearch_version>
        <global_json_simple_version>1.1.1</global_json_simple_version>
        <global_metrics_version>3.0.2</global_metrics_version>
        <global_junit_version>4.12</global_junit_version>
        <global_guava_version>17.0</global_guava_version>
        <global_hbase_guava_version>12.0</global_hbase_guava_version>
        <global_json_schema_validator_version>2.2.5</global_json_schema_validator_version>
        <global_slf4j_version>1.7.7</global_slf4j_version>
        <global_opencsv_version>3.7</global_opencsv_version>
        <global_java_version>1.8</global_java_version>
        <global_solr_version>6.6.2</global_solr_version>
        <global_mockito_version>1.10.19</global_mockito_version>
        <global_powermock_version>1.7.0</global_powermock_version>
        <global_shade_version>3.2.0</global_shade_version>
        <global_jackson_version>2.7.4</global_jackson_version>
        <global_errorprone_core_version>2.0.14</global_errorprone_core_version>
        <global_jar_version>3.0.2</global_jar_version>
        <global_surefire_version>2.18</global_surefire_version>
        <global_maven_version>[3.3.1,)</global_maven_version>
        <global_kryo_version>3.0.3</global_kryo_version>
        <global_kryo_serializers_version>0.38</global_kryo_serializers_version>
        <global_reflections_version>0.9.10</global_reflections_version>
        <global_checkstyle_version>8.0</global_checkstyle_version>
        <global_log4j_core_version>2.1</global_log4j_core_version>
        <global_simple_syslog_version>0.0.3</global_simple_syslog_version>
        <global_spark_version>2.3.1</global_spark_version>
        <global_httpclient_version>4.3.2</global_httpclient_version>
        <global_aesh_version>0.66.19</global_aesh_version>
        <global_jacoco_version>0.8.3</global_jacoco_version>
        <argLine></argLine>
    </properties>

    <profiles>
        <profile>
            <id>HDP-2.5.0.0</id>
            <properties>
                <hdp_version>2.5.0.0</hdp_version>
                <build_number>1245</build_number>
                <global_storm_kafka_version>1.2.2</global_storm_kafka_version>
                <global_storm_version>${base_storm_version}.${hdp_version}-${build_number}</global_storm_version>
                <global_kafka_version>${base_kafka_version}.${hdp_version}-${build_number}</global_kafka_version>
            </properties>
        </profile>
    </profiles>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${global_mockito_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.storm</groupId>
                <artifactId>storm-kafka</artifactId>
                <version>${global_storm_version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <!-- Separates the unit tests from the integration tests. -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${global_surefire_version}</version>
                    <configuration>
                        <!-- Skip the default running of this plug-in (or everything is run twice...see below) -->
                        <argLine>@{argLine} -Xmx2048m</argLine>
                        <skip>true</skip>
                        <!-- Show 100% of the lines from the stack trace (doesn't work) -->
                        <trimStackTrace>false</trimStackTrace>
                    </configuration>
                    <executions>
                        <execution>
                            <id>unit-tests</id>
                            <phase>test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                            <configuration>
                                <!-- Never skip running the tests when the test phase is invoked -->
                                <skip>false</skip>
                                <includes>
                                    <!-- Include unit tests within integration-test phase. -->
                                    <include>**/*Test.java</include>
                                </includes>
                                <excludes>
                                    <!-- Exclude integration tests within (unit) test phase. -->
                                    <exclude>**/*IntegrationTest.java</exclude>
                                </excludes>
                            </configuration>
                        </execution>
                        <execution>
                            <id>integration-tests</id>
                            <phase>integration-test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                            <configuration>
                                <!-- Never skip running the tests when the integration-test phase is invoked -->
                                <skip>false</skip>
                                <includes>
                                    <!-- Include integration tests within integration-test phase. -->
                                    <include>**/*IntegrationTest.java</include>
                                </includes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <tarLongFileMode>posix</tarLongFileMode>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.17</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${global_checkstyle_version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-site-plugin</artifactId>
              <version>3.6</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <compilerId>javac-with-errorprone</compilerId>
                    <forceJavacCompilerUse>true</forceJavacCompilerUse>
                    <source>${global_java_version}</source>
                    <compilerArgument>-Xlint:unchecked</compilerArgument>
                    <target>${global_java_version}</target>
                    <showWarnings>true</showWarnings>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-compiler-javac-errorprone</artifactId>
                        <version>2.8</version>
                    </dependency>
                    <!-- override plexus-compiler-javac-errorprone's dependency on
                         Error Prone with the latest version -->
                    <dependency>
                        <groupId>com.google.errorprone</groupId>
                        <artifactId>error_prone_core</artifactId>
                        <version>${global_errorprone_core_version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <check />
                    <formats>
                        <format>html</format>
                    </formats>
                    <aggregate>true</aggregate>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${global_jacoco_version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.13</version>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <excludes>
                        <exclude>dependencies_with_url.csv</exclude>
                        <!-- In travis we need to pull down maven 3.3.9, so we should exclude it here as it is not our code. -->
                        <exclude>apache-maven-3.3.9/**</exclude>
                        <exclude>**/VERSION</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>**/*.json.j2</exclude>
                        <exclude>**/*.tokens</exclude>
                        <exclude>**/*.log</exclude>
                        <exclude>**/*.template</exclude>
                        <exclude>**/*.mapping</exclude>
                        <exclude>**/.*</exclude>
                        <exclude>**/.*/**</exclude>
                        <exclude>**/*.seed</exclude>
                        <exclude>**/*.iml</exclude>
                        <exclude>**/ansible.cfg</exclude>
                        <exclude>**/*.rpm</exclude>
                        <exclude>site/**</exclude>
                        <exclude>**/src/main/resources/patterns/**</exclude>
                        <exclude>**/src/test/resources/patterns/**</exclude>
                        <exclude>**/src/main/sample/patterns/**</exclude>
                        <exclude>**/src/test/resources/**</exclude>
                        <exclude>**/src/main/sample/data/**</exclude>
                        <exclude>**/dependency-reduced-pom.xml</exclude>
                        <exclude>**/target/**</exclude>
                        <!-- Files from Chef/bento -->
                        <exclude>**/packer-build/scripts/**</exclude>
                        <exclude>**/packer-build/bin/**</exclude>
                        <!-- Packer/Bento non-source directory -->
                        <exclude>**/packer_cache/**</exclude>
                        <exclude>**/hbase/data/**</exclude>
                        <exclude>**/kafkazk/data/**</exclude>
                        <exclude>**/wait-for-it.sh</exclude>
                        <exclude>**/*.out</exclude>
                        <!-- Directory containing dependencies downloaded by NPM -->
                        <exclude>node_modules/**</exclude>
                        <!-- Nodejs installed locally by the frontend-maven-plugin -->
                        <exclude>node/**</exclude>
                        <!-- Javascript code coverage report generated by Istanbul -->
                        <exclude>coverage/**</exclude>
                        <!-- ACE editor assets are covered in the metron-config NOTICE file -->
                        <exclude>**/src/assets/ace/**</exclude>
                        <exclude>dist/assets/ace/**</exclude>
                        <!-- Generated svg and bundle.css containing Font Awesome fonts are covered in the
                             metron-interface/metron-config README and NOTICE files -->
                        <exclude>dist/*.svg</exclude>
                        <exclude>dist/styles.*.bundle.css</exclude>
                        <!-- 3rdpartylicenses.txt is an empty file carried along by imported libraries -->
                        <exclude>dist/3rdpartylicenses.txt</exclude>
                        <exclude>e2e/*.js.map</exclude>
                        <!-- Checkstyle is LGPL.  We derive ours from their base, but don't ship it, so it's fine use.
                             Since it is derived, we shouldn't get an Apache header -->
                        <exclude>checkstyle.xml</exclude>
                        <!-- Alerts UI e2e test data -->
                        <exclude>e2e/mock-data/alerts_ui_e2e_index.data</exclude>
                        <!-- retry files generated by Ansible during a failure -->
                        <exclude>**/*.retry</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.4.1</version>
                <executions>
                    <execution>
                        <id>enforce-versions</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>${global_maven_version}</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <version>${global_java_version}</version>
                                </requireJavaVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.17</version>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>${global_checkstyle_version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <configLocation>checkstyle.xml</configLocation>
                    <excludes>**/generated/**/*</excludes>
                    <logViolationsToConsole>false</logViolationsToConsole>
                </configuration>
                <executions>
                    <execution>
                        <id>verify</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <site>
            <id>metron</id>
            <name>Metron</name>
            <url>file:///tmp/metron/site/</url>
        </site>
    </distributionManagement>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.3</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <additionalparam>-Xdoclint:none</additionalparam>
                </configuration>
                <reportSets>
                    <reportSet>
                        <id>default</id>
                        <reports>
                            <report>javadoc</report>
                            <report>test-javadoc</report>
                        </reports>
                    </reportSet>
                    <reportSet>
                        <id>aggregate</id>
                        <reports>
                            <report>aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.9</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <!-- Normally, dependency report takes time, skip it -->
                            <!--<report>dependencies</report>-->
                            <report>index</report>
                            <report>cim</report>
                            <report>issue-tracking</report>
                            <report>license</report>
                            <report>mailing-list</report>
                            <report>plugins</report>
                            <report>project-team</report>
                            <report>scm</report>
                            <report>summary</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                    <configLocation>checkstyle.xml</configLocation>
                    <excludes>**/generated/**/*</excludes>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>checkstyle</report>
                            <report>checkstyle-aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${global_jacoco_version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <!-- select non-aggregate reports -->
                            <report>report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.7</version>
                <configuration>
                    <targetJdk>${global_java_version}</targetJdk>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>
