[ https://issues.apache.org/jira/browse/KAFKA-1049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13971890#comment-13971890 ]
Jay Kreps commented on KAFKA-1049: ---------------------------------- The purpose is to allow configuration of the serializer. For example a string serializer needs a charset. An avro serializer needs a place to fetch avro schemas from. Etc. We have been working on redoing the producer and in the new producer the serialization is done by the user with the producer just taking the serialized bytes so that should make this somewhat more straight-forward. > Encoder implementations are required to provide an undocumented constructor. > ---------------------------------------------------------------------------- > > Key: KAFKA-1049 > URL: https://issues.apache.org/jira/browse/KAFKA-1049 > Project: Kafka > Issue Type: Improvement > Reporter: Jason Rosenberg > Priority: Minor > Attachments: KAFKA-1049.patch > > > So, it seems that if I want to set a custom serializer class on the producer > (in 0.8), I have to use a class that includes a special constructor like: > public class MyKafkaEncoder<MyType> implements Encoder<MyType> { > // This constructor is expected by the kafka producer, used by reflection > public MyKafkaEncoder(VerifiableProperties props) { > // what can I do with this? > } > @Override > public byte[] toBytes(MyType message) { > return message.toByteArray(); > } > } > It seems odd that this would be a requirement when implementing an interface. > This seems not to have been the case in 0.7. > What could my encoder class do with the VerifiableProperties? -- This message was sent by Atlassian JIRA (v6.2#6252)