<?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.1</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>http://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>http://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.1</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>
