Table of Contents |
---|
Status
Current state: Accepted
Discussion thread: Link
JIRA:
Jira | ||||||
---|---|---|---|---|---|---|
|
...
- New class org.apache.kafka.common.serialization.ListSerializer which implements the Serializer<List<T>>ListSerializer<L extends List<T>, T> implements Serializer<L> interface
- New class org.apache.kafka.common.serialization.ListDeserializer which implements Deserializer<List<T>>ListDeserializer<L extends List<T>, T> implements Deserializer<L> interface
- New subclass ListSerde<T>static subclass ListSerde<L extends List<T>, T> extends WrapperSerde<List<T>> in org.apache.kafka.common.serialization.Serdes which creates new serde based on ListSerializer and ListDeserializer classes
- New method public static <T> Serde<List<T>> ListSerde(Class Class<? extends List> listClass, Serde<T> innerSerde) in in org.apache.kafka.common.serialization.Serdes class
...
This KIP proposes adding new ListSerializer and ListDeserializer classes as well as support for the new ListSerde nested class inside the Serdes class. This will allow using List<T> List<L> Serde directly from Consumers, Producers and Streams where <L extends List<T>, T>.
List<T> List<L> serialization and deserialization will be done through repeatedly calling a serializer/deserializer for each entry provided by passed generic T L's Serdeserde. For example, if you want to create List of Strings serde, then serializer/deserializer of Serdes.StringSerde will be used to serialize/deserialize each entry in List<String>.
...
ConsumerConfig.class: LIST_KEY_DEERIALIZERDESERIALIZER_INNER_CLASS_CONFIG = "list.key.deserializer.inner"
...