[ 
https://issues.apache.org/jira/browse/FLINK-2972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14990422#comment-14990422
 ] 

ASF GitHub Bot commented on FLINK-2972:
---------------------------------------

GitHub user fhueske opened a pull request:

    https://github.com/apache/flink/pull/1331

    [FLINK-2972] [JavaAPI] Remove Chill dependency from flink-java.

    This PR replaces `flink-java`'s `chill` dependency by `chill-java` to 
decouple `flink-java` from Scala.
    Chill is used within the `KryoSerializer` to obtain a "Scala-preconfigured" 
Kryo instance. Hence, Chill is still required for Scala DataSet or DataStream 
programs. Separate KryoSerializers for Scala and Java are hard to provide, 
because `GenericTypeInformation` can be generated through the `TypeExtractor`, 
`TypeParser`, and the Scala compiler marko. 
    
    In this PR, the `KryoSerializer` tries to dynamically load Chill's 
`ScalaKryoInstantiator` and generate a Kryo instance through reflection to 
circumvent the Chill dependency. As a fallback, a regular Kryo instance is 
created. Consequently, Chill's Kryo instance is used whenever Chill is present 
in the classpath. To ensure that client, JM, and TM have Chill in their 
classpath, we add Chill as a dependency to `flink-client`.
    
    **Note**: Before merging, we need to check if this works for Java and Scala 
programs which are submitted to a cluster (including some collection data 
sources which are serialized at the client).

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/fhueske/flink scalaFlinkJava

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/1331.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 #1331
    
----
commit 42c44bccdbda2e6794cd1d5b8bf851860c9643ee
Author: Fabian Hueske <[email protected]>
Date:   2015-11-03T15:57:49Z

    [FLINK-2972] [JavaAPI] Remove Chill dependency from flink-java.

----


> Remove Twitter Chill dependency from flink-java module
> ------------------------------------------------------
>
>                 Key: FLINK-2972
>                 URL: https://issues.apache.org/jira/browse/FLINK-2972
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Java API
>    Affects Versions: 1.0
>            Reporter: Fabian Hueske
>            Assignee: Fabian Hueske
>             Fix For: 1.0
>
>
> The {{flink-java}} module has a transitive dependency on Scala due to 
> Twitter's Chill library. Chill is used within Flink's KryoSerializer to 
> obtain a Kryo instance that has be initialized for Scala classes. 
> In order to decouple {{flink-java}} from Scala, its dependency on Chill needs 
> to be removed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to