Interface Converter
- All Superinterfaces:
AutoCloseable
,Closeable
- All Known Implementing Classes:
StringConverter
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
.
Implement Monitorable
to enable the converter to register metrics.
The following tags are automatically added to all metrics registered: connector
set to connector name,
task
set to the task id and converter
set to either key
or value
.
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
close()
default 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
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-