<?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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.apache.flink</groupId>
		<artifactId>flink-parent</artifactId>
		<version>1.0-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>flink-shaded-hadoop</artifactId>
	<name>flink-shaded-hadoop</name>

	<packaging>pom</packaging>

	<modules>
		<module>${shading-artifact-module.name}</module>
	</modules>

	<profiles>
		<profile>
			<id>include-yarn-tests</id>
			<activation>
				<property>
					<!-- Please do not remove the 'hadoop2' comment. See ./tools/generate_specific_pom.sh -->
					<!--hadoop2--><name>!hadoop.profile</name>
				</property>
			</activation>
			<modules>
				<module>flink-shaded-include-yarn-tests</module>
			</modules>
		</profile>
	</profiles>

	<build>
		<plugins>
			<!-- Relocate the Hadoop's Guava dependency into a different namespace and
			put Hadoop into a fat-jar.
			-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<!--Disable shade-flink execution to avoid duplicate relocation of
						dependencies-->
						<id>shade-flink</id>
						<phase>none</phase>
					</execution>
					<execution>
						<id>shade-hadoop</id>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<shadedArtifactAttached>false</shadedArtifactAttached>
							<createDependencyReducedPom>true</createDependencyReducedPom>
							<dependencyReducedPomLocation>${project.basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
							<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
							<filters>
								<!-- Exclude signatures -->
								<filter>
									<artifact>*</artifact>
									<excludes>
										<exclude>META-INF/*.SF</exclude>
										<exclude>META-INF/*.DSA</exclude>
										<exclude>META-INF/*.RSA</exclude>
									</excludes>
								</filter>
								<filter>
									<artifact>org.slf4j:*</artifact>
									<excludes>
										<exclude>org/slf4j/impl/**</exclude>
									</excludes>
								</filter>
								<!-- Exclude Hadoop's log4j. Hadoop can use Flink's log4j dependency -->
								<filter>
									<artifact>log4j:*</artifact>
									<excludes>
										<exclude>org/apache/log4j/**</exclude>
									</excludes>
								</filter>
							</filters>
							<transformers>
								<!-- The service transformer is needed to merge META-INF/services files -->
								<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
								<transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"/>
							</transformers>
							<artifactSet>
								<includes>
									<include>com.google.guava:*</include>
									<include>com.google.protobuf:*</include>
									<include>com.google.code.findbugs:*</include>
									<include>asm:asm</include>
									<include>io.netty:netty:*</include>
									<include>org.apache.curator:*</include>
									<include>org.apache.hadoop:*</include>
									<include>org.htrace:htrace-core</include>

									<!-- This dependency needs to be included to properly get rid of the HTTP Components dependency -->
									<include>net.java.dev.jets3t:jets3t</include>
									<include>org.apache.httpcomponents:*</include>
									<include>commons-httpclient:commons-httpclient</include>
								</includes>
							</artifactSet>
							<relocations>
								<relocation>
									<pattern>com.google</pattern>
									<shadedPattern>org.apache.flink.hadoop.shaded.com.google</shadedPattern>
									<excludes>
										<exclude>com.google.inject.**</exclude>
									</excludes>
								</relocation>
								<relocation>
									<pattern>org.objectweb.asm</pattern>
									<shadedPattern>org.apache.flink.hadoop.shaded.org.objectweb.asm</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.jboss.netty</pattern>
									<shadedPattern>org.apache.flink.hadoop.shaded.org.jboss.netty</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.apache.curator</pattern>
									<shadedPattern>org.apache.flink.hadoop.shaded.org.apache.curator</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.apache.http</pattern>
									<shadedPattern>org.apache.flink.hadoop.shaded.org.apache.http</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.apache.commons.httpclient</pattern>
									<shadedPattern>org.apache.flink.hadoop.shaded.org.apache.commons.httpclient</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.htrace</pattern>
									<shadedPattern>org.apache.flink.hadoop.shaded.org.htrace</shadedPattern>
								</relocation>
							</relocations>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>
