Package io.debezium.converters
Class BinaryDataConverter
java.lang.Object
io.debezium.converters.BinaryDataConverter
- All Implemented Interfaces:
Closeable,AutoCloseable,org.apache.kafka.common.Configurable,org.apache.kafka.connect.storage.Converter,org.apache.kafka.connect.storage.HeaderConverter
public class BinaryDataConverter
extends Object
implements org.apache.kafka.connect.storage.Converter, org.apache.kafka.connect.storage.HeaderConverter
A custom value converter that allows Avro messages to be delivered as raw binary data to kafka.
Designed to be used in the outbox pattern where payloads are pre-serialized by KafkaAvroSerializer
within the application, then get written as either a ByteBuffer or Byte[] to the database.
These raw payloads become the body of the resulting Kafka message; allowing the consumer to deserialize
using KafkaAvroDeserializer.
To enable the converter in a connector, the following value need to be specified:
"value.converter": "io.debezium.converters.BinaryDataConverter"
- Author:
- Nathan Bradshaw
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.apache.kafka.common.config.ConfigDefprotected static final Stringprivate org.apache.kafka.connect.storage.Converterprivate static final org.slf4j.Logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidassertDelegateProvided(String name, Object type) voidclose()org.apache.kafka.common.config.ConfigDefconfig()voidvoidbyte[]fromConnectData(String topic, org.apache.kafka.connect.data.Schema schema, Object value) byte[]fromConnectHeader(String topic, String headerKey, org.apache.kafka.connect.data.Schema schema, Object value) org.apache.kafka.connect.data.SchemaAndValuetoConnectData(String topic, byte[] value) org.apache.kafka.connect.data.SchemaAndValuetoConnectHeader(String topic, String headerKey, byte[] value) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.kafka.connect.storage.Converter
fromConnectData, toConnectData
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
CONFIG_DEF
private static final org.apache.kafka.common.config.ConfigDef CONFIG_DEF -
DELEGATE_CONVERTER_TYPE
- See Also:
-
delegateConverter
private org.apache.kafka.connect.storage.Converter delegateConverter
-
-
Constructor Details
-
BinaryDataConverter
public BinaryDataConverter()
-
-
Method Details
-
config
public org.apache.kafka.common.config.ConfigDef config()- Specified by:
configin interfaceorg.apache.kafka.connect.storage.Converter- Specified by:
configin interfaceorg.apache.kafka.connect.storage.HeaderConverter
-
configure
- Specified by:
configurein interfaceorg.apache.kafka.common.Configurable
-
configure
- Specified by:
configurein interfaceorg.apache.kafka.connect.storage.Converter
-
fromConnectData
public byte[] fromConnectData(String topic, org.apache.kafka.connect.data.Schema schema, Object value) - Specified by:
fromConnectDatain interfaceorg.apache.kafka.connect.storage.Converter
-
toConnectData
- Specified by:
toConnectDatain interfaceorg.apache.kafka.connect.storage.Converter
-
fromConnectHeader
public byte[] fromConnectHeader(String topic, String headerKey, org.apache.kafka.connect.data.Schema schema, Object value) - Specified by:
fromConnectHeaderin interfaceorg.apache.kafka.connect.storage.HeaderConverter
-
toConnectHeader
public org.apache.kafka.connect.data.SchemaAndValue toConnectHeader(String topic, String headerKey, byte[] value) - Specified by:
toConnectHeaderin interfaceorg.apache.kafka.connect.storage.HeaderConverter
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
assertDelegateProvided
-