flink
flink copied to clipboard
[FLINK-38382][kafka] Support avro primitive types in Confluent Schema Registry binding
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
forPrimitiveTypestatic factory method toConfluentRegistryAvroSerializationSchema - Method accepts primitive Avro schemas and uses
Object.classas the record class - Follows same pattern as existing
forSpecificandforGenericmethods - Added comprehensive test coverage for all primitive types
Verifying this change
This change added tests and can be verified as follows:
- Added
ConfluentRegistryAvroSerializationSchemaTestwith 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
forSpecificandforGenericmethods - 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
CI report:
- 5ec1d9f46ff0e4201058500673988b51951f8418 Azure: SUCCESS
Bot commands
The @flinkbot bot supports the following commands:@flinkbot run azurere-run the last Azure build
:heart: