blob: 3f24590245bbc04b2690c449a5e01337051a8385 [file] [log] [blame]
<?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>