You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tz...@apache.org on 2018/02/08 16:21:43 UTC

[1/2] flink git commit: [FLINK-8362][elasticsearch] shade all dependencies

Repository: flink
Updated Branches:
  refs/heads/release-1.4 5f9e367be -> 33ebc85c2


[FLINK-8362][elasticsearch] shade all dependencies


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/0c53e798
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/0c53e798
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/0c53e798

Branch: refs/heads/release-1.4
Commit: 0c53e798cb25bacdde241d4b4696108dbae29117
Parents: 5f9e367
Author: Nico Kruber <ni...@data-artisans.com>
Authored: Thu Jan 4 21:09:09 2018 +0100
Committer: Tzu-Li (Gordon) Tai <tz...@apache.org>
Committed: Thu Feb 8 17:21:15 2018 +0100

----------------------------------------------------------------------
 docs/dev/connectors/elasticsearch.md            |  33 +----
 .../flink-connector-elasticsearch/pom.xml       | 100 +++++++++++++++
 .../flink-connector-elasticsearch2/pom.xml      | 125 ++++++++++++++++++
 .../flink-connector-elasticsearch5/pom.xml      | 126 +++++++++++++++++++
 tools/travis_mvn_watchdog.sh                    |  29 +++++
 5 files changed, 382 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/0c53e798/docs/dev/connectors/elasticsearch.md
----------------------------------------------------------------------
diff --git a/docs/dev/connectors/elasticsearch.md b/docs/dev/connectors/elasticsearch.md
index 8774fcb..52d1b58 100644
--- a/docs/dev/connectors/elasticsearch.md
+++ b/docs/dev/connectors/elasticsearch.md
@@ -440,36 +440,7 @@ For the execution of your Flink program, it is recommended to build a
 so-called uber-jar (executable jar) containing all your dependencies
 (see [here]({{site.baseurl}}/dev/linking.html) for further information).
 
-However, when an uber-jar containing an Elasticsearch sink is executed,
-an `IllegalArgumentException` may occur, which is caused by conflicting
-files of Elasticsearch and it's dependencies in `META-INF/services`:
-
-```
-IllegalArgumentException[An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene50' does not exist.  You need to add the corresponding JAR file supporting this SPI to your classpath.  The current classpath supports the following names: [es090, completion090, XBloomFilter]]
-```
-
-If the uber-jar is built using Maven, this issue can be avoided by
-adding the following to the Maven POM file in the plugins section:
-
-~~~xml
-<plugin>
-    <groupId>org.apache.maven.plugins</groupId>
-    <artifactId>maven-shade-plugin</artifactId>
-    <version>2.4.3</version>
-    <executions>
-        <execution>
-            <phase>package</phase>
-            <goals>
-                <goal>shade</goal>
-            </goals>
-            <configuration>
-                <transformers>
-                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
-                </transformers>
-            </configuration>
-        </execution>
-    </executions>
-</plugin>
-~~~
+Alternatively, you can put the connector's jar file into Flink's `lib/` folder to make it available
+system-wide, i.e. for all job being run.
 
 {% top %}

http://git-wip-us.apache.org/repos/asf/flink/blob/0c53e798/flink-connectors/flink-connector-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch/pom.xml b/flink-connectors/flink-connector-elasticsearch/pom.xml
index 7785a77..b6b876a 100644
--- a/flink-connectors/flink-connector-elasticsearch/pom.xml
+++ b/flink-connectors/flink-connector-elasticsearch/pom.xml
@@ -93,6 +93,106 @@ under the License.
 					<rerunFailingTestsCount>3</rerunFailingTestsCount>
 				</configuration>
 			</plugin>
+			<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>
+								<!-- elasticsearch 1.x already shades this but forgets the service file -->
+								<relocation>
+									<pattern>com.fasterxml.jackson</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.elasticsearch.common.jackson</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>com.spatial4j</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.com.spatial4j</shadedPattern>
+								</relocation>
+
+								<!-- relocate everything from the flink-connector-elasticsearch base project -->
+								<relocation>
+									<pattern>org.apache.flink.streaming.connectors.elasticsearch.</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.apache.flink.streaming.connectors.elasticsearch.</shadedPattern>
+									<excludes>
+										<!-- keep this project's classes as they are -->
+										<exclude>org.apache.flink.streaming.connectors.elasticsearch.Elasticsearch1ApiCallBridge</exclude>
+										<exclude>org.apache.flink.streaming.connectors.elasticsearch.ElasticsearchSink</exclude>
+										<exclude>org.apache.flink.streaming.connectors.elasticsearch.IndexRequestBuilder</exclude>
+										<exclude>org.apache.flink.streaming.connectors.elasticsearch.IndexRequestBuilderWrapperFunction</exclude>
+									</excludes>
+								</relocation>
+								<relocation>
+									<pattern>org.apache</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.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.antlr</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.antlr</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.elasticsearch</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.elasticsearch</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.joda</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.joda</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.tartarus</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.tartarus</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.yaml</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.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/flink-connector-elasticsearch-base*/**</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>
 

http://git-wip-us.apache.org/repos/asf/flink/blob/0c53e798/flink-connectors/flink-connector-elasticsearch2/pom.xml
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch2/pom.xml b/flink-connectors/flink-connector-elasticsearch2/pom.xml
index 1f342bc..1d6ce04 100644
--- a/flink-connectors/flink-connector-elasticsearch2/pom.xml
+++ b/flink-connectors/flink-connector-elasticsearch2/pom.xml
@@ -91,4 +91,129 @@ under the License.
 
 	</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>
+
+								<!-- relocate everything from the flink-connector-elasticsearch base project -->
+								<relocation>
+									<pattern>org.apache.flink.streaming.connectors.elasticsearch</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.apache.flink.streaming.connectors.elasticsearch</shadedPattern>
+									<excludes>
+										<!-- keep this project's classes as they are -->
+										<exclude>org.apache.flink.streaming.connectors.elasticsearch2.**</exclude>
+									</excludes>
+								</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.elasticsearch</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.elasticsearch</shadedPattern>
+								</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/flink-connector-elasticsearch-base*/**</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>

http://git-wip-us.apache.org/repos/asf/flink/blob/0c53e798/flink-connectors/flink-connector-elasticsearch5/pom.xml
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch5/pom.xml b/flink-connectors/flink-connector-elasticsearch5/pom.xml
index 72a0d18..82d578b 100644
--- a/flink-connectors/flink-connector-elasticsearch5/pom.xml
+++ b/flink-connectors/flink-connector-elasticsearch5/pom.xml
@@ -156,6 +156,132 @@ under the License.
 					</classpathDependencyExcludes>
 				</configuration>
 			</plugin>
+			<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.elasticsearch5.shaded.com.carrotsearch</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>com.fasterxml</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.fasterxml</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>com.github</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.github</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>com.sun</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.sun</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>com.github</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.github</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>com.tdunning</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.tdunning</shadedPattern>
+								</relocation>
+
+								<relocation>
+									<pattern>io.netty</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.io.netty</shadedPattern>
+								</relocation>
+
+								<relocation>
+									<pattern>joptsimple</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.joptsimple</shadedPattern>
+								</relocation>
+
+								<!-- relocate everything from the flink-connector-elasticsearch base project -->
+								<relocation>
+									<pattern>org.apache.flink.streaming.connectors.elasticsearch</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.apache.flink.streaming.connectors.elasticsearch</shadedPattern>
+									<excludes>
+										<!-- keep this project's classes as they are -->
+										<exclude>org.apache.flink.streaming.connectors.elasticsearch5.**</exclude>
+									</excludes>
+								</relocation>
+								<relocation>
+									<pattern>org.apache</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.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.elasticsearch</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.elasticsearch</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.HdrHistogram</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.HdrHistogram</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.jboss</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.jboss</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.joda</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.joda</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.tartarus</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.tartarus</shadedPattern>
+								</relocation>
+								<relocation>
+									<pattern>org.yaml</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.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/flink-connector-elasticsearch-base*/**</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>
 

http://git-wip-us.apache.org/repos/asf/flink/blob/0c53e798/tools/travis_mvn_watchdog.sh
----------------------------------------------------------------------
diff --git a/tools/travis_mvn_watchdog.sh b/tools/travis_mvn_watchdog.sh
index 7c27392..4fb7be9 100755
--- a/tools/travis_mvn_watchdog.sh
+++ b/tools/travis_mvn_watchdog.sh
@@ -447,6 +447,32 @@ check_shaded_artifacts_s3_fs() {
 	return 0
 }
 
+# Check the elasticsearch connectors' fat jars for illegal or missing artifacts
+check_shaded_artifacts_connector_elasticsearch() {
+	VARIANT=$1
+	find flink-connectors/flink-connector-elasticsearch${VARIANT}/target/flink-connector-elasticsearch${VARIANT}*.jar ! -name "*-tests.jar" -exec jar tf {} \; > allClasses
+
+	UNSHADED_CLASSES=`cat allClasses | grep -v -e '^META-INF' -e '^assets' -e "^org/apache/flink/streaming/connectors/elasticsearch${VARIANT}/" | grep '\.class$'`
+	if [ "$?" == "0" ]; then
+		echo "=============================================================================="
+		echo "Detected unshaded dependencies in flink-connector-elasticsearch${VARIANT}'s fat jar:"
+		echo "${UNSHADED_CLASSES}"
+		echo "=============================================================================="
+		return 1
+	fi
+
+	UNSHADED_SERVICES=`cat allClasses | grep '^META-INF/services/' | grep -v -e '^META-INF/services/org\.apache\.flink\.core\.fs\.FileSystemFactory$' -e "^META-INF/services/org\.apache\.flink\.fs\.s3${VARIANT}\.shaded" -e '^META-INF/services/'`
+	if [ "$?" == "0" ]; then
+		echo "=============================================================================="
+		echo "Detected unshaded service files in flink-connector-elasticsearch${VARIANT}'s fat jar:"
+		echo "${UNSHADED_SERVICES}"
+		echo "=============================================================================="
+		return 1
+	fi
+
+	return 0
+}
+
 # =============================================================================
 # WATCHDOG
 # =============================================================================
@@ -526,6 +552,9 @@ case $TEST in
 			check_shaded_artifacts_s3_fs hadoop
 			EXIT_CODE=$(($EXIT_CODE+$?))
 			check_shaded_artifacts_s3_fs presto
+			check_shaded_artifacts_connector_elasticsearch ""
+			check_shaded_artifacts_connector_elasticsearch 2
+			check_shaded_artifacts_connector_elasticsearch 5
 			EXIT_CODE=$(($EXIT_CODE+$?))
 		else
 			echo "=============================================================================="


[2/2] flink git commit: [FLINK-8362] [elasticsearch] Further improvements for Elasticsearch connector shading

Posted by tz...@apache.org.
[FLINK-8362] [elasticsearch] Further improvements for Elasticsearch connector shading

- Do not shade Elasticsearch dependencies
- Do not shade Flink Elasticseach Connector classes
- Also shade log4j-api dependency in Elasticsearch 5 connector. This is
  required for the log4j-to-slf4j bridge adapter to work properly.
- Add NOTICE files for license statements for all ES connectors

This closes #5426.
This closes #5243.


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/33ebc85c
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/33ebc85c
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/33ebc85c

Branch: refs/heads/release-1.4
Commit: 33ebc85c281fcd4869fa743f88c2c71d339f9857
Parents: 0c53e79
Author: Tzu-Li (Gordon) Tai <tz...@apache.org>
Authored: Mon Feb 5 14:16:56 2018 +0100
Committer: Tzu-Li (Gordon) Tai <tz...@apache.org>
Committed: Thu Feb 8 17:21:23 2018 +0100

----------------------------------------------------------------------
 .../flink-connector-elasticsearch/pom.xml       |  17 --
 .../src/main/resources/META-INF/NOTICE          | 109 ++++++++++
 .../flink-connector-elasticsearch2/pom.xml      |  14 --
 .../src/main/resources/META-INF/NOTICE          | 133 ++++++++++++
 .../flink-connector-elasticsearch5/pom.xml      |  43 ++--
 .../src/main/resources/META-INF/NOTICE          | 201 +++++++++++++++++++
 .../META-INF/log4j-provider.properties          |  23 +++
 tools/travis_mvn_watchdog.sh                    |   2 +-
 8 files changed, 482 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/flink-connectors/flink-connector-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch/pom.xml b/flink-connectors/flink-connector-elasticsearch/pom.xml
index b6b876a..987dcca 100644
--- a/flink-connectors/flink-connector-elasticsearch/pom.xml
+++ b/flink-connectors/flink-connector-elasticsearch/pom.xml
@@ -121,18 +121,6 @@ under the License.
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.com.spatial4j</shadedPattern>
 								</relocation>
 
-								<!-- relocate everything from the flink-connector-elasticsearch base project -->
-								<relocation>
-									<pattern>org.apache.flink.streaming.connectors.elasticsearch.</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.apache.flink.streaming.connectors.elasticsearch.</shadedPattern>
-									<excludes>
-										<!-- keep this project's classes as they are -->
-										<exclude>org.apache.flink.streaming.connectors.elasticsearch.Elasticsearch1ApiCallBridge</exclude>
-										<exclude>org.apache.flink.streaming.connectors.elasticsearch.ElasticsearchSink</exclude>
-										<exclude>org.apache.flink.streaming.connectors.elasticsearch.IndexRequestBuilder</exclude>
-										<exclude>org.apache.flink.streaming.connectors.elasticsearch.IndexRequestBuilderWrapperFunction</exclude>
-									</excludes>
-								</relocation>
 								<relocation>
 									<pattern>org.apache</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.apache</shadedPattern>
@@ -148,10 +136,6 @@ under the License.
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.antlr</shadedPattern>
 								</relocation>
 								<relocation>
-									<pattern>org.elasticsearch</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.elasticsearch</shadedPattern>
-								</relocation>
-								<relocation>
 									<pattern>org.joda</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch.shaded.org.joda</shadedPattern>
 								</relocation>
@@ -179,7 +163,6 @@ under the License.
 										<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/flink-connector-elasticsearch-base*/**</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>

http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/flink-connectors/flink-connector-elasticsearch/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch/src/main/resources/META-INF/NOTICE b/flink-connectors/flink-connector-elasticsearch/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..f588e0e
--- /dev/null
+++ b/flink-connectors/flink-connector-elasticsearch/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,109 @@
+This project includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+-------------------------------------------------------------
+
+This project bundles the following dependencies under
+the Apache Software License 2.0
+
+  - org.apache.lucene : lucene-core version 4.10.4
+  - org.apache.lucene : lucene-analyzers-common version 4.10.4
+  - org.apache.lucene : lucene-grouping version 4.10.4
+  - org.apache.lucene : lucene-highlighter version 4.10.4
+  - org.apache.lucene : lucene-join version 4.10.4
+  - org.apache.lucene : lucene-memory version 4.10.4
+  - org.apache.lucene : lucene-misc version 4.10.4
+  - org.apache.lucene : lucene-queries version 4.10.4
+  - org.apache.lucene : lucene-queryparser version 4.10.4
+  - org.apache.lucene : lucene-sandbox version 4.10.4
+  - org.apache.lucene : lucene-spatial version 4.10.4
+  - org.apache.lucene : lucene-suggest version 4.10.4
+  - com.spatial4j : spatial4j version 0.4.1
+  - com.fasterxml.jackson.core : jackson-core version 2.5.3
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-smile version 2.5.3
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-yaml version 2.5.3
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-cbor version 2.5.3
+  - org.joda : joda-convert (copied classes)
+
+===================================
+       Notice for Yaml
+===================================
+
+This project bundles yaml (v. 1.12) under the Creative Commons License (CC-BY 2.0).
+
+Original project website: http://www.yaml.de
+
+Copyright (c) 2005-2013, Dirk Jesse
+
+YAML under Creative Commons License (CC-BY 2.0)
+===============================================
+
+The YAML framework is published under the Creative Commons Attribution 2.0 License (CC-BY 2.0), which permits
+both private and commercial use (http://creativecommons.org/licenses/by/2.0/).
+
+Condition: For the free use of the YAML framework, a backlink to the YAML homepage (http://www.yaml.de) in a
+suitable place (e.g.: footer of the website or in the imprint) is required.
+
+===================================
+       Notice for Tartarus
+===================================
+
+This project bundles tartarus under the MIT License.
+
+Original source repository: https://github.com/sergiooramas/tartarus
+
+Copyright (c) 2017 Sergio Oramas and Oriol Nieto
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+===================================
+       Notice for Antlr
+===================================
+
+This project bundles antlr-runtime (v. 3.5) under the BSD 2-Clause License
+
+Copyright (c) 2010 Terence Parr
+
+-----------------------------------------------------------------------------
+** Beginning of "BSD 2-Clause License" text. **
+
+ Copyright (c) 2010 Terence Parr
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/flink-connectors/flink-connector-elasticsearch2/pom.xml
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch2/pom.xml b/flink-connectors/flink-connector-elasticsearch2/pom.xml
index 1d6ce04..56e4d9e 100644
--- a/flink-connectors/flink-connector-elasticsearch2/pom.xml
+++ b/flink-connectors/flink-connector-elasticsearch2/pom.xml
@@ -140,15 +140,6 @@ under the License.
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.com.twitter</shadedPattern>
 								</relocation>
 
-								<!-- relocate everything from the flink-connector-elasticsearch base project -->
-								<relocation>
-									<pattern>org.apache.flink.streaming.connectors.elasticsearch</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.apache.flink.streaming.connectors.elasticsearch</shadedPattern>
-									<excludes>
-										<!-- keep this project's classes as they are -->
-										<exclude>org.apache.flink.streaming.connectors.elasticsearch2.**</exclude>
-									</excludes>
-								</relocation>
 								<relocation>
 									<pattern>org.apache</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.apache</shadedPattern>
@@ -160,10 +151,6 @@ under the License.
 								</relocation>
 
 								<relocation>
-									<pattern>org.elasticsearch</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.elasticsearch</shadedPattern>
-								</relocation>
-								<relocation>
 									<pattern>org.jboss</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch2.shaded.org.jboss</shadedPattern>
 								</relocation>
@@ -199,7 +186,6 @@ under the License.
 										<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/flink-connector-elasticsearch-base*/**</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>

http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/flink-connectors/flink-connector-elasticsearch2/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch2/src/main/resources/META-INF/NOTICE b/flink-connectors/flink-connector-elasticsearch2/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..c3d95ca
--- /dev/null
+++ b/flink-connectors/flink-connector-elasticsearch2/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,133 @@
+This project includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+-------------------------------------------------------------
+
+This project bundles the following dependencies under
+the Apache Software License 2.0
+
+  - org.apache.lucene : lucene-core version 5.5.0
+  - org.apache.lucene : lucene-analyzers-common version 5.5.0
+  - org.apache.lucene : lucene-backward-codecs version 5.5.0
+  - org.apache.lucene : lucene-grouping version 5.5.0
+  - org.apache.lucene : lucene-highlighter version 5.5.0
+  - org.apache.lucene : lucene-join version 5.5.0
+  - org.apache.lucene : lucene-memory version 5.5.0
+  - org.apache.lucene : lucene-misc version 5.5.0
+  - org.apache.lucene : lucene-queries version 5.5.0
+  - org.apache.lucene : lucene-queryparser version 5.5.0
+  - org.apache.lucene : lucene-sandbox version 5.5.0
+  - org.apache.lucene : lucene-spatial version 5.5.0
+  - org.apache.lucene : lucene-spatial-extras version 5.5.0
+  - org.apache.lucene : lucene-spatial3d version 5.5.0
+  - org.apache.lucene : lucene-suggest version 5.5.0
+  - com.carrotsearch : hppc version 0.7.1
+  - com.google.guava : guava version 18.0
+  - com.google.code.findbugs : jsr305 version 1.3.9
+  - com.ning : compress-lzf version 1.0.2
+  - com.spatial4j : spatial4j version 0.5
+  - com.twitter : chill-java version 0.7.4
+  - com.fasterxml.jackson.core : jackson-core version 2.6.6
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-smile version 2.6.6
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-yaml version 2.6.6
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-cbor version 2.6.6
+  - com.tdunning : t-digest version 3.0
+  - io.netty : netty version 3.10.5.Final
+  - joda-time : joda-time version 2.5
+
+===================================
+       Notice for Yaml
+===================================
+
+This project bundles yaml (v. 1.15) under the Creative Commons License (CC-BY 2.0).
+
+Original project website: http://www.yaml.de
+
+Copyright (c) 2005-2013, Dirk Jesse
+
+YAML under Creative Commons License (CC-BY 2.0)
+===============================================
+
+The YAML framework is published under the Creative Commons Attribution 2.0 License (CC-BY 2.0), which permits
+both private and commercial use (http://creativecommons.org/licenses/by/2.0/).
+
+Condition: For the free use of the YAML framework, a backlink to the YAML homepage (http://www.yaml.de) in a
+suitable place (e.g.: footer of the website or in the imprint) is required.
+
+===================================
+       Notice for Tartarus
+===================================
+
+This project bundles tartarus under the MIT License.
+
+Original source repository: https://github.com/sergiooramas/tartarus
+
+Copyright (c) 2017 Sergio Oramas and Oriol Nieto
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+===================================
+       Notice for HdrHistogram
+===================================
+
+This project bundles HdrHistogram (v. 2.1.9) under the BSD 2-Clause License
+
+Original source repository: https://github.com/HdrHistogram/HdrHistogram
+
+The code in this repository code was Written by Gil Tene, Michael Barker,
+and Matt Warren, and released to the public domain, as explained at
+http://creativecommons.org/publicdomain/zero/1.0/
+
+For users of this code who wish to consume it under the "BSD" license
+rather than under the public domain or CC0 contribution text mentioned
+above, the code found under this directory is *also* provided under the
+following license (commonly referred to as the BSD 2-Clause License). This
+license does not detract from the above stated release of the code into
+the public domain, and simply represents an additional license granted by
+the Author.
+
+-----------------------------------------------------------------------------
+** Beginning of "BSD 2-Clause License" text. **
+
+ Copyright (c) 2012, 2013, 2014, 2015, 2016 Gil Tene
+ Copyright (c) 2014 Michael Barker
+ Copyright (c) 2014 Matt Warren
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/flink-connectors/flink-connector-elasticsearch5/pom.xml
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch5/pom.xml b/flink-connectors/flink-connector-elasticsearch5/pom.xml
index 82d578b..01eb4d3 100644
--- a/flink-connectors/flink-connector-elasticsearch5/pom.xml
+++ b/flink-connectors/flink-connector-elasticsearch5/pom.xml
@@ -124,7 +124,6 @@ under the License.
 			<groupId>org.apache.logging.log4j</groupId>
 			<artifactId>log4j-api</artifactId>
 			<version>2.7</version>
-			<scope>test</scope>
 		</dependency>
 
 		<dependency>
@@ -191,33 +190,13 @@ under the License.
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.sun</shadedPattern>
 								</relocation>
 								<relocation>
-									<pattern>com.github</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.github</shadedPattern>
-								</relocation>
-								<relocation>
 									<pattern>com.tdunning</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.com.tdunning</shadedPattern>
 								</relocation>
-
 								<relocation>
 									<pattern>io.netty</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.io.netty</shadedPattern>
 								</relocation>
-
-								<relocation>
-									<pattern>joptsimple</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.joptsimple</shadedPattern>
-								</relocation>
-
-								<!-- relocate everything from the flink-connector-elasticsearch base project -->
-								<relocation>
-									<pattern>org.apache.flink.streaming.connectors.elasticsearch</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.apache.flink.streaming.connectors.elasticsearch</shadedPattern>
-									<excludes>
-										<!-- keep this project's classes as they are -->
-										<exclude>org.apache.flink.streaming.connectors.elasticsearch5.**</exclude>
-									</excludes>
-								</relocation>
 								<relocation>
 									<pattern>org.apache</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.apache</shadedPattern>
@@ -227,11 +206,6 @@ under the License.
 										<exclude>org.apache.log4j.**</exclude> <!-- provided -->
 									</excludes>
 								</relocation>
-
-								<relocation>
-									<pattern>org.elasticsearch</pattern>
-									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.elasticsearch</shadedPattern>
-								</relocation>
 								<relocation>
 									<pattern>org.HdrHistogram</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.HdrHistogram</shadedPattern>
@@ -252,7 +226,10 @@ under the License.
 									<pattern>org.yaml</pattern>
 									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.yaml</shadedPattern>
 								</relocation>
-
+								<relocation>
+									<pattern>joptsimple</pattern>
+									<shadedPattern>org.apache.flink.streaming.connectors.elasticsearch5.shaded.joptsimple</shadedPattern>
+								</relocation>
 							</relocations>
 							<filters>
 								<filter>
@@ -268,7 +245,6 @@ under the License.
 										<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/flink-connector-elasticsearch-base*/**</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>
@@ -277,6 +253,17 @@ under the License.
 										<exclude>META-INF/maven/org.y*/**</exclude>
 									</excludes>
 								</filter>
+								<!--
+								  Since we relocate the dependency, the paths specified in the providers file
+								  will be incorrect. We exclude it here, and re-package a new providers file
+								  with the correct re-located paths.
+								-->
+								<filter>
+									<artifact>org.apache.logging.log4j:log4j-to-slf4j</artifact>
+									<excludes>
+										<exclude>META-INF/log4j-provider.properties</exclude>
+									</excludes>
+								</filter>
 							</filters>
 						</configuration>
 					</execution>

http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/NOTICE b/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..19e96fa
--- /dev/null
+++ b/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,201 @@
+This project includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+-------------------------------------------------------------
+
+This project bundles the following dependencies under
+the Apache Software License 2.0
+
+  - org.apache.lucene : lucene-core version 6.3.0
+  - org.apache.lucene : lucene-analyzers-common version 6.3.0
+  - org.apache.lucene : lucene-backward-codecs version 6.3.0
+  - org.apache.lucene : lucene-grouping version 6.3.0
+  - org.apache.lucene : lucene-highlighter version 6.3.0
+  - org.apache.lucene : lucene-join version 6.3.0
+  - org.apache.lucene : lucene-memory version 6.3.0
+  - org.apache.lucene : lucene-misc version 6.3.0
+  - org.apache.lucene : lucene-queries version 6.3.0
+  - org.apache.lucene : lucene-queryparser version 6.3.0
+  - org.apache.lucene : lucene-sandbox version 6.3.0
+  - org.apache.lucene : lucene-spatial version 6.3.0
+  - org.apache.lucene : lucene-spatial-extras version 6.3.0
+  - org.apache.lucene : lucene-spatial3d version 6.3.0
+  - org.apache.lucene : lucene-suggest version 6.3.0
+  - org.apache.httpcomponents : httpclient version 4.5.3
+  - org.apache.httpcomponents : httpcore version 4.4.6
+  - org.apache.httpcomponents : httpasynclcient version 4.1.2
+  - org.apache.httpcomponents : httpcore-nio version 4.4.5
+  - com.carrotsearch : hppc version 0.7.1
+  - com.fasterxml.jackson.core : jackson-core version 2.8.1
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-smile version 2.8.1
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-yaml version 2.8.1
+  - com.fasterxml.jackson.dataformat : jackson-dataformat-cbor version 2.8.1
+  - com.tdunning : t-digest version 3.0
+  - io.netty : netty version 3.10.6.Final
+  - io.netty : netty-buffer version 4.1.6.Final
+  - io.netty : netty-codec version 4.1.6.Final
+  - io.netty : netty-codec-http version 4.1.6.Final
+  - io.netty : netty-common version 4.1.6.Final
+  - io.netty : netty-handler version 4.1.6.Final
+  - io.netty : netty-resolver version 4.1.6.Final
+  - io.netty : netty-transport version 4.1.6.Final
+  - org.jboss.netty : netty version 3.2.0.Final
+  - joda-time : joda-time version 2.5
+  - com.github.spullara.mustache.java : compiler version 0.9.3
+
+===================================
+       Notice for Yaml
+===================================
+
+This project bundles yaml (v. 1.15) under the Creative Commons License (CC-BY 2.0).
+
+Original project website: http://www.yaml.de
+
+Copyright (c) 2005-2013, Dirk Jesse
+
+YAML under Creative Commons License (CC-BY 2.0)
+===============================================
+
+The YAML framework is published under the Creative Commons Attribution 2.0 License (CC-BY 2.0), which permits
+both private and commercial use (http://creativecommons.org/licenses/by/2.0/).
+
+Condition: For the free use of the YAML framework, a backlink to the YAML homepage (http://www.yaml.de) in a
+suitable place (e.g.: footer of the website or in the imprint) is required.
+
+===================================
+       Notice for Tartarus
+===================================
+
+This project bundles tartarus under the MIT License.
+
+Original source repository: https://github.com/sergiooramas/tartarus
+
+Copyright (c) 2017 Sergio Oramas and Oriol Nieto
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+===================================
+       Notice for joptsimple
+===================================
+
+This project bundles joptsimple under the MIT License.
+
+Original source repository: https://github.com/jopt-simple/jopt-simple
+
+Copyright (c) 2004-2016 Paul R. Holser, Jr.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+===================================
+       Notice for scopt
+===================================
+
+This project bundles scopt (v. 3.5.0) underr the MIT License.
+
+Original source repository: https://github.com/scopt/scopt
+
+scopt - Copyright (c) scopt contributors
+
+See source files for details.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+``Software''), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+===================================
+       Notice for HdrHistogram
+===================================
+
+This project bundles HdrHistogram (v. 2.1.9) under the BSD 2-Clause License
+
+Original source repository: https://github.com/HdrHistogram/HdrHistogram
+
+The code in this repository code was Written by Gil Tene, Michael Barker,
+and Matt Warren, and released to the public domain, as explained at
+http://creativecommons.org/publicdomain/zero/1.0/
+
+For users of this code who wish to consume it under the "BSD" license
+rather than under the public domain or CC0 contribution text mentioned
+above, the code found under this directory is *also* provided under the
+following license (commonly referred to as the BSD 2-Clause License). This
+license does not detract from the above stated release of the code into
+the public domain, and simply represents an additional license granted by
+the Author.
+
+-----------------------------------------------------------------------------
+** Beginning of "BSD 2-Clause License" text. **
+
+ Copyright (c) 2012, 2013, 2014, 2015, 2016 Gil Tene
+ Copyright (c) 2014 Michael Barker
+ Copyright (c) 2014 Matt Warren
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/log4j-provider.properties
----------------------------------------------------------------------
diff --git a/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/log4j-provider.properties b/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/log4j-provider.properties
new file mode 100644
index 0000000..c67f5e4
--- /dev/null
+++ b/flink-connectors/flink-connector-elasticsearch5/src/main/resources/META-INF/log4j-provider.properties
@@ -0,0 +1,23 @@
+# 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.
+
+# Since we relocate the log4j2-to-slf4j dependency,
+# we also re-package this provider file with the correct relocated paths
+# (the original provider file with the incorrect paths is excluded)
+
+LoggerContextFactory = org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.apache.logging.slf4j.SLF4JLoggerContextFactory
+Log4jAPIVersion = 2.0.0
+FactoryPriority= 15
+ThreadContextMap = org.apache.flink.streaming.connectors.elasticsearch5.shaded.org.apache.logging.slf4j.MDCContextMap

http://git-wip-us.apache.org/repos/asf/flink/blob/33ebc85c/tools/travis_mvn_watchdog.sh
----------------------------------------------------------------------
diff --git a/tools/travis_mvn_watchdog.sh b/tools/travis_mvn_watchdog.sh
index 4fb7be9..3b99ec3 100755
--- a/tools/travis_mvn_watchdog.sh
+++ b/tools/travis_mvn_watchdog.sh
@@ -452,7 +452,7 @@ check_shaded_artifacts_connector_elasticsearch() {
 	VARIANT=$1
 	find flink-connectors/flink-connector-elasticsearch${VARIANT}/target/flink-connector-elasticsearch${VARIANT}*.jar ! -name "*-tests.jar" -exec jar tf {} \; > allClasses
 
-	UNSHADED_CLASSES=`cat allClasses | grep -v -e '^META-INF' -e '^assets' -e "^org/apache/flink/streaming/connectors/elasticsearch${VARIANT}/" | grep '\.class$'`
+	UNSHADED_CLASSES=`cat allClasses | grep -v -e '^META-INF' -e '^assets' -e "^org/apache/flink/streaming/connectors/elasticsearch/" -e "^org/apache/flink/streaming/connectors/elasticsearch${VARIANT}/" -e "^org/elasticsearch/" | grep '\.class$'`
 	if [ "$?" == "0" ]; then
 		echo "=============================================================================="
 		echo "Detected unshaded dependencies in flink-connector-elasticsearch${VARIANT}'s fat jar:"