
com.mitchseymour.kafka.serialization.avro.AvroDeserializer Maven / Gradle / Ivy
package com.mitchseymour.kafka.serialization.avro;
import java.util.Map;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.Decoder;
import org.apache.avro.io.DecoderFactory;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.avro.specific.SpecificRecordBase;
import org.apache.kafka.common.serialization.Deserializer;
public class AvroDeserializer implements Deserializer {
private Class destinationClass;
/** Default constructor needed by Kafka */
public AvroDeserializer(Class destinationClass) {
this.destinationClass = destinationClass;
}
@Override
public void configure(Map props, boolean isKey) {}
@Override
public T deserialize(String topic, byte[] bytes) {
try {
DatumReader reader = new SpecificDatumReader<>(destinationClass.newInstance().getSchema());
Decoder binaryDecoder = DecoderFactory.get().binaryDecoder(bytes, null);
return reader.read(null, binaryDecoder);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void close() {}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy