flink icon indicating copy to clipboard operation
flink copied to clipboard

[FLINK-38382][kafka] Support avro primitive types in Confluent Schema Registry binding

Open parisni opened this issue 3 months ago • 2 comments

What is the purpose of the change

This pull request adds support for primitive types in ConfluentRegistryAvroSerializationSchema by introducing a new forPrimitiveType factory method. This enables serialization of primitive Avro types (string, int, long, boolean, float, double) with Confluent Schema Registry, which was previously only possible for SpecificRecord and GenericRecord types.

Brief change log

  • Added forPrimitiveType static factory method to ConfluentRegistryAvroSerializationSchema
  • Method accepts primitive Avro schemas and uses Object.class as the record class
  • Follows same pattern as existing forSpecific and forGeneric methods
  • Added comprehensive test coverage for all primitive types

Verifying this change

This change added tests and can be verified as follows:

  • Added ConfluentRegistryAvroSerializationSchemaTest with 9 comprehensive unit tests
  • Tests validate factory method creation for all Avro primitive types (string, int, long, boolean, float, double)
  • Tests verify configuration handling with both null and custom registry configs
  • Tests ensure API consistency with existing forSpecific and forGeneric methods
  • All tests follow existing Flink test patterns and conventions
  • Tests use mock schema registry approach to avoid network dependencies

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): no
  • The public API, i.e., is any changed class annotated with @Public(Evolving): yes
  • The serializers: yes
  • The runtime per-record code paths (performance sensitive): no
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
  • The S3 file system connector: no

Documentation

  • Does this pull request introduce a new feature? yes
  • If yes, how is the feature documented? JavaDocs

parisni avatar Sep 18 '25 08:09 parisni

CI report:

  • 5ec1d9f46ff0e4201058500673988b51951f8418 Azure: SUCCESS
Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

flinkbot avatar Sep 18 '25 08:09 flinkbot

:heart:

raphaelauv avatar Oct 01 '25 11:10 raphaelauv