<?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_jupiter_version>5.5.2</global_junit_jupiter_version>
        <global_hamcrest_version>2.2</global_hamcrest_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>3.1.0</global_mockito_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>3.0.0-M4</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>
                    <target>${global_java_version}</target>
                    <compilerArgs>
                        <arg>-Xlint:unchecked</arg>
                        <arg>-Xep:DefaultCharset:ERROR</arg>
                    </compilerArgs>
                    <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>
