Package org.apache.kafka.connect.storage
Interface Converter
- All Known Implementing Classes:
StringConverter
public interface Converter
The Converter interface provides support for translating between Kafka Connect's runtime data format
and byte[]. Internally, this likely includes an intermediate step to the format used by the serialization
layer (e.g. JsonNode, GenericRecord, Message).
Kafka Connect may discover implementations of this interface using the Java ServiceLoader
mechanism.
To support this, implementations of this interface should also contain a service provider configuration file in
META-INF/services/org.apache.kafka.connect.storage.Converter
.
-
Method Summary
Modifier and TypeMethodDescriptiondefault ConfigDef
config()
Configuration specification for this converter.void
Configure this class.default byte[]
fromConnectData
(String topic, Headers headers, Schema schema, Object value) Convert a Kafka Connect data object to a native object for serialization, potentially using the supplied topic and headers in the record as necessary.byte[]
fromConnectData
(String topic, Schema schema, Object value) Convert a Kafka Connect data object to a native object for serialization.toConnectData
(String topic, byte[] value) Convert a native object to a Kafka Connect data object for deserialization.default SchemaAndValue
toConnectData
(String topic, Headers headers, byte[] value) Convert a native object to a Kafka Connect data object for deserialization, potentially using the supplied topic and headers in the record as necessary.
-
Method Details
-
configure
Configure this class.- Parameters:
configs
- configs in key/value pairsisKey
- whether this converter is for a key or a value
-
fromConnectData
Convert a Kafka Connect data object to a native object for serialization.- Parameters:
topic
- the topic associated with the dataschema
- the schema for the valuevalue
- the value to convert- Returns:
- the serialized value
-
fromConnectData
Convert a Kafka Connect data object to a native object for serialization, potentially using the supplied topic and headers in the record as necessary.Connect uses this method directly, and for backward compatibility reasons this method by default will call the
fromConnectData(String, Schema, Object)
method. Override this method to make use of the supplied headers.- Parameters:
topic
- the topic associated with the dataheaders
- the headers associated with the data; any changes done to the headers are applied to the message sent to the brokerschema
- the schema for the valuevalue
- the value to convert- Returns:
- the serialized value
-
toConnectData
Convert a native object to a Kafka Connect data object for deserialization.- Parameters:
topic
- the topic associated with the datavalue
- the value to convert- Returns:
- an object containing the
Schema
and the converted value
-
toConnectData
Convert a native object to a Kafka Connect data object for deserialization, potentially using the supplied topic and headers in the record as necessary.Connect uses this method directly, and for backward compatibility reasons this method by default will call the
toConnectData(String, byte[])
method. Override this method to make use of the supplied headers.- Parameters:
topic
- the topic associated with the dataheaders
- the headers associated with the datavalue
- the value to convert- Returns:
- an object containing the
Schema
and the converted value
-
config
Configuration specification for this converter.- Returns:
- the configuration specification; may not be null
-