<?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-connectors</artifactId>
		<version>1.5-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>flink-connector-elasticsearch2_${scala.binary.version}</artifactId>
	<name>flink-connector-elasticsearch2</name>

	<packaging>jar</packaging>

	<!-- Allow users to pass custom connector versions -->
	<properties>
		<elasticsearch.version>2.3.5</elasticsearch.version>
	</properties>

	<dependencies>

		<!-- core dependencies -->

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-connector-elasticsearch-base_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- Override Elasticsearch version in base from 1.x to 2.x -->
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>${elasticsearch.version}</version>
		</dependency>

		<!-- test dependencies -->

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-test-utils_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
			<type>test-jar</type>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-connector-elasticsearch-base_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<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>false</shadeTestJar>
							<artifactSet>
								<includes>
									<include>*:*</include>
								</includes>
							</artifactSet>
							<relocations>
								<relocation>
									<pattern>com.carrotsearch</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.carrotsearch</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.fasterxml</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.fasterxml</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.google</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.google</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.ning</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.ning</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.spatial4j</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.spatial4j</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.tdunning</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.tdunning</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.twitter</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.twitter</shadedPattern>
								</relocation>

								<relocation>
									<pattern>org.apache</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.apache</shadedPattern>
									<excludes>
										<!-- keep flink classes as they are (exceptions as above) -->
										<exclude>org.apache.flink.**</exclude>
										<exclude>org.apache.log4j.**</exclude> <!-- provided -->
									</excludes>
								</relocation>

								<relocation>
									<pattern>org.jboss</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.jboss</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.joda</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.joda</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.HdrHistogram</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.HdrHistogram</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.tartarus</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.tartarus</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.yaml</pattern>
									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.yaml</shadedPattern>
								</relocation>

							</relocations>
							<filters>
								<filter>
									<artifact>*</artifact>
									<excludes>
										<exclude>log4j.properties</exclude>
										<exclude>config/favicon.ico</exclude>
										<exclude>mozilla/**</exclude>
										<exclude>META-INF/maven/com*/**</exclude>
										<exclude>META-INF/maven/io*/**</exclude>
										<exclude>META-INF/maven/joda*/**</exclude>
										<exclude>META-INF/maven/net*/**</exclude>
										<exclude>META-INF/maven/org.an*/**</exclude>
										<exclude>META-INF/maven/org.apache.h*/**</exclude>
										<exclude>META-INF/maven/org.apache.commons/**</exclude>
										<exclude>META-INF/maven/org.apache.flink/force-shading/**</exclude>
										<exclude>META-INF/maven/org.apache.logging*/**</exclude>
										<exclude>META-INF/maven/org.e*/**</exclude>
										<exclude>META-INF/maven/org.h*/**</exclude>
										<exclude>META-INF/maven/org.j*/**</exclude>
										<exclude>META-INF/maven/org.y*/**</exclude>
									</excludes>
								</filter>
							</filters>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>
