Hi all Unless someone has objections I will start a VOTE thread tomorrow. The KIP adds two methods to the TopologyTestDriver and has no conflicts for existing users. PR https://github.com/apache/kafka/pull/6556 is already being reviewed.
Side-note: https://cwiki.apache.org/confluence/display/KAFKA/KIP-456%3A+Helper+classes+to+make+it+simpler+to+write+test+logic+with+TopologyTestDriver will provide a much larger solution for the TopologyTestDriver, but is just starting the discussion. best regards Patrik On Thu, 11 Apr 2019 at 22:14, Patrik Kleindl <pklei...@gmail.com> wrote: > Hi Matthias > > Thanks for the questions. > > Regarding the return type: > Iterable offers the option of being used in a foreach loop directly and it > gives you access to the .iterator method, too. > (ref: > https://www.techiedelight.com/differences-between-iterator-and-iterable-in-java/ > ) > > To return a List object would require an additional conversion and I don't > see the immediate benefit. > > Regarding the ordering: > outputRecordsByTopic gives back a Queue > > private final Map<String, Queue<ProducerRecord<byte[], byte[]>>> > outputRecordsByTopic = new HashMap<>(); > > which has a LinkedList behind it > > outputRecordsByTopic.computeIfAbsent(record.topic(), k -> new > LinkedList<>()).add(record); > > So the order is handled by the linked list and should not be modified by > my changes, > not even the .stream.map etc. (ref: > https://stackoverflow.com/questions/30258566/java-stream-map-and-collect-order-of-resulting-container > ) > > > Then again, I am open to change it if people have some strong preference > > best regards > > Patrik > > > On Thu, 11 Apr 2019 at 17:45, Matthias J. Sax <matth...@confluent.io> > wrote: > >> Thanks for the KIP! >> >> Overall, this makes sense and can simplify testing. >> >> What I am wondering is, why you suggest to return an `Iterable`? Maybe >> returning an `Iterator` would make more sense? Or a List? Note that the >> order of emits matters, thus returning a generic `Collection` would not >> seem to be appropriate. >> >> Can you elaborate on the advantages to use `Iterable` compared to the >> other options? >> >> >> >> -Matthias >> >> On 4/11/19 2:09 AM, Patrik Kleindl wrote: >> > Hi everyone, >> > >> > I would like to start the discussion on this small enhancement of >> > the TopologyTestDriver. >> > >> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-451%3A+Make+TopologyTestDriver+output+iterable >> > >> > Pull request is available at https://github.com/apache/kafka/pull/6556 >> > >> > Any feedback is welcome >> > >> > best regards >> > >> > Patrik >> > >> >>