New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reflection serde #1281
Reflection serde #1281
Conversation
Default constructor allows the SerDe to be used as default serde in KStreams config.
…during construction
It looks like @piotrsmolinski hasn't signed our Contributor License Agreement, yet.
You can read and sign our full Contributor License Agreement here. Once you've signed reply with Appreciation of efforts, clabot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR @piotrsmolinski ! Left a few comments
avro-serializer/src/main/java/io/confluent/kafka/serializers/AbstractKafkaAvroDeserializer.java
Outdated
Show resolved
Hide resolved
avro-serializer/src/main/java/io/confluent/kafka/serializers/AbstractKafkaAvroDeserializer.java
Outdated
Show resolved
Hide resolved
avro-serde/src/main/java/io/confluent/kafka/streams/serdes/avro/ReflectionAvroDeserializer.java
Show resolved
Hide resolved
avro-serde/src/main/java/io/confluent/kafka/streams/serdes/avro/ReflectionAvroDeserializer.java
Show resolved
Hide resolved
[clabot:check] |
@confluentinc It looks like @piotrsmolinski just signed our Contributor License Agreement. 👍 Always at your service, clabot |
@piotrsmolinski , the test |
The failure in testVersionMaintained was caused by caching the schema for given name. In case of GenericDatumReader the schema is as it comes from the serialized record. This means if the schema evolves, there could be multiple representations of the same avro record.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for the PR @piotrsmolinski !
The patch adds dynamic resolution of the Avro schema when Reflection API is used.
It solves one of the limitations of the initial implementation of the feature. The change allows to use the Reflection API deserialization in the following scenarios: