<?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>1.0.0</version>

	<name>flink</name>
	<packaging>pom</packaging>
	<url>http://flink.apache.org</url>
	<inceptionYear>2014</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/flink</url>
		<connection>git@github.com:apache/flink.git</connection>
		<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/flink.git</developerConnection>
	</scm>

	<modules>
		<!--- Dummy module to force execution of the Maven Shade plugin (see Shade plugin below) -->
		<module>tools/force-shading</module>
		<module>flink-annotations</module>
		<module>flink-shaded-hadoop</module>
		<module>flink-shaded-curator</module>
		<module>flink-core</module>
		<module>flink-java</module>
		<module>flink-scala</module>
		<module>flink-runtime</module>
		<module>flink-runtime-web</module>
		<module>flink-optimizer</module>
		<module>flink-streaming-java</module>
		<module>flink-streaming-scala</module>
		<module>flink-streaming-connectors</module>
		<module>flink-batch-connectors</module>
		<module>flink-examples</module>
		<module>flink-clients</module>
		<module>flink-tests</module>
		<module>flink-test-utils</module>
		<module>flink-libraries</module>
		<module>flink-scala-shell</module>
		<module>flink-quickstart</module>
		<module>flink-contrib</module>
		<module>flink-dist</module>
	</modules>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<!-- Mutable name of the hadoop shading artifact. The module name can contain a scala version suffix. -->
		<shading-artifact.name>error</shading-artifact.name>
		<!-- The shading artifact module name can be used as a module name. it does not get a scala version suffix -->
		<shading-artifact-module.name>error</shading-artifact-module.name>
		<hadoop-one.version>1.2.1</hadoop-one.version>
		<hadoop-two.version>2.3.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>
		<log4j.configuration>log4j-test.properties</log4j.configuration>
		<slf4j.version>1.7.7</slf4j.version>
		<guava.version>18.0</guava.version>
		<akka.version>2.3.7</akka.version>
		<scala.macros.version>2.0.1</scala.macros.version>
		<!-- Default scala versions, may be overwritten by build profiles -->
		<scala.version>2.10.4</scala.version>
		<scala.binary.version>2.10</scala.binary.version>
		<chill.version>0.7.4</chill.version>
		<asm.version>5.0.4</asm.version>
		<zookeeper.version>3.4.6</zookeeper.version>
		<curator.version>2.8.0</curator.version>
		<jackson.version>2.4.2</jackson.version>
	</properties>

	<dependencies>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>force-shading</artifactId>
			<version>1.0.0</version>
		</dependency>

		<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>
		<!-- WARN: 
			DO NOT put 	guava, 
						protobuf, 
						asm,
						netty
					here. It will overwrite Hadoop's guava dependency (even though we handle it
			separatly in the flink-shaded-hadoop module).
			We can use all guava versions everywhere by adding it directly as a dependency to each project.
		-->
		<dependencies>

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

			<dependency>
				<groupId>commons-io</groupId>
				<artifactId>commons-io</artifactId>
				<version>2.4</version>
			</dependency>

			<!-- common-beanutils-bean-collections is used by flink-shaded-hadoop2 -->
			<dependency>
				<groupId>commons-beanutils</groupId>
				<artifactId>commons-beanutils-bean-collections</artifactId>
				<version>1.8.3</version>
			</dependency>

			<!--We have to bump the commons-configuration to version 1.7 because Hadoop uses per
			default 1.6. This version has the problem that it depends on commons-beanutils-core and
			commons-digester. Commons-digester depends on commons-beanutils. Both dependencies are
			contains classes of commons-collections. Since the dependency reduced pom does not
			exclude commons-beanutils from commons-configuration, sbt would pull it in again. The
			solution is setting the version of commons-configuration to 1.7 which also depends on
			common-beanutils. Consequently, the dependency reduced pom will also contain an
			exclusion for commons-beanutils for commons-configuration. -->
			<dependency>
				<groupId>commons-configuration</groupId>
				<artifactId>commons-configuration</artifactId>
				<version>1.7</version>
			</dependency>

			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-math3</artifactId>
				<version>3.5</version>
			</dependency>

			<!-- Managed dependency required for HBase in flink-hbase -->
			<dependency>
				<groupId>org.javassist</groupId>
				<artifactId>javassist</artifactId>
				<version>3.18.2-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>

			<dependency>
				<groupId>org.joda</groupId>
				<artifactId>joda-convert</artifactId>
				<version>1.7</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>

			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scala-library</artifactId>
				<version>${scala.version}</version>
			</dependency>

			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scala-reflect</artifactId>
				<version>${scala.version}</version>
			</dependency>

			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scala-compiler</artifactId>
				<version>${scala.version}</version>
			</dependency>

			<dependency>
				<groupId>org.clapper</groupId>
				<artifactId>grizzled-slf4j_${scala.binary.version}</artifactId>
				<version>1.0.2</version>
			</dependency>

			<dependency>
				<groupId>com.typesafe.akka</groupId>
				<artifactId>akka-actor_${scala.binary.version}</artifactId>
				<version>${akka.version}</version>
			</dependency>

			<dependency>
				<groupId>com.typesafe.akka</groupId>
				<artifactId>akka-remote_${scala.binary.version}</artifactId>
				<version>${akka.version}</version>
			</dependency>

			<dependency>
				<groupId>com.typesafe.akka</groupId>
				<artifactId>akka-slf4j_${scala.binary.version}</artifactId>
				<version>${akka.version}</version>
			</dependency>

			<dependency>
				<groupId>com.typesafe.akka</groupId>
				<artifactId>akka-camel_${scala.binary.version}</artifactId>
				<version>${akka.version}</version>
			</dependency>

			<dependency>
				<groupId>com.typesafe.akka</groupId>
				<artifactId>akka-testkit_${scala.binary.version}</artifactId>
				<version>${akka.version}</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.scalatest</groupId>
				<artifactId>scalatest_${scala.binary.version}</artifactId>
				<version>2.2.2</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>com.github.scopt</groupId>
				<artifactId>scopt_${scala.binary.version}</artifactId>
				<version>3.2.0</version>
				<exclusions>
					<exclusion>
						<groupId>org.scala-lang</groupId>
						<artifactId>scala-library</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

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

			<dependency>
				<groupId>io.netty</groupId>
				<artifactId>netty-all</artifactId>
				<!-- Don't upgrade for now. Netty versions >= 4.0.28.Final
				contain an improvement by Netty, which slices a Netty buffer
				instead of doing a memory copy [1] in the
				LengthFieldBasedFrameDecoder. In some situations, this
				interacts badly with our Netty pipeline leading to OutOfMemory
				errors.

				[1] https://github.com/netty/netty/issues/3704 -->
				<version>4.0.27.Final</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-databind</artifactId>
				<version>${jackson.version}</version>
			</dependency>

			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-annotations</artifactId>
				<version>${jackson.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<profiles>
		
		<!-- Profile to switch to Scala Version 2.11 -->
		<profile>
			<id>scala-2.11</id>
			<activation>
				<property>
					<name>scala-2.11</name>
				</property>
			</activation>
			<properties>
				<scala.version>2.11.7</scala.version>
				<scala.binary.version>2.11</scala.binary.version>
			</properties>
		</profile>

		<!-- Profile to switch to Hadoop 1 -->
		<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>
				<shading-artifact.name>flink-shaded-hadoop1_2.10</shading-artifact.name>
				<shading-artifact-module.name>flink-shaded-hadoop1</shading-artifact-module.name>
			</properties>
		</profile>

		<!-- Default profile, which builds for Hadoop 2 -->
		<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>
				<shading-artifact.name>flink-shaded-hadoop2</shading-artifact.name>
				<shading-artifact-module.name>flink-shaded-hadoop2</shading-artifact-module.name>
			</properties>
			<modules>
				<module>flink-yarn</module>
				<!-- Include the flink-fs-tests project only for HD2.
				 	The HDFS minicluster interfaces changed between the two versions.
				 -->
				<module>flink-fs-tests</module>
			</modules>
		</profile>

		<!-- Profile to deactivate the YARN tests -->
		<profile>
			<id>include-yarn-tests</id>
			<modules>
				<module>flink-yarn-tests</module>
			</modules>
		</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>
					<id>HDPReleases</id>
					<name>HDP Releases</name>
					<url>http://repo.hortonworks.com/content/repositories/releases/</url>
					<snapshots><enabled>false</enabled></snapshots>
					<releases><enabled>true</enabled></releases>
				</repository>
				<repository>
					<id>HortonworksJettyHadoop</id>
					<name>HDP Jetty</name>
					<url>http://repo.hortonworks.com/content/repositories/jetty-hadoop</url>
					<snapshots><enabled>false</enabled></snapshots>
					<releases><enabled>true</enabled></releases>
				</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 aggregating  ScalaDoc with JavaDoc -->
			<id>aggregate-scaladoc</id>
                        <dependencies>
				<dependency>
					<!--
					This is necessary for building the java docs using Java 8. Otherwise the javadoc
					plugin will fail with "javadoc: error -
						com.sun.tools.doclets.internal.toolkit.util.DocletAbortException:
							com.sun.tools.javac.code.Symbol$CompletionFailure:
								class file for akka.testkit.TestKit not found"
					-->
					<groupId>com.typesafe.akka</groupId>
					<artifactId>akka-testkit_${scala.binary.version}</artifactId>
					<version>${akka.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>

				<plugins>
					<!-- We need to clean compiled classes to make sure that genjavadoc
					is called to generate our fake Java source from Scala source. -->
					<plugin>
						<artifactId>maven-clean-plugin</artifactId>
						<version>2.5</version><!--$NO-MVN-MAN-VER$-->
						<executions>
							<execution>
								<id>clean-target</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>clean</goal>
								</goals>
								<configuration>
									<excludeDefaultDirectories>true</excludeDefaultDirectories>
									<filesets>
										<fileset>
											<directory>${project.build.directory}</directory>
											<includes>
												<include>**/*.class</include>
												<include>**/classes.*.timestamp</include>
											</includes>
										</fileset>
									</filesets>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>net.alchim31.maven</groupId>
						<artifactId>scala-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>doc</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>compile</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<args>
								<arg>-P:genjavadoc:out=${project.build.directory}/genjavadoc</arg>
							</args>
							<compilerPlugins>
								<compilerPlugin>
									<groupId>com.typesafe.genjavadoc</groupId>
									<artifactId>genjavadoc-plugin_${scala.version}</artifactId>
									<version>0.8</version>
								</compilerPlugin>
							</compilerPlugins>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<executions>
							<execution>
								<phase>generate-sources</phase>
								<goals>
									<goal>add-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.build.directory}/genjavadoc</source>
									</sources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</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>
			<dependencies>
				<dependency>
					<!--
					This is necessary for building the java docs using Java 8. Otherwise the javadoc
					plugin will fail with "javadoc: error -
						com.sun.tools.doclets.internal.toolkit.util.DocletAbortException:
							com.sun.tools.javac.code.Symbol$CompletionFailure:
								class file for akka.testkit.TestKit not found"
					-->
					<groupId>com.typesafe.akka</groupId>
					<artifactId>akka-testkit_${scala.binary.version}</artifactId>
					<version>${akka.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
		</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>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-enforcer-plugin</artifactId>
						<version>1.4.1</version>
						<executions>
							<execution>
								<id>enforce-maven</id>
								<goals>
									<goal>enforce</goal>
								</goals>
								<configuration>
									<rules>
										<requireMavenVersion>
											<!-- maven version must be lower than 3.3. See FLINK-3158 -->
											<version>(,3.3)</version>
										</requireMavenVersion>
									</rules>
								</configuration>
							</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>
									<detectOfflineLinks>false</detectOfflineLinks>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

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

			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<version>0.11</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>docs/img/*.svg</exclude>
						<exclude>**/resources/**/font-awesome/**</exclude>
						<exclude>**/resources/**/jquery*</exclude>
						<exclude>**/resources/**/bootstrap*</exclude>
						<exclude>flink-clients/src/main/resources/web-docs/js/*d3.js</exclude>

						<!-- web dashboard config JSON files -->
						<exclude>flink-runtime-web/web-dashboard/package.json</exclude>
						<exclude>flink-runtime-web/web-dashboard/bower.json</exclude>

						<!-- web dashboard files under 3rd party license -->
						<exclude>flink-runtime-web/web-dashboard/vendor-local/d3-timeline.js</exclude>
						<exclude>flink-runtime-web/web-dashboard/assets/fonts/FontAwesome.otf</exclude>
						<exclude>flink-runtime-web/web-dashboard/assets/fonts/fontawesome*</exclude>

                        <!-- generated contents -->
						<exclude>flink-runtime-web/web-dashboard/web/**</exclude>

						<!-- downloaded and generated web libraries. -->
						<exclude>flink-runtime-web/web-dashboard/node_modules/**</exclude>
						<exclude>flink-runtime-web/web-dashboard/bower_components/**</exclude>
						<exclude>flink-runtime-web/web-dashboard/tmp/**</exclude>

						<!-- Test Data. -->
						<exclude>flink-tests/src/test/resources/testdata/terainput.txt</exclude>
						<exclude>flink-batch-connectors/flink-avro/src/test/resources/avro/*.avsc</exclude>
						<exclude>out/test/flink-avro/avro/user.avsc</exclude>
						<exclude>flink-libraries/flink-table/src/test/scala/resources/*.out</exclude>
						<!-- TweetInputFormat Test Data-->
						<exclude>flink-contrib/flink-tweet-inputformat/src/main/resources/HashTagTweetSample.json</exclude>
						<exclude>flink-batch-connectors/flink-avro/src/test/resources/testdata.avro</exclude>
						<exclude>flink-batch-connectors/flink-avro/src/test/java/org/apache/flink/api/io/avro/generated/*.java</exclude>
						<exclude>flink-libraries/flink-python/src/test/python/org/apache/flink/python/api/data_csv</exclude>
						<exclude>flink-libraries/flink-python/src/test/python/org/apache/flink/python/api/data_text</exclude>
						<!-- Configuration Files. -->
						<exclude>**/flink-bin/conf/slaves</exclude>
						<exclude>**/flink-bin/conf/masters</exclude>
						<exclude>**/flink-bin/conf/zoo.cfg</exclude>
                        <exclude>flink-contrib/docker-flink/flink/conf/slaves</exclude>
						<!-- Administrative files in the main trunk. -->
						<exclude>**/README.md</exclude>
						<exclude>CHANGELOG</exclude>
						<exclude>CONTRIBUTING.md</exclude>
						<exclude>CONTRIBUTORS</exclude>
						<exclude>DEPENDENCIES</exclude>
						<!-- Build files -->
						<exclude>**/*.iml</exclude>
						<exclude>flink-quickstart/**/testArtifact/goal.txt</exclude>
						<!-- Generated content -->
						<exclude>out/**</exclude>
						<exclude>**/target/**</exclude>
						<exclude>docs/_site/**</exclude>
						<exclude>**/scalastyle-output.xml</exclude>
						<exclude>build-target/**</exclude>
						<!-- Tools: watchdog -->
						<exclude>tools/artifacts/**</exclude>
						<!-- PyCharm -->
						<exclude>**/.idea/**</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>2.16</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.7</source>
					<target>1.7</target>
					<!-- The output of Xlint is not shown by default, but we activate it for the QA bot
					to be able to get more warnings -->
					<compilerArgument>-Xlint:all</compilerArgument>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-failsafe-plugin</artifactId>
				<version>2.18.1</version><!--$NO-MVN-MAN-VER$-->
				<executions>
					<execution>
						<goals>
							<goal>integration-test</goal>
							<goal>verify</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<forkCount>${flink.forkCount}</forkCount>
					<reuseForks>false</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>-Xms256m -Xmx800m -Dlog4j.configuration=${log4j.configuration} -Dmvn.forkNumber=${surefire.forkNumber} -XX:-UseGCOverheadLimit</argLine>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.18.1</version><!--$NO-MVN-MAN-VER$-->
				<configuration>
					<forkCount>${flink.forkCount}</forkCount>
					<reuseForks>${flink.reuseForks}</reuseForks>
					<systemPropertyVariables>
						<forkNumber>0${surefire.forkNumber}</forkNumber>
					</systemPropertyVariables>
					<argLine>-Xms256m -Xmx800m -Dlog4j.configuration=${log4j.configuration} -Dmvn.forkNumber=${surefire.forkNumber} -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>

			<!-- We use shading in all packages for relocating some classes, such as
				Guava and ASM.
				By doing so, users adding Flink as a dependency won't run into conflicts.
				(For example users can use whatever guava version they want, because we don't
				expose our guava dependency)
			-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<id>shade-flink</id>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<shadeTestJar>true</shadeTestJar>
							<shadedArtifactAttached>false</shadedArtifactAttached>
							<createDependencyReducedPom>true</createDependencyReducedPom>
							<dependencyReducedPomLocation>${project.basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
							<filters>
								<!-- Globally exclude log4j.properties from our JAR files. -->
								<filter>
									<artifact>*</artifact>
									<excludes>
										<exclude>log4j.properties</exclude>
										<exclude>log4j-test.properties</exclude>
									</excludes>
								</filter>
							</filters>
							<artifactSet>
								<includes>
									<!-- Unfortunately, the next line is necessary for now to force the execution
									of the Shade plugin upon all sub modules. This will generate effective poms,
									i.e. poms which do not contain properties which are derived from this root pom.
									In particular, the Scala version properties are defined in the root pom and without
									shading, the root pom would have to be Scala suffixed and thereby all other modules.
									-->
									<include>org.apache.flink:force-shading</include>
									<include>com.google.guava:*</include>
									<include>org.ow2.asm:*</include>
								</includes>
							</artifactSet>
							<relocations>
								<relocation>
									<pattern>com.google</pattern>
									<shadedPattern>org.apache.flink.shaded.com.google</shadedPattern>
									<excludes>
										<exclude>com.google.protobuf.**</exclude>
										<exclude>com.google.inject.**</exclude>
									</excludes>
								</relocation>
								<relocation>
									<pattern>org.objectweb.asm</pattern>
									<shadedPattern>org.apache.flink.shaded.org.objectweb.asm</shadedPattern>
								</relocation>
							</relocations>
						</configuration>
					</execution>
				</executions>
			</plugin>

		</plugins>

		<!--
		Disable git-commit-id-plugin in eclipse
		See https://github.com/stratosphere/stratosphere/pull/231#issuecomment-27896187
		-->
		<pluginManagement>
			<plugins>
				<!--set maven shade plugin version-->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>2.4.1</version>
				</plugin>
				<!--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>
