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 <ches...@apache.org>
Date:   2017-11-07T15:58:53Z

    [FLINK-8009][build][runtime] Remove transitive dependency promotion

----


---

Reply via email to