Class AbstractKafkaAvroDeserializer

java.lang.Object
io.confluent.kafka.serializers.AbstractKafkaSchemaSerDe
io.confluent.kafka.serializers.AbstractKafkaAvroDeserializer
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
KafkaAvroDecoder, KafkaAvroDeserializer

public abstract class AbstractKafkaAvroDeserializer extends AbstractKafkaSchemaSerDe
  • Field Details

    • useSpecificAvroReader

      protected boolean useSpecificAvroReader
    • specificAvroReaderSchema

      protected org.apache.avro.Schema specificAvroReaderSchema
    • avroReflectionAllowNull

      protected boolean avroReflectionAllowNull
    • avroUseLogicalTypeConverters

      protected boolean avroUseLogicalTypeConverters
  • Constructor Details

    • AbstractKafkaAvroDeserializer

      public AbstractKafkaAvroDeserializer()
  • Method Details

    • configure

      protected void configure(KafkaAvroDeserializerConfig config)
    • configure

      protected void configure(KafkaAvroDeserializerConfig config, Class<?> type)
      Sets properties for this deserializer without overriding the schema registry client itself. Useful for testing, where a mock client is injected.
    • deserializerConfig

      protected KafkaAvroDeserializerConfig deserializerConfig(Map<String,?> props)
    • deserializerConfig

      protected KafkaAvroDeserializerConfig deserializerConfig(Properties props)
    • deserialize

      protected Object deserialize(byte[] payload) throws org.apache.kafka.common.errors.SerializationException
      Deserializes the payload without including schema information for primitive types, maps, and arrays. Just the resulting deserialized object is returned.

      This behavior is the norm for Decoders/Deserializers.

      Parameters:
      payload - serialized data
      Returns:
      the deserialized object
      Throws:
      org.apache.kafka.common.errors.SerializationException
    • deserialize

      protected Object deserialize(org.apache.kafka.common.header.Headers headers, byte[] payload) throws org.apache.kafka.common.errors.SerializationException
      Throws:
      org.apache.kafka.common.errors.SerializationException
    • deserialize

      protected Object deserialize(byte[] payload, org.apache.avro.Schema readerSchema) throws org.apache.kafka.common.errors.SerializationException
      Just like single-parameter version but accepts an Avro schema to use for reading
      Parameters:
      payload - serialized data
      readerSchema - schema to use for Avro read (optional, enables Avro projection)
      Returns:
      the deserialized object
      Throws:
      org.apache.kafka.common.errors.SerializationException
    • deserialize

      protected Object deserialize(org.apache.kafka.common.header.Headers headers, byte[] payload, org.apache.avro.Schema readerSchema) throws org.apache.kafka.common.errors.SerializationException
      Throws:
      org.apache.kafka.common.errors.SerializationException
    • deserialize

      protected Object deserialize(String topic, Boolean isKey, byte[] payload, org.apache.avro.Schema readerSchema) throws org.apache.kafka.common.errors.SerializationException
      Throws:
      org.apache.kafka.common.errors.SerializationException
    • deserialize

      protected Object deserialize(String topic, Boolean isKey, org.apache.kafka.common.header.Headers headers, byte[] payload, org.apache.avro.Schema readerSchema) throws org.apache.kafka.common.errors.SerializationException
      Throws:
      org.apache.kafka.common.errors.SerializationException
    • deserializeWithSchemaAndVersion

      protected GenericContainerWithVersion deserializeWithSchemaAndVersion(String topic, boolean isKey, byte[] payload) throws org.apache.kafka.common.errors.SerializationException, org.apache.kafka.common.errors.InvalidConfigurationException
      Deserializes the payload and includes schema information, with version information from the schema registry embedded in the schema.
      Parameters:
      payload - the serialized data
      Returns:
      a GenericContainer with the schema and data, either as a NonRecordContainer, GenericRecord, or SpecificRecord
      Throws:
      org.apache.kafka.common.errors.SerializationException
      org.apache.kafka.common.errors.InvalidConfigurationException
    • deserializeWithSchemaAndVersion

      protected GenericContainerWithVersion deserializeWithSchemaAndVersion(String topic, boolean isKey, org.apache.kafka.common.header.Headers headers, byte[] payload) throws org.apache.kafka.common.errors.SerializationException, org.apache.kafka.common.errors.InvalidConfigurationException
      Throws:
      org.apache.kafka.common.errors.SerializationException
      org.apache.kafka.common.errors.InvalidConfigurationException
    • getDatumReader

      protected org.apache.avro.io.DatumReader<?> getDatumReader(org.apache.avro.Schema writerSchema, org.apache.avro.Schema readerSchema) throws ExecutionException
      Throws:
      ExecutionException