blob: 701e4fe76cce72ae1d57477273d4e1bf4a18f651 [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>
<parent>
<groupId>org.apache.beam</groupId>
<artifactId>beam-examples-parent</artifactId>
<version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>beam-examples-java</artifactId>
<name>Apache Beam :: Examples :: Java</name>
<description>Apache Beam SDK provides a simple, Java-based
interface for processing virtually any size data. This
artifact includes all Apache Beam Java SDK examples.</description>
<packaging>jar</packaging>
<properties>
<spark.version>1.6.2</spark.version>
</properties>
<profiles>
<!--
The direct runner is available by default.
You can also include it on the classpath explicitly with -P direct-runner
-->
<profile>
<id>direct-runner</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-direct-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
<!-- Include the Apache Apex runner with -P apex-runner -->
<profile>
<id>apex-runner</id>
<dependencies>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-apex</artifactId>
<scope>runtime</scope>
</dependency>
<!--
Apex depends on httpclient version 4.3.5, project has a transitive dependency to httpclient 4.0.1 from
google-http-client. Apex dependency version being specified explicitly so that it gets picked up. This
can be removed when the project no longer has a dependency on a different httpclient version.
-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
<!-- Include the Apache Flink runner with -P flink-runner -->
<profile>
<id>flink-runner</id>
<dependencies>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-flink_2.10</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
<!-- Include the Apache Spark runner -P spark-runner -->
<profile>
<id>spark-runner</id>
<dependencies>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-spark</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-hadoop-file-system</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>${spark.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>${spark.version}</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
<!-- Include the Google Cloud Dataflow runner -P dataflow-runner -->
<profile>
<id>dataflow-runner</id>
<dependencies>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
<!-- Custom set up for our Jenkins precommit tests that comment on GitHub -->
<profile>
<id>jenkins-precommit</id>
<properties>
<skipITs>false</skipITs>
<skipDefaultIT>true</skipDefaultIT>
</properties>
<dependencies>
<!--
This profile requires -P apex-runner and -P spark-runner already. When they are both
included, the Spark runner's Kryo dependency will pull in a version that is insufficiently
recent for the Apex runner.
This dependency makes the Apex runner version "closer" by Maven resolution rules,
so it will not be overridden.
-->
<dependency>
<groupId>com.esotericsoftware.kryo</groupId>
<artifactId>kryo</artifactId>
<version>${apex.kryo.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<useManifestOnlyJar>false</useManifestOnlyJar>
</configuration>
<executions>
<execution>
<id>direct-runner-integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>WordCountIT.java</include>
<include>WindowedWordCountIT.java</include>
</includes>
<parallel>all</parallel>
<threadCount>4</threadCount>
<systemPropertyVariables>
<beamTestPipelineOptions>
[
"--project=apache-beam-testing",
"--tempLocation=gs://temp-storage-for-end-to-end-tests",
"--tempRoot=gs://temp-storage-for-end-to-end-tests",
"--runner=org.apache.beam.runners.direct.DirectRunner"
]
</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>flink-runner-integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>WordCountIT.java</include>
<include>WindowedWordCountIT.java</include>
</includes>
<parallel>all</parallel>
<threadCount>4</threadCount>
<systemPropertyVariables>
<beamTestPipelineOptions>
[
"--project=apache-beam-testing",
"--tempRoot=gs://temp-storage-for-end-to-end-tests",
"--runner=org.apache.beam.runners.flink.TestFlinkRunner"
]
</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>spark-runner-integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>WordCountIT.java</include>
</includes>
<systemPropertyVariables>
<beamTestPipelineOptions>
[
"--project=apache-beam-testing",
"--tempRoot=gs://temp-storage-for-end-to-end-tests",
"--runner=org.apache.beam.runners.spark.TestSparkRunner"
]
</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>dataflow-runner-integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>WordCountIT.java</include>
<include>WindowedWordCountIT.java</include>
</includes>
<parallel>all</parallel>
<threadCount>4</threadCount>
<systemPropertyVariables>
<beamTestPipelineOptions>
[
"--project=apache-beam-testing",
"--tempRoot=gs://temp-storage-for-end-to-end-tests",
"--runner=TestDataflowRunner"
]
</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>dataflow-runner-integration-tests-streaming</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>WordCountIT.java</include>
<include>WindowedWordCountIT.java</include>
</includes>
<parallel>all</parallel>
<threadCount>4</threadCount>
<systemPropertyVariables>
<beamTestPipelineOptions>
[
"--project=apache-beam-testing",
"--tempRoot=gs://temp-storage-for-end-to-end-tests",
"--runner=TestDataflowRunner",
"--streaming=true"
]
</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>apex-runner-integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>WordCountIT.java</include>
<include>WindowedWordCountIT.java</include>
</includes>
<parallel>none</parallel>
<threadCount>4</threadCount>
<systemPropertyVariables>
<beamTestPipelineOptions>
[
"--project=apache-beam-testing",
"--tempRoot=gs://temp-storage-for-end-to-end-tests",
"--runner=org.apache.beam.runners.apex.TestApexRunner"
]
</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
This profile disables streaming integration tests which
have the @Category(StreamingIT.class) annotation.
-->
<profile>
<id>disable-streaming-ITs</id>
<activation><activeByDefault>false</activeByDefault></activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<excludedGroups>org.apache.beam.sdk.testing.StreamingIT</excludedGroups>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<pluginManagement>
<plugins>
<!-- BEAM-933 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<beamUseDummyRunner />
<beamTestPipelineOptions>
</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</plugin>
<!-- Coverage analysis for unit tests. -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<useManifestOnlyJar>false</useManifestOnlyJar>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<skip>${skipDefaultIT}</skip>
<parallel>all</parallel>
<threadCount>4</threadCount>
<systemPropertyVariables>
<beamTestPipelineOptions>${integrationTestPipelineOptions}</beamTestPipelineOptions>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-extensions-google-cloud-platform-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-bigquery</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
</dependency>
<dependency>
<groupId>com.google.cloud.bigdataoss</groupId>
<artifactId>util</artifactId>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-credentials</artifactId>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-pubsub</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>com.google.cloud.datastore</groupId>
<artifactId>datastore-v1-proto-client</artifactId>
</dependency>
<dependency>
<groupId>com.google.cloud.datastore</groupId>
<artifactId>datastore-v1-protos</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- Hamcrest and JUnit are required dependencies of PAssert,
which is used in the main code of DebuggingWordCount example. -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<!-- Test dependencies -->
<!--
For testing the example itself, use the direct runner. This is separate from
the use of ValidatesRunner tests for testing a particular runner.
-->
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-direct-java</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>