Class AvroMessageCodec<T>

  • All Implemented Interfaces:
    Codec<T>

    public class AvroMessageCodec<T>
    extends Object
    implements Codec<T>
    Avro Single object encoding: magic 2 bytes + schema fingerprint 8 bytes + avro binary. See https://avro.apache.org/docs/current/spec.html#single_object_encoding When using a SchemaStore the writer and reader schemas can evolve.
    Since:
    10.2
    • Field Detail

      • messageClass

        protected final Class<T> messageClass
      • schema

        protected final org.apache.avro.Schema schema
      • encoder

        protected final org.apache.avro.message.BinaryMessageEncoder<T> encoder
      • decoder

        protected final org.apache.avro.message.BinaryMessageDecoder<T> decoder
    • Constructor Detail

      • AvroMessageCodec

        public AvroMessageCodec​(Class<T> messageClass)
    • Method Detail

      • getName

        public String getName()
        Description copied from interface: Codec
        Returns the codec name
        Specified by:
        getName in interface Codec<T>
      • encode

        public byte[] encode​(T object)
        Description copied from interface: Codec
        Encodes the object returns a byte array representation.
        Specified by:
        encode in interface Codec<T>
      • decode

        public T decode​(byte[] data)
        Description copied from interface: Codec
        Decodes the byte array returns an object.
        Specified by:
        decode in interface Codec<T>