| <?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> |