You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by Jay Kreps <bo...@gmail.com> on 2014/02/03 06:57:58 UTC

Review Request 17653: Refactor API of new producer

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17653/
-----------------------------------------------------------

Review request for kafka.


Bugs: KAFKA-1227
    https://issues.apache.org/jira/browse/KAFKA-1227


Repository: kafka


Description
-------

Refactor API of new producer according to mailing list discussion.


Diffs
-----

  clients/src/main/java/kafka/clients/producer/Callback.java 47e5af31515e6f9879f5c24749f3a795d30e4192 
  clients/src/main/java/kafka/clients/producer/DefaultPartitioner.java b82fcfbe1a00fed1cfe2bc9ba72e1d6e2b5f767b 
  clients/src/main/java/kafka/clients/producer/KafkaProducer.java 58eee0c3236179ddf86e9d04848a29caf050eabc 
  clients/src/main/java/kafka/clients/producer/MockProducer.java 2ea2030dc2b3f052f490f1c66adccfcab21619de 
  clients/src/main/java/kafka/clients/producer/Partitioner.java 1b8e51f6aef0e15c81668514623f44d58ea0e9d5 
  clients/src/main/java/kafka/clients/producer/Producer.java 6ba66339d741986faa4831e65082b4af683180c1 
  clients/src/main/java/kafka/clients/producer/ProducerConfig.java 97582933c8d7de31fdfabcfb1540a7941ae254c4 
  clients/src/main/java/kafka/clients/producer/ProducerRecord.java 5fddbef92e542b3cb830df74e88fd8ae3f808dee 
  clients/src/main/java/kafka/clients/producer/RecordMetadata.java PRE-CREATION 
  clients/src/main/java/kafka/clients/producer/RecordSend.java 1883dabc3a9830d362dc865112f20910881f9354 
  clients/src/main/java/kafka/clients/producer/internals/FutureRecordMetadata.java PRE-CREATION 
  clients/src/main/java/kafka/clients/producer/internals/Partitioner.java PRE-CREATION 
  clients/src/main/java/kafka/clients/producer/internals/ProduceRequestResult.java 1049b61625d486f48194370178486cc9f08e1605 
  clients/src/main/java/kafka/clients/producer/internals/RecordAccumulator.java a2b536c3447e69588fcd6b9c5f94df3806d330f9 
  clients/src/main/java/kafka/clients/producer/internals/RecordBatch.java 4a536a29408f898736fa3d08959adf42d4a53973 
  clients/src/main/java/kafka/clients/producer/internals/Sender.java effeb9c19e2dd004e6191956d4bf26da618a134b 
  clients/src/main/java/kafka/clients/tools/ProducerPerformance.java 7331b73a060465bc53d2af98ac58ba1f1579fd21 
  clients/src/main/java/kafka/common/ByteSerialization.java eca69f187537b692f7ec9c634a6a2a130a6246d0 
  clients/src/main/java/kafka/common/Cluster.java d0acd8d2801420d6c411e1113ad1451213843979 
  clients/src/main/java/kafka/common/Deserializer.java ad2e78466a3de921c476838c5b147bb34a2c3fe8 
  clients/src/main/java/kafka/common/PartitionInfo.java f3f08dd30d2fa6cd236d9afa66791fe752c57b6e 
  clients/src/main/java/kafka/common/Serializer.java 63353d8274497ba0a2aa52b13c9ace4671fac9cb 
  clients/src/main/java/kafka/common/StringSerialization.java c0ed5ca20e8685f16e593ac8f670d8d098e32607 
  clients/src/main/java/kafka/common/errors/CorruptMessageException.java faf62340178e74c1590539961dbbda4e8dd5152f 
  clients/src/main/java/kafka/common/errors/MessageTooLargeException.java 7417906fd9faa18783f7c2e0a17576496539ddb9 
  clients/src/main/java/kafka/common/errors/RecordTooLargeException.java PRE-CREATION 
  clients/src/main/java/kafka/common/network/ByteBufferReceive.java cb1aaae0e119ef2bf38a97fdae70f29f8a8b4dad 
  clients/src/main/java/kafka/common/protocol/Errors.java fb1a3e52f3daa74be6f508a96e7c99aed09c0b38 
  clients/src/main/java/kafka/common/protocol/ProtoUtils.java 83dad5306a33616b29618ea0623a0fe227c0dc06 
  clients/src/main/java/kafka/common/protocol/Protocol.java e191d6a143b5881d791c73344ea27c506fc8fbdf 
  clients/src/main/java/kafka/common/record/MemoryRecords.java ec98226df8f93de9f1cd83c1b19c2f7abe5b5bea 
  clients/src/main/java/kafka/common/record/Record.java 835a0a449fade155a0795cd738f97a9b7c36ab92 
  clients/src/test/java/kafka/clients/producer/MetadataTest.java 68e4bd7496e26d41a0f580837525ebb191b3c961 
  clients/src/test/java/kafka/clients/producer/MockProducerTest.java 61929a4fef9889375e00dbc34828fef31be1a324 
  clients/src/test/java/kafka/clients/producer/RecordSendTest.java f8fd14b986be30e821cf3814940ba503425493a7 
  clients/src/test/java/kafka/clients/producer/SenderTest.java 73f1aba0deae610f56f32820d57dc8289187d7e0 
  clients/src/test/java/kafka/test/TestUtils.java a2ef3a222f46f57345560bd5d91650d9a036b56c 

Diff: https://reviews.apache.org/r/17653/diff/


Testing
-------


Thanks,

Jay Kreps


Re: Review Request 17653: Refactor API of new producer

Posted by Edward Ribeiro <ed...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17653/#review33422
-----------------------------------------------------------



clients/src/main/java/kafka/common/Cluster.java
<https://reviews.apache.org/r/17653/#comment62867>

    Hey, this line wraps as a umodifiableList() and then at line 32 it tries to shuffle() it. According a little test I've done here, this throws a UnsupportedOperationException. The wrapping should be the last statement of this method, imo.


- Edward Ribeiro


On Feb. 3, 2014, 5:57 a.m., Jay Kreps wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17653/
> -----------------------------------------------------------
> 
> (Updated Feb. 3, 2014, 5:57 a.m.)
> 
> 
> Review request for kafka.
> 
> 
> Bugs: KAFKA-1227
>     https://issues.apache.org/jira/browse/KAFKA-1227
> 
> 
> Repository: kafka
> 
> 
> Description
> -------
> 
> Refactor API of new producer according to mailing list discussion.
> 
> 
> Diffs
> -----
> 
>   clients/src/main/java/kafka/clients/producer/Callback.java 47e5af31515e6f9879f5c24749f3a795d30e4192 
>   clients/src/main/java/kafka/clients/producer/DefaultPartitioner.java b82fcfbe1a00fed1cfe2bc9ba72e1d6e2b5f767b 
>   clients/src/main/java/kafka/clients/producer/KafkaProducer.java 58eee0c3236179ddf86e9d04848a29caf050eabc 
>   clients/src/main/java/kafka/clients/producer/MockProducer.java 2ea2030dc2b3f052f490f1c66adccfcab21619de 
>   clients/src/main/java/kafka/clients/producer/Partitioner.java 1b8e51f6aef0e15c81668514623f44d58ea0e9d5 
>   clients/src/main/java/kafka/clients/producer/Producer.java 6ba66339d741986faa4831e65082b4af683180c1 
>   clients/src/main/java/kafka/clients/producer/ProducerConfig.java 97582933c8d7de31fdfabcfb1540a7941ae254c4 
>   clients/src/main/java/kafka/clients/producer/ProducerRecord.java 5fddbef92e542b3cb830df74e88fd8ae3f808dee 
>   clients/src/main/java/kafka/clients/producer/RecordMetadata.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/RecordSend.java 1883dabc3a9830d362dc865112f20910881f9354 
>   clients/src/main/java/kafka/clients/producer/internals/FutureRecordMetadata.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/internals/Partitioner.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/internals/ProduceRequestResult.java 1049b61625d486f48194370178486cc9f08e1605 
>   clients/src/main/java/kafka/clients/producer/internals/RecordAccumulator.java a2b536c3447e69588fcd6b9c5f94df3806d330f9 
>   clients/src/main/java/kafka/clients/producer/internals/RecordBatch.java 4a536a29408f898736fa3d08959adf42d4a53973 
>   clients/src/main/java/kafka/clients/producer/internals/Sender.java effeb9c19e2dd004e6191956d4bf26da618a134b 
>   clients/src/main/java/kafka/clients/tools/ProducerPerformance.java 7331b73a060465bc53d2af98ac58ba1f1579fd21 
>   clients/src/main/java/kafka/common/ByteSerialization.java eca69f187537b692f7ec9c634a6a2a130a6246d0 
>   clients/src/main/java/kafka/common/Cluster.java d0acd8d2801420d6c411e1113ad1451213843979 
>   clients/src/main/java/kafka/common/Deserializer.java ad2e78466a3de921c476838c5b147bb34a2c3fe8 
>   clients/src/main/java/kafka/common/PartitionInfo.java f3f08dd30d2fa6cd236d9afa66791fe752c57b6e 
>   clients/src/main/java/kafka/common/Serializer.java 63353d8274497ba0a2aa52b13c9ace4671fac9cb 
>   clients/src/main/java/kafka/common/StringSerialization.java c0ed5ca20e8685f16e593ac8f670d8d098e32607 
>   clients/src/main/java/kafka/common/errors/CorruptMessageException.java faf62340178e74c1590539961dbbda4e8dd5152f 
>   clients/src/main/java/kafka/common/errors/MessageTooLargeException.java 7417906fd9faa18783f7c2e0a17576496539ddb9 
>   clients/src/main/java/kafka/common/errors/RecordTooLargeException.java PRE-CREATION 
>   clients/src/main/java/kafka/common/network/ByteBufferReceive.java cb1aaae0e119ef2bf38a97fdae70f29f8a8b4dad 
>   clients/src/main/java/kafka/common/protocol/Errors.java fb1a3e52f3daa74be6f508a96e7c99aed09c0b38 
>   clients/src/main/java/kafka/common/protocol/ProtoUtils.java 83dad5306a33616b29618ea0623a0fe227c0dc06 
>   clients/src/main/java/kafka/common/protocol/Protocol.java e191d6a143b5881d791c73344ea27c506fc8fbdf 
>   clients/src/main/java/kafka/common/record/MemoryRecords.java ec98226df8f93de9f1cd83c1b19c2f7abe5b5bea 
>   clients/src/main/java/kafka/common/record/Record.java 835a0a449fade155a0795cd738f97a9b7c36ab92 
>   clients/src/test/java/kafka/clients/producer/MetadataTest.java 68e4bd7496e26d41a0f580837525ebb191b3c961 
>   clients/src/test/java/kafka/clients/producer/MockProducerTest.java 61929a4fef9889375e00dbc34828fef31be1a324 
>   clients/src/test/java/kafka/clients/producer/RecordSendTest.java f8fd14b986be30e821cf3814940ba503425493a7 
>   clients/src/test/java/kafka/clients/producer/SenderTest.java 73f1aba0deae610f56f32820d57dc8289187d7e0 
>   clients/src/test/java/kafka/test/TestUtils.java a2ef3a222f46f57345560bd5d91650d9a036b56c 
> 
> Diff: https://reviews.apache.org/r/17653/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jay Kreps
> 
>


Re: Review Request 17653: Refactor API of new producer

Posted by Edward Ribeiro <ed...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17653/#review33423
-----------------------------------------------------------



clients/src/main/java/kafka/common/Cluster.java
<https://reviews.apache.org/r/17653/#comment62868>

    Instead of using "new ArrayList<PartitionInfo>(0)" it's more advisable to resort to "Collections.<PartitionInfo>emptyList()"


- Edward Ribeiro


On Feb. 3, 2014, 5:57 a.m., Jay Kreps wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17653/
> -----------------------------------------------------------
> 
> (Updated Feb. 3, 2014, 5:57 a.m.)
> 
> 
> Review request for kafka.
> 
> 
> Bugs: KAFKA-1227
>     https://issues.apache.org/jira/browse/KAFKA-1227
> 
> 
> Repository: kafka
> 
> 
> Description
> -------
> 
> Refactor API of new producer according to mailing list discussion.
> 
> 
> Diffs
> -----
> 
>   clients/src/main/java/kafka/clients/producer/Callback.java 47e5af31515e6f9879f5c24749f3a795d30e4192 
>   clients/src/main/java/kafka/clients/producer/DefaultPartitioner.java b82fcfbe1a00fed1cfe2bc9ba72e1d6e2b5f767b 
>   clients/src/main/java/kafka/clients/producer/KafkaProducer.java 58eee0c3236179ddf86e9d04848a29caf050eabc 
>   clients/src/main/java/kafka/clients/producer/MockProducer.java 2ea2030dc2b3f052f490f1c66adccfcab21619de 
>   clients/src/main/java/kafka/clients/producer/Partitioner.java 1b8e51f6aef0e15c81668514623f44d58ea0e9d5 
>   clients/src/main/java/kafka/clients/producer/Producer.java 6ba66339d741986faa4831e65082b4af683180c1 
>   clients/src/main/java/kafka/clients/producer/ProducerConfig.java 97582933c8d7de31fdfabcfb1540a7941ae254c4 
>   clients/src/main/java/kafka/clients/producer/ProducerRecord.java 5fddbef92e542b3cb830df74e88fd8ae3f808dee 
>   clients/src/main/java/kafka/clients/producer/RecordMetadata.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/RecordSend.java 1883dabc3a9830d362dc865112f20910881f9354 
>   clients/src/main/java/kafka/clients/producer/internals/FutureRecordMetadata.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/internals/Partitioner.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/internals/ProduceRequestResult.java 1049b61625d486f48194370178486cc9f08e1605 
>   clients/src/main/java/kafka/clients/producer/internals/RecordAccumulator.java a2b536c3447e69588fcd6b9c5f94df3806d330f9 
>   clients/src/main/java/kafka/clients/producer/internals/RecordBatch.java 4a536a29408f898736fa3d08959adf42d4a53973 
>   clients/src/main/java/kafka/clients/producer/internals/Sender.java effeb9c19e2dd004e6191956d4bf26da618a134b 
>   clients/src/main/java/kafka/clients/tools/ProducerPerformance.java 7331b73a060465bc53d2af98ac58ba1f1579fd21 
>   clients/src/main/java/kafka/common/ByteSerialization.java eca69f187537b692f7ec9c634a6a2a130a6246d0 
>   clients/src/main/java/kafka/common/Cluster.java d0acd8d2801420d6c411e1113ad1451213843979 
>   clients/src/main/java/kafka/common/Deserializer.java ad2e78466a3de921c476838c5b147bb34a2c3fe8 
>   clients/src/main/java/kafka/common/PartitionInfo.java f3f08dd30d2fa6cd236d9afa66791fe752c57b6e 
>   clients/src/main/java/kafka/common/Serializer.java 63353d8274497ba0a2aa52b13c9ace4671fac9cb 
>   clients/src/main/java/kafka/common/StringSerialization.java c0ed5ca20e8685f16e593ac8f670d8d098e32607 
>   clients/src/main/java/kafka/common/errors/CorruptMessageException.java faf62340178e74c1590539961dbbda4e8dd5152f 
>   clients/src/main/java/kafka/common/errors/MessageTooLargeException.java 7417906fd9faa18783f7c2e0a17576496539ddb9 
>   clients/src/main/java/kafka/common/errors/RecordTooLargeException.java PRE-CREATION 
>   clients/src/main/java/kafka/common/network/ByteBufferReceive.java cb1aaae0e119ef2bf38a97fdae70f29f8a8b4dad 
>   clients/src/main/java/kafka/common/protocol/Errors.java fb1a3e52f3daa74be6f508a96e7c99aed09c0b38 
>   clients/src/main/java/kafka/common/protocol/ProtoUtils.java 83dad5306a33616b29618ea0623a0fe227c0dc06 
>   clients/src/main/java/kafka/common/protocol/Protocol.java e191d6a143b5881d791c73344ea27c506fc8fbdf 
>   clients/src/main/java/kafka/common/record/MemoryRecords.java ec98226df8f93de9f1cd83c1b19c2f7abe5b5bea 
>   clients/src/main/java/kafka/common/record/Record.java 835a0a449fade155a0795cd738f97a9b7c36ab92 
>   clients/src/test/java/kafka/clients/producer/MetadataTest.java 68e4bd7496e26d41a0f580837525ebb191b3c961 
>   clients/src/test/java/kafka/clients/producer/MockProducerTest.java 61929a4fef9889375e00dbc34828fef31be1a324 
>   clients/src/test/java/kafka/clients/producer/RecordSendTest.java f8fd14b986be30e821cf3814940ba503425493a7 
>   clients/src/test/java/kafka/clients/producer/SenderTest.java 73f1aba0deae610f56f32820d57dc8289187d7e0 
>   clients/src/test/java/kafka/test/TestUtils.java a2ef3a222f46f57345560bd5d91650d9a036b56c 
> 
> Diff: https://reviews.apache.org/r/17653/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jay Kreps
> 
>


Re: Review Request 17653: Refactor API of new producer

Posted by Edward Ribeiro <ed...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17653/#review33514
-----------------------------------------------------------



clients/src/main/java/kafka/clients/producer/RecordMetadata.java
<https://reviews.apache.org/r/17653/#comment62995>

    There's no need to call super() here because there's no explicit inheritance (beyond Object, of course) being used.


- Edward Ribeiro


On Feb. 3, 2014, 5:57 a.m., Jay Kreps wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17653/
> -----------------------------------------------------------
> 
> (Updated Feb. 3, 2014, 5:57 a.m.)
> 
> 
> Review request for kafka.
> 
> 
> Bugs: KAFKA-1227
>     https://issues.apache.org/jira/browse/KAFKA-1227
> 
> 
> Repository: kafka
> 
> 
> Description
> -------
> 
> Refactor API of new producer according to mailing list discussion.
> 
> 
> Diffs
> -----
> 
>   clients/src/main/java/kafka/clients/producer/Callback.java 47e5af31515e6f9879f5c24749f3a795d30e4192 
>   clients/src/main/java/kafka/clients/producer/DefaultPartitioner.java b82fcfbe1a00fed1cfe2bc9ba72e1d6e2b5f767b 
>   clients/src/main/java/kafka/clients/producer/KafkaProducer.java 58eee0c3236179ddf86e9d04848a29caf050eabc 
>   clients/src/main/java/kafka/clients/producer/MockProducer.java 2ea2030dc2b3f052f490f1c66adccfcab21619de 
>   clients/src/main/java/kafka/clients/producer/Partitioner.java 1b8e51f6aef0e15c81668514623f44d58ea0e9d5 
>   clients/src/main/java/kafka/clients/producer/Producer.java 6ba66339d741986faa4831e65082b4af683180c1 
>   clients/src/main/java/kafka/clients/producer/ProducerConfig.java 97582933c8d7de31fdfabcfb1540a7941ae254c4 
>   clients/src/main/java/kafka/clients/producer/ProducerRecord.java 5fddbef92e542b3cb830df74e88fd8ae3f808dee 
>   clients/src/main/java/kafka/clients/producer/RecordMetadata.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/RecordSend.java 1883dabc3a9830d362dc865112f20910881f9354 
>   clients/src/main/java/kafka/clients/producer/internals/FutureRecordMetadata.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/internals/Partitioner.java PRE-CREATION 
>   clients/src/main/java/kafka/clients/producer/internals/ProduceRequestResult.java 1049b61625d486f48194370178486cc9f08e1605 
>   clients/src/main/java/kafka/clients/producer/internals/RecordAccumulator.java a2b536c3447e69588fcd6b9c5f94df3806d330f9 
>   clients/src/main/java/kafka/clients/producer/internals/RecordBatch.java 4a536a29408f898736fa3d08959adf42d4a53973 
>   clients/src/main/java/kafka/clients/producer/internals/Sender.java effeb9c19e2dd004e6191956d4bf26da618a134b 
>   clients/src/main/java/kafka/clients/tools/ProducerPerformance.java 7331b73a060465bc53d2af98ac58ba1f1579fd21 
>   clients/src/main/java/kafka/common/ByteSerialization.java eca69f187537b692f7ec9c634a6a2a130a6246d0 
>   clients/src/main/java/kafka/common/Cluster.java d0acd8d2801420d6c411e1113ad1451213843979 
>   clients/src/main/java/kafka/common/Deserializer.java ad2e78466a3de921c476838c5b147bb34a2c3fe8 
>   clients/src/main/java/kafka/common/PartitionInfo.java f3f08dd30d2fa6cd236d9afa66791fe752c57b6e 
>   clients/src/main/java/kafka/common/Serializer.java 63353d8274497ba0a2aa52b13c9ace4671fac9cb 
>   clients/src/main/java/kafka/common/StringSerialization.java c0ed5ca20e8685f16e593ac8f670d8d098e32607 
>   clients/src/main/java/kafka/common/errors/CorruptMessageException.java faf62340178e74c1590539961dbbda4e8dd5152f 
>   clients/src/main/java/kafka/common/errors/MessageTooLargeException.java 7417906fd9faa18783f7c2e0a17576496539ddb9 
>   clients/src/main/java/kafka/common/errors/RecordTooLargeException.java PRE-CREATION 
>   clients/src/main/java/kafka/common/network/ByteBufferReceive.java cb1aaae0e119ef2bf38a97fdae70f29f8a8b4dad 
>   clients/src/main/java/kafka/common/protocol/Errors.java fb1a3e52f3daa74be6f508a96e7c99aed09c0b38 
>   clients/src/main/java/kafka/common/protocol/ProtoUtils.java 83dad5306a33616b29618ea0623a0fe227c0dc06 
>   clients/src/main/java/kafka/common/protocol/Protocol.java e191d6a143b5881d791c73344ea27c506fc8fbdf 
>   clients/src/main/java/kafka/common/record/MemoryRecords.java ec98226df8f93de9f1cd83c1b19c2f7abe5b5bea 
>   clients/src/main/java/kafka/common/record/Record.java 835a0a449fade155a0795cd738f97a9b7c36ab92 
>   clients/src/test/java/kafka/clients/producer/MetadataTest.java 68e4bd7496e26d41a0f580837525ebb191b3c961 
>   clients/src/test/java/kafka/clients/producer/MockProducerTest.java 61929a4fef9889375e00dbc34828fef31be1a324 
>   clients/src/test/java/kafka/clients/producer/RecordSendTest.java f8fd14b986be30e821cf3814940ba503425493a7 
>   clients/src/test/java/kafka/clients/producer/SenderTest.java 73f1aba0deae610f56f32820d57dc8289187d7e0 
>   clients/src/test/java/kafka/test/TestUtils.java a2ef3a222f46f57345560bd5d91650d9a036b56c 
> 
> Diff: https://reviews.apache.org/r/17653/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jay Kreps
> 
>