Jeff Klukas created KAFKA-3801:
----------------------------------
Summary: Provide static serialize() and deserialize() for use as
method references
Key: KAFKA-3801
URL: https://issues.apache.org/jira/browse/KAFKA-3801
Project: Kafka
Issue Type: Improvement
Components: clients, streams
Reporter: Jeff Klukas
Assignee: Guozhang Wang
Priority: Minor
Fix For: 0.10.1.0
While most calls to {{Serializer.serialize}} and {{Deserializer.deserialize}}
are abstracted away in Kafka Streams through the use of `Serdes` classes, there
are some instances where developers may want to call them directly. The
serializers and deserializers for simple types don't require any configuration
and could be static, but currently it's necessary to create an instance to use
those methods.
I'd propose moving serialization logic into a {{static public byte[]
serialize(? data)}} method and deserialization logic into a {{static public ?
deserialize(byte[] data)}} method. The existing instance methods would simply
call the static versions.
See a full example for LongSerializer and LongDeserializer here:
https://github.com/apache/kafka/compare/trunk...jklukas:static-serde-methods?expand=1
In Java 8, these static methods then become available for method references in
code like {{kstream.mapValues(LongDeserializer::deserialize)}} without the user
needing to create an instance of {{LongDeserializer}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)