[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16238018#comment-16238018 ] ASF GitHub Bot commented on FLINK-7420: --- Github user asfgit closed the pull request at: https://github.com/apache/flink/pull/4942 > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16238017#comment-16238017 ] ASF GitHub Bot commented on FLINK-7420: --- Github user asfgit closed the pull request at: https://github.com/apache/flink/pull/4931 > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237672#comment-16237672 ] ASF GitHub Bot commented on FLINK-7420: --- Github user tillrohrmann commented on the issue: https://github.com/apache/flink/pull/4942 Great fix for our Avro dependency @StephanEwen, @aljoscha and @twalthr. +1 for merging. > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237632#comment-16237632 ] ASF GitHub Bot commented on FLINK-7420: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4942#discussion_r148789659 --- Diff: flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoRegistrationSerializerConfigSnapshot.java --- @@ -217,7 +217,7 @@ public void read(DataInputView in) throws IOException { /** * Placeholder dummy for a previously registered class that can no longer be found in classpath on restore. */ - public static class DummyRegisteredClass {} + public static class DummyRegisteredClass implements Serializable {} --- End diff -- `serialVersionUID` is missing. > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237579#comment-16237579 ] ASF GitHub Bot commented on FLINK-7420: --- Github user aljoscha commented on the issue: https://github.com/apache/flink/pull/4942 Personally, I like this Jenkins fellow more... > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237564#comment-16237564 ] ASF GitHub Bot commented on FLINK-7420: --- Github user StephanEwen commented on the issue: https://github.com/apache/flink/pull/4942 Lets see if Travis agrees. That guy has opinions... > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237557#comment-16237557 ] ASF GitHub Bot commented on FLINK-7420: --- Github user aljoscha commented on the issue: https://github.com/apache/flink/pull/4942 The follow-up changes look good! (it's very easy to review since it's clearly separated. ) If you reviewed Timo's and my changes I would say this is good to go. > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237440#comment-16237440 ] ASF GitHub Bot commented on FLINK-7420: --- Github user StephanEwen commented on the issue: https://github.com/apache/flink/pull/4931 I posted a followup to this pull request in #4942 > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16237437#comment-16237437 ] ASF GitHub Bot commented on FLINK-7420: --- GitHub user StephanEwen opened a pull request: https://github.com/apache/flink/pull/4942 [FLINK-7420] [avro] Move all Avro code to flink-avro (followup) ## What is the purpose of the change This is an extension of #4931 which adds some cleanups and improvements. Most notably, it makes the new `flink-avro` module independent of runtime dependencies and Scala versions. ## Brief change log - Move the `SerializationSchema` classes to `flink-core` to make them accessible from API projects without introducing runtime dependencies. This is done in a non-API-breaking way. - Make `flink-avro` module independent of `flink-streaming-java`, `flink-runtime` and hence independent of Scala versions. - Add various cleanups and fixes - Adds a test that validates that a KryoSerializer from Flink 1.3 (which has implicit Avro dependency classes) is still deserializable with the state serializer utils (that implement the serializer and state evolution). ## Verifying this change - Most of the changes are covered by existing tests - Adds a test that validates that a KryoSerializer from Flink 1.3 (which has implicit Avro dependency classes) is still deserializable with the state serializer utils (that implement the serializer and state evolution). ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (**yes** / no): **This changes the `flink-avro` module to be Scala independent. - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (**yes** / no): **Moves the SerializationSchema classes, but leaves old classes in place (extending new classes) to preserve the API compatibility**. - The serializers: (yes / **no** / don't know) - The runtime per-record code paths (performance sensitive): (yes / **no** / don't know) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / **no** / don't know) - ## Documentation - Does this pull request introduce a new feature? (yes / **no**) - If yes, how is the feature documented? (**not applicable** / docs / JavaDocs / not documented) You can merge this pull request into a Git repository by running: $ git pull https://github.com/StephanEwen/incubator-flink avro Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/4942.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 #4942 commit dd5ca19a7058ebe0ed90237ecb9ea6d9a342a9ec Author: Stephan EwenDate: 2017-11-02T17:07:25Z [FLINK-7972] [core] Move SerializationSchema to 'flink-core' Moves the SerializationSchema and its related from flink-streaming-java to flink-core. That helps API level projects that depend on those classes to not pull in a dependency on runtime classes, and to not be Scala version dependent. commit 85db5d0f6b4ee72808aeaaf2efd38613cf80c89f Author: Stephan Ewen Date: 2017-11-03T10:28:18Z [hotfix] [tests] Remove console poluting output in tests of flink-streaming-java commit d0de088da5e97890300b26517ab158a66a467ea5 Author: twalthr Date: 2017-08-16T10:17:00Z [FLINK-7420] [avro] Move all Avro code to flink-avro commit fa1924b47dbe545a9903d0031124905cb15057cc Author: Aljoscha Krettek Date: 2017-10-25T15:38:24Z [FLINK-7420] [avro] Replace GenericData.Array by dummy when reading TypeSerializers This also adds a new test that verifies that we correctly register Avro Serializers when they are present and modifies an existing test to verify that we correctly register dummy classes. commit 276e8e6ae6deb68b46fc0e4a8bf1821ce6d71b87 Author: Aljoscha Krettek Date: 2017-10-30T14:02:18Z [FLINK-7420] [avro] Abstract all Avro interaction behind AvroUtils Before, we would try and dynamicall load Avro-related classes in several places. Now, we only reflectively instantiate the right AvroUtils and all other operations are methods on this. The default AvroUtils throw exceptions with a helpful message for most operations. commit ca4554b399b8b3a72b5381e0e29ed7e10cb95f83 Author: zentol Date: 2017-11-01T11:43:00Z [FLINK-7847] [avro] Fix typo in jackson shading pattern This closes #4931 commit
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16234675#comment-16234675 ] ASF GitHub Bot commented on FLINK-7420: --- Github user StephanEwen commented on the issue: https://github.com/apache/flink/pull/4931 Changes look good all in all. Missing one last pass for "Replace GenericData.Array by dummy when reading TypeSerializers"... > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16233998#comment-16233998 ] ASF GitHub Bot commented on FLINK-7420: --- Github user StephanEwen commented on the issue: https://github.com/apache/flink/pull/4931 Doing a review now... > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16233758#comment-16233758 ] ASF GitHub Bot commented on FLINK-7420: --- GitHub user aljoscha opened a pull request: https://github.com/apache/flink/pull/4931 [FLINK-7420] Move all Avro code to flink-avro This hides interaction with Avro begin the interface `AvroUtils` that has two implementations: 1) default Avro utils, which are used when no Avro is present and which throws exceptions in case Avro is required. 2) proper Avro utils which are dynamically loaded when the `flink-avro` module is "in the classpath" which does proper Avro things. R: @StephanEwen You can merge this pull request into a Git repository by running: $ git pull https://github.com/aljoscha/flink FLINK-7420 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/4931.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 #4931 commit b74f84ee3d5795e30c92a2e7393fc25309c450e3 Author: twalthrDate: 2017-08-16T10:17:00Z [FLINK-7420] [core] Move all Avro code to flink-avro commit 3215a4b939f536b4a1130cad9e5106867c071789 Author: Aljoscha Krettek Date: 2017-10-25T15:38:24Z [FLINK-7420] Replace GenericData.Array by dummy when reading TypeSerializers This also adds a new test that verifies that we correctly register Avro Serializers when they are present and modifies an existing test to verify that we correctly register dummy classes. commit 94f19afcb65b7ef0d200bb3c4d0d82b8422ba905 Author: Aljoscha Krettek Date: 2017-10-26T12:56:09Z [FLINK-7420] Add Avro test-jar depdendency in Kafka modules commit 1d73f296667d909ce0506ceeb722112fed978af3 Author: Aljoscha Krettek Date: 2017-10-30T09:19:56Z [FLINK-7420] Fix TwitterExample.scala It seems this has a transitive dependency on Jackson, which slightly changed with the Avro reworking. commit a7289e06641b3303611bf5a1a8a2bf4ef56ac994 Author: Aljoscha Krettek Date: 2017-10-30T14:02:18Z [FLINK-7420] Abstract all Avro interaction behind AvroUtils Before, we would try and dynamicall load Avro-related classes in several places. Now, we only reflectively instantiate the right AvroUtils and all other operations are methods on this. The default AvroUtils throw exceptions with a helpful message for most operations. > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Aljoscha Krettek >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16209108#comment-16209108 ] Timo Walther commented on FLINK-7420: - In theory, I have this ready in branch. I can open a PR for it. However, I think we should create a proper {{AvroTypeInfo}} that does not depend on Kryo first, if we want to have a nice solution. But we can discuss this in the PR again. > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Timo Walther >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16209006#comment-16209006 ] Till Rohrmann commented on FLINK-7420: -- What's the state of the issue [~twalthr]? > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen >Assignee: Timo Walther >Priority: Blocker > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7420) Move all Avro code to flink-avro
[ https://issues.apache.org/jira/browse/FLINK-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16122100#comment-16122100 ] Timo Walther commented on FLINK-7420: - This is a duplicate of FLINK-6168. > Move all Avro code to flink-avro > > > Key: FLINK-7420 > URL: https://issues.apache.org/jira/browse/FLINK-7420 > Project: Flink > Issue Type: Improvement > Components: Build System >Reporter: Stephan Ewen > Fix For: 1.4.0 > > > *Problem* > Currently, the {{flink-avro}} project is a shell with some tests and mostly > duplicate and dead code. The classes that use Avro are distributed quite > wildly through the code base, and introduce multiple direct dependencies on > Avro in a messy way. > That way, we cannot create a proper fat Avro dependency in which we shade > Jackson away. > Also, we expose Avro as a direct and hard dependency on many Flink modules, > while it should be a dependency that users that use Avro types selectively > add. > *Suggested Changes* > We should move all Avro related classes to {{flink-avro}}, and give > {{flink-avro}} a dependency on {{flink-core}} and {{flink-streaming-java}}. > - {{AvroTypeInfo}} > - {{AvroSerializer}} > - {{AvroRowSerializationSchema}} > - {{AvroRowDeserializationSchema}} > To be able to move the the avro serialization code from {{flink-ore}} to > {{flink-avro}}, we need to load the {{AvroTypeInformation}} reflectively, > similar to how we load the {{WritableTypeInfo}} for Hadoop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)