Skip to content

Conversation

@fhueske
Copy link
Contributor

@fhueske fhueske commented Nov 4, 2015

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).

@fhueske fhueske changed the title [FLINK-2940] [JavaAPI] Remove Chill dependency from flink-java. [FLINK-2972] [JavaAPI] Remove Chill dependency from flink-java. Nov 4, 2015
@fhueske
Copy link
Contributor Author

fhueske commented Nov 4, 2015

Sorry, I linked the PR to the wrong JIRA issue.
Will close this PR and open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants