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: twalthr
Date: 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.
---