<?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</groupId>
    <artifactId>apache</artifactId>
    <version>17</version>
  </parent>

  <groupId>org.apache.beam</groupId>
  <artifactId>beam-parent</artifactId>
  <name>Apache Beam :: Parent</name>
  <description>Apache Beam provides a simple, Java-based interface
  for processing virtually any size data. This artifact includes the parent POM
  for other Beam artifacts.</description>
  <url>http://beam.incubator.apache.org</url>
  <inceptionYear>2016</inceptionYear>

  <version>0.3.0-incubating</version>

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-beam.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-beam.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=incubator-beam.git;a=summary</url>
    <tag>v0.3.0-incubating-RC1</tag>
  </scm>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/BEAM</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
      <name>Beam Dev</name>
      <subscribe>dev-subscribe@beam.incubator.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@beam.incubator.apache.org</unsubscribe>
      <post>dev@beam.incubator.apache.org</post>
      <archive>http://www.mail-archive.com/dev%beam.incubator.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Beam User</name>
      <subscribe>user-subscribe@beam.incubator.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@beam.incubator.apache.org</unsubscribe>
      <post>user@beam.incubator.apache.org</post>
      <archive>http://www.mail-archive.com/user%beam.incubator.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Beam Commits</name>
      <subscribe>commits-subscribe@beam.incubator.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@beam.incubator.apache.org</unsubscribe>
      <post>commits@beam.incubator.apache.org</post>
      <archive>http://www.mail-archive.com/commits%beam.incubator.apache.org</archive>
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <name>The Apache Beam Team</name>
      <email>dev@beam.incubator.apache.org</email>
      <url>http://beam.incubator.apache.org</url>
      <organization>Apache Software Foundation</organization>
      <organizationUrl>http://www.apache.org</organizationUrl>
    </developer>
  </developers>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <beam.javadoc_opts />

    <!-- Disable integration tests by default -->
    <skipITs>true</skipITs>

    <!-- Do not add additional surefire arguments by default -->
    <beamSurefireArgline />

    <!-- If updating dependencies, please update any relevant javadoc offlineLinks -->
    <avro.version>1.8.1</avro.version>
    <bigquery.version>v2-rev295-1.22.0</bigquery.version>
    <cloudresourcemanager.version>v1-rev6-1.22.0</cloudresourcemanager.version>
    <pubsubgrpc.version>0.1.0</pubsubgrpc.version>
    <clouddebugger.version>v2-rev8-1.22.0</clouddebugger.version>
    <dataflow.version>v1b3-rev36-1.22.0</dataflow.version>
    <dataflow.proto.version>0.5.160222</dataflow.proto.version>
    <datastore.client.version>1.2.0</datastore.client.version>
    <datastore.proto.version>1.2.0</datastore.proto.version>
    <google-auto-service.version>1.0-rc2</google-auto-service.version>
    <google-auto-value.version>1.1</google-auto-value.version>
    <google-clients.version>1.22.0</google-clients.version>
    <google-cloud-bigdataoss.version>1.4.5</google-cloud-bigdataoss.version>
    <google-cloud-dataflow-java-proto-library-all.version>0.5.160304</google-cloud-dataflow-java-proto-library-all.version>
    <guava.version>19.0</guava.version>
    <grpc.version>1.0.1</grpc.version>
    <hamcrest.version>1.3</hamcrest.version>
    <jackson.version>2.7.2</jackson.version>
    <findbugs.version>3.0.1</findbugs.version>
    <joda.version>2.4</joda.version>
    <junit.version>4.11</junit.version>
    <mockito.version>1.9.5</mockito.version>
    <netty.version>4.1.3.Final</netty.version>
    <os-maven-plugin.version>1.4.0.Final</os-maven-plugin.version>
    <protobuf.version>3.0.0</protobuf.version>
    <pubsub.version>v1-rev10-1.22.0</pubsub.version>
    <slf4j.version>1.7.14</slf4j.version>
    <stax2.version>3.1.4</stax2.version>
    <storage.version>v1-rev71-1.22.0</storage.version>
    <woodstox.version>4.4.1</woodstox.version>
    
    <compiler.error.flag>-Werror</compiler.error.flag>
  </properties>

  <packaging>pom</packaging>

  <modules>
    <module>sdks</module>
    <!-- Expose Dataflow runner as top level module to satisfy dependencies in sdks/java/maven-archetypes 
      and examples/java. Until these are refactored out, we need to modify the build order. -->
    <module>runners/google-cloud-dataflow-java</module>
    <module>runners</module>
    <!-- sdks/java/maven-archetypes has several dependencies on the DataflowPipelineRunner. 
      Until these are refactored out or a released artifact exists, we need to modify the 
      build order. -->
    <module>sdks/java/maven-archetypes</module>
    <module>examples</module>
  </modules>

  <profiles>
    <!-- A global profile defined for all modules for release-level verification. 
      Optional processes such as building source and javadoc should be limited 
      to this profile. -->
    <profile>
      <id>release</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <executions>
                <execution>
                  <id>javadoc</id>
                  <phase>package</phase>
                  <goals>
                    <goal>jar</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-source-plugin</artifactId>
              <executions>
                <execution>
                  <id>attach-sources</id>
                  <phase>package</phase>
                  <goals>
                    <goal>jar-no-fork</goal>
                  </goals>
                </execution>
                <execution>
                  <id>attach-test-sources</id>
                  <phase>package</phase>
                  <goals>
                    <goal>test-jar-no-fork</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>

            <plugin>
              <groupId>org.apache.rat</groupId>
              <artifactId>apache-rat-plugin</artifactId>
              <executions>
                <execution>
                  <phase>verify</phase>
                  <goals>
                    <goal>check</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>

        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>doclint-java8-disable</id>
      <activation>
        <jdk>[1.8,)</jdk>
      </activation>
      <properties>
        <beam.javadoc_opts>-Xdoclint:-missing</beam.javadoc_opts>
      </properties>
    </profile>

    <profile>
      <id>eclipse-jdt</id>
      <properties>
        <!-- Tycho doesn't support -Werror -->
        <compiler.error.flag>-Xlint:all</compiler.error.flag>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <compilerId>jdt</compilerId>
              </configuration>
              <dependencies>
                <dependency>
                  <groupId>org.eclipse.tycho</groupId>
                  <artifactId>tycho-compiler-jdt</artifactId>
                  <!-- 0.24.0 is last version to support Java7 -->
                  <version>0.24.0</version>
                </dependency>
              </dependencies>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>

  <dependencyManagement>
    <dependencies>

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-sdks-java-core</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-runners-core-java</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-runners-direct-java</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-examples-java</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-all</artifactId>
        <version>${grpc.version}</version>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-auth</artifactId>
        <version>${grpc.version}</version>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-core</artifactId>
        <version>${grpc.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-protobuf</artifactId>
        <version>${grpc.version}</version>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-protobuf-lite</artifactId>
        <version>${grpc.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-lite</artifactId>
        <version>3.0.1</version>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-netty</artifactId>
        <version>${grpc.version}</version>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-stub</artifactId>
        <version>${grpc.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client-jackson2</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client-java6</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client-java6</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client-jackson</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client-jackson2</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client-protobuf</artifactId>
        <version>${google-clients.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-bigquery</artifactId>
        <version>${bigquery.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-cloudresourcemanager</artifactId>
        <version>${cloudresourcemanager.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-pubsub</artifactId>
        <version>${pubsub.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.api.grpc</groupId>
        <artifactId>grpc-google-pubsub-v1</artifactId>
        <version>${pubsubgrpc.version}</version>
        <exclusions>
          <!-- Exclude an old version of guava that is being pulled in by a transitive
            dependency of google-api-client -->
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
          <!-- grpc-all does not obey IWYU, so we need to exclude from compile
            scope and depend on it at runtime. -->
          <exclusion>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-all</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-storage</artifactId>
        <version>${storage.version}</version>
        <exclusions>
          <!-- Exclude an old version of guava that is being pulled in by a transitive 
            dependency of google-api-client -->
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.cloud.datastore</groupId>
        <artifactId>datastore-v1-proto-client</artifactId>
        <version>${datastore.client.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.cloud.datastore</groupId>
        <artifactId>datastore-v1-protos</artifactId>
        <version>${datastore.proto.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.auto.service</groupId>
        <artifactId>auto-service</artifactId>
        <version>${google-auto-service.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.auto.value</groupId>
        <artifactId>auto-value</artifactId>
        <version>${google-auto-value.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>annotations</artifactId>
        <version>${findbugs.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.cloud.bigdataoss</groupId>
        <artifactId>gcsio</artifactId>
        <version>${google-cloud-bigdataoss.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.cloud.bigdataoss</groupId>
        <artifactId>util</artifactId>
        <version>${google-cloud-bigdataoss.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-dataflow</artifactId>
        <version>${dataflow.version}</version>
        <exclusions>
          <!-- Exclude an old version of guava that is being pulled in by a transitive 
            dependency of google-api-client -->
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-clouddebugger</artifactId>
        <version>${clouddebugger.version}</version>
        <exclusions>
          <!-- Exclude an old version of guava that is being pulled in by a transitive 
            dependency of google-api-client -->
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-jdk5</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-scala_2.10</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-handler</artifactId>
        <version>${netty.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${avro.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>

      <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>${joda.version}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>1.4.3</version>
      </dependency>

      <!-- Testing -->

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-sdks-java-core</artifactId>
        <version>${project.version}</version>
        <classifier>tests</classifier>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-runners-core-java</artifactId>
        <version>${project.version}</version>
        <classifier>tests</classifier>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>${hamcrest.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>${slf4j.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <!-- Note: when relocating guava, ensure guava-testlib is not also relocated by
             excluding com.google.common.**.testing.* -->
        <groupId>com.google.guava</groupId>
        <artifactId>guava-testlib</artifactId>
        <version>${guava.version}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>com.google.cloud.dataflow</groupId>
        <artifactId>google-cloud-dataflow-java-proto-library-all</artifactId>
        <version>${google-cloud-dataflow-java-proto-library-all.version}</version>
        <scope>test</scope>
      </dependency>

    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <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>6.19</version>
            </dependency>
            <dependency>
              <groupId>org.apache.beam</groupId>
              <artifactId>beam-sdks-java-build-tools</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <configLocation>beam/checkstyle.xml</configLocation>
            <suppressionsLocation>beam/suppressions.xml</suppressionsLocation>
            <consoleOutput>true</consoleOutput>
            <failOnViolation>true</failOnViolation>
            <includeResources>false</includeResources>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
          </configuration>
          <executions>
            <!--
              Execute checkstyle after compilation but before tests.

              This ensures that any parsing or type checking errors are from
              javac, so they look as expected. Beyond that, we want to
              fail as early as possible.
            -->
            <execution>
              <phase>test-compile</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.5.1</version>
          <configuration>
            <source>1.7</source>
            <target>1.7</target>
            <compilerArgs>
              <arg>-Xlint:all</arg>
              <arg>${compiler.error.flag}</arg>
              <!-- Override options warnings to support cross-compilation -->
              <arg>-Xlint:-options</arg>
              <!-- Temporary lint overrides, to be removed over time. -->
              <arg>-Xlint:-cast</arg>
              <arg>-Xlint:-deprecation</arg>
              <arg>-Xlint:-processing</arg>
              <arg>-Xlint:-rawtypes</arg>
              <arg>-Xlint:-serial</arg>
              <arg>-Xlint:-try</arg>
              <arg>-Xlint:-unchecked</arg>
              <arg>-Xlint:-varargs</arg>
              <!-- Uncomment the following args to display more warnings. -->
              <!-- -Xmaxwarns -->
              <!-- 10000 -->
            </compilerArgs>
            <showWarnings>true</showWarnings>
            <!-- Another temp override, to be set to true in due course. -->
            <showDeprecation>false</showDeprecation>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.5</version>
          <executions>
            <execution>
              <id>default-jar</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
            <execution>
              <id>default-test-jar</id>
              <goals>
                <goal>test-jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>2.4</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.3</version>
        </plugin>

        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.11</version>
          <configuration>
            <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
            <excludeSubProjects>false</excludeSubProjects>
            <useDefaultExcludes>true</useDefaultExcludes>
            <excludes>
              <!-- Keep exclude sync with .gitignore -->
              <exclude>**/target/**/*</exclude>
              <exclude>**/dependency-reduced-pom.xml</exclude>
              <exclude>**/hs_err_pid*.log</exclude>
              <exclude>.github/**/*</exclude>
              <exclude>**/*.iml</exclude>
              <exclude>**/package-list</exclude>
              <exclude>**/user.avsc</exclude>
              <exclude>**/test/resources/**/*.txt</exclude>
              <exclude>**/test/**/.placeholder</exclude>
              <exclude>.repository/**/*</exclude>

              <!-- Default eclipse excludes neglect subprojects -->
              <exclude>**/.checkstyle</exclude>
              <exclude>**/.classpath</exclude>
              <exclude>**/.factorypath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/.settings/**/*</exclude>
            </excludes>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.1</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.4.0</version>
          <executions>
            <execution>
              <phase>verify</phase>
              <goals>
                <goal>java</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <cleanupDaemonThreads>false</cleanupDaemonThreads>
            <systemProperties>
              <systemProperty>
                <key>java.util.logging.config.file</key>
                <value>logging.properties</value>
              </systemProperty>
            </systemProperties>
          </configuration>
        </plugin>

        <!-- Coverage analysis for tests -->
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.7.5.201505241946</version>
          <executions>
            <execution>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
              <configuration>
                <output>file</output>
                <dumpOnExit>true</dumpOnExit>
              </configuration>
            </execution>
            <execution>
              <id>report</id>
              <phase>prepare-package</phase>
              <goals>
                <goal>report</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <excludes>
              <exclude>**/AutoValue_*.class</exclude>
            </excludes>
          </configuration>
        </plugin>

        <!-- Report jacoco coverage to coveralls.io -->
        <plugin>
          <groupId>org.eluder.coveralls</groupId>
          <artifactId>coveralls-maven-plugin</artifactId>
          <version>4.1.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.19.1</version>
          <configuration>
            <useManifestOnlyJar>false</useManifestOnlyJar>
            <trimStackTrace>false</trimStackTrace>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
            <argLine>${beamSurefireArgline}</argLine>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-junit47</artifactId>
              <version>2.19.1</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.19.1</version>
          <configuration>
            <trimStackTrace>false</trimStackTrace>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
          </configuration>
        </plugin>

        <!-- This plugin's configuration tells the m2e plugin how to import this 
          Maven project into the Eclipse environment. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.avro</groupId>
                    <artifactId>avro-maven-plugin</artifactId>
                    <versionRange>${avro.version}</versionRange>
                    <goals>
                      <goal>schema</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute>
                      <runOnIncremental>false</runOnIncremental>
                    </execute>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <versionRange>[2.5,)</versionRange>
                    <goals>
                      <goal>jar</goal>
                      <goal>test-jar</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <versionRange>[0.7.5,)</versionRange>
                    <goals>
                      <goal>report</goal>
                      <goal>prepare-agent</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.10</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>2.4.1</version>
        </plugin>

        <plugin>
          <groupId>org.apache.avro</groupId>
          <artifactId>avro-maven-plugin</artifactId>
          <version>${avro.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
            <releaseProfiles>release</releaseProfiles>
            <preparationGoals>clean install</preparationGoals>
            <goals>deploy</goals>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>

        <!-- Rename the artifact produced by the Apache parent's
             source release. -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <executions>
            <execution>
              <id>source-release-assembly</id>
              <configuration>
                <finalName>apache-beam-${project.version}</finalName>
              </configuration>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${findbugs.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.beam</groupId>
              <artifactId>beam-sdks-java-build-tools</artifactId>
              <version>${project.version}</version>
            </dependency>

            <!-- Explicitly exclude deps which we do not really need. -->
            <dependency>
              <groupId>com.google.code.findbugs</groupId>
              <artifactId>findbugs</artifactId>
              <version>${findbugs.version}</version>
              <exclusions>
                <exclusion>
                  <groupId>com.apple</groupId>
                  <artifactId>AppleJavaExtensions</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
          </dependencies>

          <configuration>
            <excludeFilterFile>beam/findbugs-filter.xml</excludeFilterFile>
          </configuration>

          <executions>
            <execution>
              <phase>test-compile</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.10</version>
        <executions>
          <execution>
            <goals><goal>analyze-only</goal></goals>
            <configuration>
              <!-- Ignore runtime-only dependencies in analysis -->
              <ignoreNonCompile>true</ignoreNonCompile>
              <failOnWarning>true</failOnWarning>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.3.1</version>
        <executions>
          <execution>
            <id>enforce</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireJavaVersion>
                  <version>[1.7,)</version>
                </requireJavaVersion>
                <requireMavenVersion>
                  <version>[3.2,)</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.1</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>dependency-updates-report</report>
              <report>plugin-updates-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
</project>
