You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Sharmarke Aden (JIRA)" <ji...@apache.org> on 2014/04/16 21:16:16 UTC
[jira] [Commented] (KAFKA-1049) Encoder implementations are
required to provide an undocumented constructor.
[ https://issues.apache.org/jira/browse/KAFKA-1049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13971821#comment-13971821 ]
Sharmarke Aden commented on KAFKA-1049:
---------------------------------------
What exactly is the value of VerifiableProperties? Why would you want to implicitly drive implementation details of Encoder/Decoder interfaces? If you really need to make VerifiableProperties available to encoder/decoder implementations then pass it in via toBytes/fromBytes methods.
This issue is a major API flaw. Please fix it as soon as possible.
> 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)