Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • New class org.apache.kafka.common.serialization.ListSerializer<L extends List<T>, T> implements Serializer<L> ListSerializer<Inner> implements Serializer<List<Inner>> interface
  • New class org.apache.kafka.common.serialization.ListDeserializer<L extends List<T>, T> implements Deserializer<L>ListDeserializer<Inner> implements Deserializer<List<Inner>> interface
  • New static subclass ListSerde<L extends List<T>, T> extends WrapperSerde<List<T>>subclass class ListSerde<Inner> extends WrapperSerde<List<Inner>> in org.apache.kafka.common.serialization.Serdes
  • New method public static <T> Serde<List<T>> <L extends List, Inner> Serde<List<Inner>> ListSerde(Class<? extends List> Class<L> listClass, Serde<T> Serde<Inner> innerSerde) 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<L> Serde directly Serde<List<Inner>> directly from Consumers, Producers and Streams where <L extends List<T>, T>.

List<L> Serde<List<Inner>> serialization and deserialization will be done through repeatedly calling a serializer/deserializer for each entry provided by passed generic T Inner's serde. 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>.

...