blob: 96885d60ea2d0aa99a2b86c0b0f7f5f1fd7110ac [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.4.0</version>
<packaging>pom</packaging>
<name>Metron</name>
<description>Metron Top Level Project</description>
<url>https://metron.apache.org/</url>
<modules>
<module>metron-analytics</module>
<module>metron-platform</module>
<module>metron-deployment</module>
<module>metron-docker</module>
<module>metron-interface</module>
</modules>
<repositories>
<repository>
<id>clojars.org</id>
<url>http://clojars.org/repo</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>
<repository>
<id>multiline-release-repo</id>
<url>https://raw.github.com/benelog/multiline/master/maven-repository</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<properties>
<twitter>@ApacheMetron</twitter>
<!-- 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_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>
<!--
This bears some explanation. storm-kafka-client is our kafka spout.
If we ever hope to support kerberos, this provides the capability to do so
in apache. Unfortunately, it also does not support, as of Storm 1.0.x
Kafka 0.10.x (see https://issues.apache.org/jira/browse/STORM-2091).
The consumer libraries (not to be confused with the protocol) on the JVM
are binary incompatible. Note the discussion on https://issues.apache.org/jira/browse/KAFKA-3006,
the main issue is the move to Collection over List. While this would be polymorphically
a non-issue, it would require a recompile of storm-kafka-client against Kafka 0.10.x.
Since a targeted platform is HDP 2.5.x, which ships only kafka 0.10.x, we need
to support kafka 0.10.x. Therefore, if we are to use this, then we would need
to support both Kafka 0.9.x and 0.10.x. Unfortunately, this would require us
to fork some of the internal projects because the 0.9.x API has shifted
(e.g. the Admin functions have different parameters) and behaves
differently than 0.10.x in subtle ways (e.g. KAFKA_GET doesn't work as implemented).
Rather than do this, we chose to depend on the HDP version of storm-kafka because
it is compiled against 0.10.x and therefore would allow us to not fork our support
for kafka. I do not like this bleeding of the HDP profile dependency into the default,
but I justify it by noting that this should be able to be removed when we migrate to
Storm 1.1.x, which properly supports Kafka 0.10.x.
-->
<global_storm_kafka_version>1.0.1.2.5.0.0-1245</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>2.3.3</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>5.2.1</global_solr_version>
<global_mockito_version>1.10.19</global_mockito_version>
<global_shade_version>2.4.3</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>
</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_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>2.18</version>
<configuration>
<!-- Skip the default running of this plug-in (or everything is run twice...see below) -->
<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>
</plugins>
</pluginManagement>
<plugins>
<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.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.12</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>**/*.md</exclude>
<exclude>**/VERSION</exclude>
<exclude>**/*.json</exclude>
<exclude>**/*.tokens</exclude>
<exclude>**/*.log</exclude>
<exclude>**/*.template</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/main/sample/patterns/**</exclude>
<exclude>**/src/test/resources/**</exclude>
<exclude>**/src/main/sample/data/**</exclude>
<exclude>**/dependency-reduced-pom.xml</exclude>
<exclude>**/target/**</exclude>
<exclude>**/bro-plugin-kafka/build/**</exclude>
<!-- pickle file - binary format -->
<exclude>**/src/main/resources/common-services/KIBANA/4.5.1/package/scripts/dashboard/dashboard.p</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 containing Font Awesome fonts are covered in the metron-config README and NOTICE file -->
<exclude>dist/*.svg</exclude>
<exclude>e2e/*.js.map</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>