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.components.Versioned
,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, org.apache.kafka.connect.components.Versioned
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.ConfigDef
protected static final String
private org.apache.kafka.connect.storage.Converter
private static final org.slf4j.Logger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
assertDelegateProvided
(String name, Object type) void
close()
org.apache.kafka.common.config.ConfigDef
config()
void
void
byte[]
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.SchemaAndValue
toConnectData
(String topic, byte[] value) org.apache.kafka.connect.data.SchemaAndValue
toConnectHeader
(String topic, String headerKey, byte[] value) version()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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:
config
in interfaceorg.apache.kafka.connect.storage.Converter
- Specified by:
config
in interfaceorg.apache.kafka.connect.storage.HeaderConverter
-
configure
- Specified by:
configure
in interfaceorg.apache.kafka.common.Configurable
-
configure
- Specified by:
configure
in interfaceorg.apache.kafka.connect.storage.Converter
-
fromConnectData
public byte[] fromConnectData(String topic, org.apache.kafka.connect.data.Schema schema, Object value) - Specified by:
fromConnectData
in interfaceorg.apache.kafka.connect.storage.Converter
-
toConnectData
- Specified by:
toConnectData
in 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:
fromConnectHeader
in interfaceorg.apache.kafka.connect.storage.HeaderConverter
-
toConnectHeader
public org.apache.kafka.connect.data.SchemaAndValue toConnectHeader(String topic, String headerKey, byte[] value) - Specified by:
toConnectHeader
in interfaceorg.apache.kafka.connect.storage.HeaderConverter
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
version
- Specified by:
version
in interfaceorg.apache.kafka.connect.components.Versioned
-
assertDelegateProvided
-