[ 
https://issues.apache.org/jira/browse/KAFKA-3006?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre-Yves Ritschard updated KAFKA-3006:
-----------------------------------------
    Description: 
The KafkaConsumer API has some annoying inconsistencies in the usage of 
collection types. For example, subscribe() takes a list, but subscription() 
returns a set. Similarly for assign() and assignment(). We also have pause() , 
seekToBeginning(), seekToEnd(), and resume() which annoyingly use a variable 
argument array, which means you have to copy the result of assignment() to an 
array if you want to pause all assigned partitions. We can solve these issues 
by adding the following variants:


{code}
void subscribe(Collection<String> topics);
void subscribe(Collection<String> topics, ConsumerRebalanceListener);
void assign(Collection<TopicPartition> partitions);
void pause(Collection<TopicPartition> partitions);
void resume(Collection<TopicPartition> partitions);
void seekToBeginning(Collection<TopicPartition>);
void seekToEnd(Collection<TopicPartition>);
{code}


  was:
Some languages (in my case, clojure) make it a bit cumbersome to deal with java 
arrays. 

In the consumer, these four signatures only accepts arrays:

seekToBeginning, seekToEnd, pause, resume.


> kafka client should offer Collection alternative to Array call signatures
> -------------------------------------------------------------------------
>
>                 Key: KAFKA-3006
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3006
>             Project: Kafka
>          Issue Type: Improvement
>          Components: clients
>    Affects Versions: 0.9.0.0
>            Reporter: Pierre-Yves Ritschard
>              Labels: patch
>
> The KafkaConsumer API has some annoying inconsistencies in the usage of 
> collection types. For example, subscribe() takes a list, but subscription() 
> returns a set. Similarly for assign() and assignment(). We also have pause() 
> , seekToBeginning(), seekToEnd(), and resume() which annoyingly use a 
> variable argument array, which means you have to copy the result of 
> assignment() to an array if you want to pause all assigned partitions. We can 
> solve these issues by adding the following variants:
> {code}
> void subscribe(Collection<String> topics);
> void subscribe(Collection<String> topics, ConsumerRebalanceListener);
> void assign(Collection<TopicPartition> partitions);
> void pause(Collection<TopicPartition> partitions);
> void resume(Collection<TopicPartition> partitions);
> void seekToBeginning(Collection<TopicPartition>);
> void seekToEnd(Collection<TopicPartition>);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to