<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<parent>
		<groupId>org.apache</groupId>
		<artifactId>apache</artifactId>
		<version>14</version>
	</parent>

	<modelVersion>4.0.0</modelVersion>

	<groupId>org.apache.flink</groupId>
	<artifactId>flink-parent</artifactId>
	<version>0.8.0</version>

	<name>Apache Flink</name>
	<packaging>pom</packaging>
	<url>http://flink.apache.org</url>
	<inceptionYear>2015</inceptionYear>

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

	<scm>
		<url>https://github.com/apache/incubator-flink</url>
		<connection>git@github.com:apache/flink.git</connection>
		<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-flink.git</developerConnection>
	</scm>

	<modules>
		<module>flink-shaded</module>
		<module>flink-core</module>
		<module>flink-java</module>
		<module>flink-scala</module>
		<module>flink-runtime</module>
		<module>flink-compiler</module>
		<module>flink-examples</module>
		<module>flink-clients</module>
		<module>flink-tests</module>
		<module>flink-test-utils</module>
		<module>flink-addons</module>
		<module>flink-quickstart</module>
		<module>flink-dist</module>
	</modules>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<hadoop-one.version>1.2.1</hadoop-one.version>
		<hadoop-two.version>2.2.0</hadoop-two.version>
		<!-- Need to use a user property here because the surefire/failsafe
			 forkCount is not exposed as a property. With this we can set
			 it on the "mvn" commandline in travis. -->
		<flink.forkCount>1.5C</flink.forkCount>
		<flink.reuseForks>true</flink.reuseForks>
		<slf4j.version>1.7.7</slf4j.version>
		<guava.version>17.0</guava.version>
		<scala.version>2.10.4</scala.version>
		<scala.binary.version>2.10</scala.binary.version>
		<scala.macros.version>2.0.1</scala.macros.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.3.2</version>
		</dependency>

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

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

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.9.5</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4</artifactId>
			<version>1.5.5</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-api-mockito</artifactId>
			<version>1.5.5</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest-all</artifactId>
			<version>1.3</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<!-- this section defines the module versions that are used if nothing else is specified. -->
	<dependencyManagement>
		<dependencies>
		
			<!-- ASM is used by us, Kryo, Hadoop, ... -->
			<dependency>
				<groupId>org.ow2.asm</groupId>
				<artifactId>asm</artifactId>
				<version>4.0</version>
			</dependency>

			<!-- Make sure we use a consistent jetty version throughout the project -->
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-server</artifactId>
				<version>8.0.0.M1</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-security</artifactId>
				<version>8.0.0.M1</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-servlet</artifactId>
				<version>8.0.0.M1</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-util</artifactId>
				<version>8.0.0.M1</version>
			</dependency>

			<!-- Make sure we use a consistent avro version throughout the project -->
			<dependency>
				<groupId>org.apache.avro</groupId>
				<artifactId>avro</artifactId>
				<version>1.7.6</version>
			</dependency>
			<dependency>
				<groupId>org.apache.avro</groupId>
				<artifactId>avro-ipc</artifactId>
				<version>1.7.6</version>
			</dependency>
			
			<!-- Make sure we use a consistent commons-cli version throughout the project -->
			<dependency>
				<groupId>commons-cli</groupId>
				<artifactId>commons-cli</artifactId>
				<version>1.2</version>
			</dependency>
			
			<!-- common-collections is used by us and by hadoop, so we need to define a common version -->
			<dependency>
				<groupId>commons-collections</groupId>
				<artifactId>commons-collections</artifactId>
				<version>3.2.1</version>
			</dependency>
			
			<!-- Managed dependency required for HBase in flink-hbase -->
			<dependency>
				<groupId>org.javassist</groupId>
				<artifactId>javassist</artifactId>
				<version>3.18.1-GA</version>
			</dependency>

			<!-- joda time is pulled in different versions by different transitive dependencies-->
			<dependency>
				<groupId>joda-time</groupId>
				<artifactId>joda-time</artifactId>
				<version>2.5</version>
			</dependency>

			<!-- stax is pulled in different versions by different transitive dependencies-->
			<dependency>
				<groupId>stax</groupId>
				<artifactId>stax-api</artifactId>
				<version>1.0.1</version>
			</dependency>
			
			<!-- kryo used in different versions by Flink an chill -->
			<dependency>
				<groupId>com.esotericsoftware.kryo</groupId>
				<artifactId>kryo</artifactId>
				<version>2.24.0</version>
			</dependency>

			<!-- "Old" stable Hadoop = MapReduce v1 -->
			<dependency>
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-core</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<exclusion>
						<groupId>asm</groupId>
						<artifactId>asm</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-compiler</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-runtime</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-api-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty-util</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>core</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<!-- YARN -->
			<dependency>
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-common</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<exclusion>
						<groupId>asm</groupId>
						<artifactId>asm</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-compiler</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-runtime</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-api-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty-util</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>core</artifactId>
					</exclusion>
					<exclusion>
						<groupId>javax.servlet</groupId>
						<artifactId>servlet-api</artifactId>
					</exclusion>
					<exclusion>
						<groupId>javax.servlet.jsp</groupId>
						<artifactId>jsp-api</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-hdfs</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<exclusion>
						<groupId>asm</groupId>
						<artifactId>asm</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-compiler</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-runtime</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-api-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty-util</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>core</artifactId>
					</exclusion>
					<exclusion>
						<groupId>javax.servlet</groupId>
						<artifactId>servlet-api</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-client</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<exclusion>
						<groupId>asm</groupId>
						<artifactId>asm</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-compiler</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-runtime</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-api-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty-util</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>core</artifactId>
					</exclusion>
					<exclusion>
						<groupId>javax.servlet</groupId>
						<artifactId>servlet-api</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-mapreduce-client-core</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<exclusion>
						<groupId>asm</groupId>
						<artifactId>asm</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-compiler</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-runtime</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-api-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty-util</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>core</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.apache.hadoop</groupId>
						<artifactId>hadoop-yarn-common</artifactId>
					</exclusion>
					<exclusion>
						<groupId>com.google.inject.extensions</groupId>
						<artifactId>guice-servlet</artifactId>
					</exclusion>
					<exclusion>
						<groupId>io.netty</groupId>
						<artifactId>netty</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-yarn-client</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<exclusion>
						<groupId>asm</groupId>
						<artifactId>asm</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-compiler</artifactId>
					</exclusion>
					<exclusion>
						<groupId>tomcat</groupId>
						<artifactId>jasper-runtime</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-api-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jsp-2.1</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty-util</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>core</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<profiles>
		<profile>
			<id>hadoop-1</id>
			<activation>
				<property>
					<!-- Please do not remove the 'hadoop1' comment. See ./tools/generate_specific_pom.sh -->
					<!--hadoop1--><name>hadoop.profile</name><value>1</value>
				</property>
			</activation>
			<properties>
				<hadoop.version>${hadoop-one.version}</hadoop.version>
			</properties>
		</profile>
		<profile>
			<id>hadoop-2</id>
			<activation>
				<property>
					<!-- Please do not remove the 'hadoop2' comment. See ./tools/generate_specific_pom.sh -->
					<!--hadoop2--><name>!hadoop.profile</name>
				</property>
			</activation>
			<properties>
				<hadoop.version>${hadoop-two.version}</hadoop.version>
			</properties>
		</profile>

		<profile>
			<id>hadoop-2.0.0-alpha</id>
			<activation>
				<property>
					<name>hadoop.version</name>
					<value>2.0.0-alpha</value>
				</property>
			</activation>
			<properties>
				<akka.version>2.2.1</akka.version>
				<kryoserialization.version>0.3.1</kryoserialization.version>
			</properties>
			<dependencyManagement>
				<dependencies>
					<dependency>
						<groupId>org.apache.hadoop</groupId>
						<artifactId>hadoop-common</artifactId>
						<version>${hadoop.version}</version>
						<exclusions>
							<!-- This is an additional exclusion (Netty) -->
							<exclusion>
								<groupId>org.jboss.netty</groupId>
								<artifactId>netty</artifactId>
							</exclusion>
							<exclusion>
								<groupId>asm</groupId>
								<artifactId>asm</artifactId>
							</exclusion>
							<exclusion>
								<groupId>tomcat</groupId>
								<artifactId>jasper-compiler</artifactId>
							</exclusion>
							<exclusion>
								<groupId>tomcat</groupId>
								<artifactId>jasper-runtime</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jetty</artifactId>
							</exclusion>
							<exclusion>
								<groupId>javax.servlet</groupId>
								<artifactId>servlet-api</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jsp-api-2.1</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jsp-2.1</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jetty-util</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.eclipse.jdt</groupId>
								<artifactId>core</artifactId>
							</exclusion>
						</exclusions>
					</dependency>
					<dependency>
						<groupId>org.apache.hadoop</groupId>
						<artifactId>hadoop-mapreduce-client-core</artifactId>
						<version>${hadoop.version}</version>
						<exclusions>
							<!-- This is an additional exclusion (Netty) -->
							<exclusion>
								<groupId>org.jboss.netty</groupId>
								<artifactId>netty</artifactId>
							</exclusion>
							<exclusion>
								<groupId>asm</groupId>
								<artifactId>asm</artifactId>
							</exclusion>
							<exclusion>
								<groupId>tomcat</groupId>
								<artifactId>jasper-compiler</artifactId>
							</exclusion>
							<exclusion>
								<groupId>tomcat</groupId>
								<artifactId>jasper-runtime</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jetty</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jsp-api-2.1</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jsp-2.1</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.mortbay.jetty</groupId>
								<artifactId>jetty-util</artifactId>
							</exclusion>
							<exclusion>
								<groupId>org.eclipse.jdt</groupId>
								<artifactId>core</artifactId>
							</exclusion>
						</exclusions>
					</dependency>
				</dependencies>
			</dependencyManagement>
		</profile>

		<profile>
			<id>vendor-repos</id>
			<!-- Add vendor maven repositories -->
			<repositories>
				<!-- Cloudera -->
				<repository>
					<id>cloudera-releases</id>
					<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</repository>
				<!-- Hortonworks -->
				<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>
				<!-- MapR -->
				<repository>
					<id>mapr-releases</id>
					<url>http://repository.mapr.com/maven/</url>
					<snapshots><enabled>false</enabled></snapshots>
					<releases><enabled>true</enabled></releases>
				</repository>
			</repositories>
		</profile>

		<profile>
			<!-- used for SNAPSHOT and regular releases -->
			<id>docs-and-source</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<version>2.2.1</version><!--$NO-MVN-MAN-VER$-->
						<executions>
							<execution>
								<id>attach-sources</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<version>2.9.1</version><!--$NO-MVN-MAN-VER$-->
						<configuration>
							<quiet>true</quiet>
						</configuration>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>release</id>
				<build>
				<plugins>
					<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>1.4</version>
					<executions>
						<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
						</execution>
					</executions>
					</plugin>
				</plugins>
				<pluginManagement>
					<plugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-release-plugin</artifactId>
							<version>2.1</version>
							<configuration>
								<mavenExecutorId>forked-path</mavenExecutorId>
								<useReleaseProfile>false</useReleaseProfile>
								<arguments>${arguments} -Psonatype-oss-release</arguments>
							</configuration>
						</plugin>
					</plugins>
				</pluginManagement>
			</build>
		</profile>
		<profile>
			<id>jdk8</id>
				<activation>
					<activeByDefault>false</activeByDefault>
					<jdk>1.8</jdk>
				</activation>
				<modules>
					<module>flink-java8</module>
				</modules>
				<build>
					<plugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-javadoc-plugin</artifactId>
							<version>2.9.1</version><!--$NO-MVN-MAN-VER$-->
							<configuration>
								<quiet>true</quiet>
							</configuration>
							<executions>
								<execution>
									<id>attach-javadocs</id>
									<goals>
										<goal>jar</goal>
									</goals>
									<configuration>
										<additionalparam>-Xdoclint:none</additionalparam>
									</configuration>
								</execution>
							</executions>
						</plugin>
					</plugins>
				</build>
		</profile>
	</profiles>

	<reporting>
		<plugins>
			<!-- execution of Unit Tests -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>2.17</version>
			</plugin>

			<!-- test coverage reports -->
			<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>cobertura-maven-plugin</artifactId>
					<version>2.6</version>
				<configuration>
					<formats>
						<format>html</format>
					</formats>
				</configuration>
			</plugin>
		</plugins>
	</reporting>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.4</version><!--$NO-MVN-MAN-VER$-->
				<configuration>
					<archive>
						<manifest>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
						</manifest>
					</archive>
				</configuration>
			</plugin>
			
			<!-- Relocate references to Google Guava classes into a different namespace -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>2.3</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<shadedArtifactAttached>false</shadedArtifactAttached>
					<createDependencyReducedPom>false</createDependencyReducedPom>
					<artifactSet>
						<includes>
							<include>org.apache.flink:${project.artifact}</include>
						</includes>
					</artifactSet>
					<relocations>
						<relocation>
							<pattern>com.google</pattern>
							<shadedPattern>org.apache.flink.shaded.com.google</shadedPattern>
						</relocation>
					</relocations>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<version>0.10</version><!--$NO-MVN-MAN-VER$-->
				<inherited>false</inherited>
				<executions>
					<execution>
						<phase>verify</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<excludeSubProjects>false</excludeSubProjects>
					<numUnapprovedLicenses>0</numUnapprovedLicenses>
					<licenses>
						<!-- Enforce this license:
							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.
						-->
							<license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
							<licenseFamilyCategory>AL2 </licenseFamilyCategory>
							<licenseFamilyName>Apache License 2.0</licenseFamilyName>
							<notes />
							<patterns>
								<pattern>Licensed to the Apache Software Foundation (ASF) under one</pattern>
							</patterns>
						</license>
					</licenses>
					<licenseFamilies>
						<licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
							<familyName>Apache License 2.0</familyName>
						</licenseFamily>
					</licenseFamilies>
					<excludes>
						<!-- Additional files like .gitignore etc.-->
						<exclude>**/.*</exclude>
						<exclude>**/*.prefs</exclude>
						<exclude>**/*.log</exclude>
						<!-- External web libraries. -->
						<exclude>docs/**/bootstrap*</exclude>
						<exclude>**/resources/**/font-awesome/**</exclude>
						<exclude>**/resources/**/jquery*</exclude>
						<exclude>**/resources/**/bootstrap*</exclude>
						<exclude>flink-clients/resources/web-docs/js/*d3.js</exclude>
						<exclude>flink-runtime/resources/web-docs-infoserver/css/sb-admin.css</exclude>
						<exclude>flink-runtime/resources/web-docs-infoserver/js/flot/*</exclude>
						<exclude>flink-runtime/resources/web-docs-infoserver/js/jcanvas.min.js</exclude>
						<exclude>flink-runtime/resources/web-docs-infoserver/js/timeline.js</exclude>
						<!-- Test Data. -->
						<exclude>flink-tests/src/test/resources/testdata/terainput.txt</exclude>
						<exclude>flink-addons/flink-avro/src/test/resources/avro/user.avsc</exclude>
						<!-- Configuration Files. -->
						<exclude>**/flink-bin/conf/slaves</exclude>
						<!-- Administrative files in the main trunk. -->
						<exclude>**/README.md</exclude>
						<exclude>CHANGELOG</exclude>
						<exclude>CONTRIBUTORS</exclude>
						<exclude>DEPENDENCIES</exclude>
						<!-- Build files -->
						<exclude>**/*.iml</exclude>
						<exclude>flink-quickstart/**/testArtifact/goal.txt</exclude>
						<!-- Generated content -->
						<exclude>**/target/**</exclude>
						<exclude>docs/_site/**</exclude>
						<exclude>**/scalastyle-output.xml</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>2.12.1</version>
				<executions>
					<execution>
						<id>validate</id>
						<phase>validate</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<suppressionsLocation>/tools/maven/suppressions.xml</suppressionsLocation>
					<suppressionsFileExpression>/checkstyle.suppressions.file</suppressionsFileExpression>
					<configLocation>/tools/maven/checkstyle.xml</configLocation>
					<logViolationsToConsole>true</logViolationsToConsole>
				</configuration>
			</plugin>
			<plugin>
				<!-- just define the Java version to be used for compiling and plugins -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version><!--$NO-MVN-MAN-VER$-->
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<!-- High optimization, no debugging <compilerArgument>-g:none -O</compilerArgument> -->
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-failsafe-plugin</artifactId>
				<version>2.17</version><!--$NO-MVN-MAN-VER$-->
				<executions>
					<execution>
						<goals>
							<goal>integration-test</goal>
							<goal>verify</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<forkCount>${flink.forkCount}</forkCount>
					<reuseForks>${flink.reuseForks}</reuseForks>
					<systemPropertyVariables>
						<!-- we need the "0" in front here because for some reason
						  the property is null when we have just the variable-->
						<forkNumber>0${surefire.forkNumber}</forkNumber>
					</systemPropertyVariables>
					<argLine>-Xmx800m -Dlog4j.configuration=log4j-test.properties -XX:-UseGCOverheadLimit</argLine>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.17</version><!--$NO-MVN-MAN-VER$-->
				<configuration>
					<forkCount>${flink.forkCount}</forkCount>
					<reuseForks>${flink.reuseForks}</reuseForks>
					<systemPropertyVariables>
						<forkNumber>0${surefire.forkNumber}</forkNumber>
					</systemPropertyVariables>
					<argLine>-Xmx800m -Dlog4j.configuration=log4j-test.properties -XX:-UseGCOverheadLimit</argLine>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<version>2.8</version>
				<configuration>
					<classpathContainers>
						<classpathContainer>
							org.eclipse.jdt.launching.JRE_CONTAINER
						</classpathContainer>
					</classpathContainers>
					<downloadSources>true</downloadSources>
					<downloadJavadocs>true</downloadJavadocs>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<version>1.3.1</version><!--$NO-MVN-MAN-VER$-->
				<executions>
					<execution>
						<id>enforce-maven</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireMavenVersion>
									<!-- enforce at least mvn version 3.0.3 -->
									<version>[3.0.3,)</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>

		<!--
		Disable git-commit-id-plugin in eclipse
		See https://github.com/stratosphere/stratosphere/pull/231#issuecomment-27896187
		-->
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											pl.project13.maven
										</groupId>
										<artifactId>
											git-commit-id-plugin
										</artifactId>
										<versionRange>
											[2.1.5,)
										</versionRange>
										<goals>
											<goal>revision</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore/>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-checkstyle-plugin
										</artifactId>
										<versionRange>
											[2.12.1,)
										</versionRange>
										<goals>
											<goal>check</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-enforcer-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>enforce</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-remote-resources-plugin</artifactId>
										<versionRange>[0.0.0,)</versionRange>
										<goals>
											<goal>process</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>
