You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Jeff Klukas (JIRA)" <ji...@apache.org> on 2016/06/07 16:32:21 UTC
[jira] [Created] (KAFKA-3801) Provide static serialize() and
deserialize() for use as method references
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)