GitHub user zentol opened a pull request:
https://github.com/apache/flink/pull/4972
[FLINK-8009][build][runtime] Remove transitive dependency promotion
## What is the purpose of the change
This PR replaces the dependency promotion from flink-runtime. The promotion
appears to be interacting oddly with `optional` dependencies, and is generally
prone to inducing unforeseen side-effects.
To accomplish the original goal behind the promotion I've added
dependencies for akka-streams and akka-protobuf, which are the transitive
dependencies that we want to keep being visible after the shading.
For reference, this is a comparison of the dependency footprint of
flink-runtime as seen from another module (flink-dist), with and without
dependency promotion:
```
Promotion enabled:
+- org.apache.flink:flink-runtime_2.11:jar:1.4-SNAPSHOT:compile
| +- com.esotericsoftware.minlog:minlog:jar:1.2:compile
| +- org.objenesis:objenesis:jar:2.1:compile
| +-
org.apache.flink:flink-queryable-state-client-java_2.11:jar:1.4-SNAPSHOT:compile
| +- org.tukaani:xz:jar:1.0:compile
| +- org.apache.avro:avro:jar:1.8.2:compile
| +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
| +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
| +- com.thoughtworks.paranamer:paranamer:jar:2.7:compile
| +- commons-codec:commons-codec:jar:1.10:compile
| +- commons-logging:commons-logging:jar:1.1.3:compile
| +- commons-lang:commons-lang:jar:2.6:compile
| +- commons-configuration:commons-configuration:jar:1.7:compile
| +- commons-digester:commons-digester:jar:1.8.1:compile
| +- commons-beanutils:commons-beanutils-bean-collections:jar:1.8.3:compile
| +- commons-io:commons-io:jar:2.4:compile
| +- org.apache.flink:flink-shaded-netty:jar:4.0.27.Final-1.0:compile
| +- org.apache.flink:flink-shaded-guava:jar:18.0-1.0:compile
| +- org.apache.flink:flink-shaded-jackson:jar:2.7.9-2.0:compile
| +- commons-cli:commons-cli:jar:1.3.1:compile
| +- org.javassist:javassist:jar:3.18.2-GA:compile
| +- com.typesafe.akka:akka-actor_2.11:jar:2.4.20:compile
| +- com.typesafe:config:jar:1.3.0:compile
| +- org.scala-lang.modules:scala-java8-compat_2.11:jar:0.7.0:compile
| +- com.typesafe.akka:akka-stream_2.11:jar:2.4.20:compile
| +- org.reactivestreams:reactive-streams:jar:1.0.0:compile
| +- com.typesafe:ssl-config-core_2.11:jar:0.2.1:compile
| +- org.scala-lang.modules:scala-parser-combinators_2.11:jar:1.0.4:compile
| +- com.typesafe.akka:akka-protobuf_2.11:jar:2.4.20:compile
| +- com.typesafe.akka:akka-slf4j_2.11:jar:2.4.20:compile
| +- org.clapper:grizzled-slf4j_2.11:jar:1.0.2:compile
| +- com.github.scopt:scopt_2.11:jar:3.5.0:compile
| +- com.twitter:chill_2.11:jar:0.7.4:compile
| \- com.twitter:chill-java:jar:0.7.4:compile
```
```
Promotion disabled (does NOT include additional akka dependencies):
+- org.apache.flink:flink-runtime_2.11:jar:1.4-SNAPSHOT:compile
| +-
org.apache.flink:flink-queryable-state-client-java_2.11:jar:1.4-SNAPSHOT:compile
| +- commons-io:commons-io:jar:2.4:compile
| +- org.apache.flink:flink-shaded-netty:jar:4.0.27.Final-1.0:compile
| +- org.apache.flink:flink-shaded-guava:jar:18.0-1.0:compile
| +- org.apache.flink:flink-shaded-jackson:jar:2.7.9-2.0:compile
| +- commons-cli:commons-cli:jar:1.3.1:compile
| +- org.javassist:javassist:jar:3.18.2-GA:compile
| +- com.typesafe.akka:akka-actor_2.11:jar:2.4.20:compile
| | +- com.typesafe:config:jar:1.3.0:compile
| | \- org.scala-lang.modules:scala-java8-compat_2.11:jar:0.7.0:compile
| +- com.typesafe.akka:akka-slf4j_2.11:jar:2.4.20:compile
| +- org.clapper:grizzled-slf4j_2.11:jar:1.0.2:compile
| +- com.github.scopt:scopt_2.11:jar:3.5.0:compile
| \- com.twitter:chill_2.11:jar:0.7.4:compile
| \- com.twitter:chill-java:jar:0.7.4:compile
```
## Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
## Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): (yes)
## Documentation
- Does this pull request introduce a new feature? (no)
- If yes, how is the feature documented? (not applicable)
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/zentol/flink 8009b
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/flink/pull/4972.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #4972
commit 8fad5f3ccb3b8cf7029a5aa035eb0f52d7878e1d
Author: zentol
Date: 2017-11-07T15:58:53Z
[FLINK-8009][bui