<?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.0</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>
