[ https://issues.apache.org/jira/browse/KAFKA-18177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17903783#comment-17903783 ]
Jun Rao commented on KAFKA-18177: --------------------------------- [~frankvicky] : Thanks for helping out. Feel free to take it over. > generate better helper code to support changing keys in request/response > schema > ------------------------------------------------------------------------------- > > Key: KAFKA-18177 > URL: https://issues.apache.org/jira/browse/KAFKA-18177 > Project: Kafka > Issue Type: Improvement > Reporter: Jun Rao > Priority: Major > > In [https://github.com/apache/kafka/pull/15968,] we are changing the key for > a collection in ProduceRequest from name to topicId. > {code:java} > { "name": "Name", "type": "string", "versions": "0-11", "entityType": > "topicName", "mapKey": true, "ignorable": true, > "about": "The topic name." }, > { "name": "TopicId", "type": "uuid", "versions": "12+", "mapKey": true, > "ignorable": true, "about": "The unique topic ID" },{code} > The generated code TopicProduceDataCollection has the following helper method > that uses both name and topicId. > {code:java} > public static class TopicProduceDataCollection extends > ImplicitLinkedHashMultiCollection<TopicProduceData> { > ... > public TopicProduceData find(String name, Uuid topicId) { > TopicProduceData _key = new TopicProduceData(); > _key.setName(name); > _key.setTopicId(topicId); > return find(_key); > }{code} > If we don't know which version of the request to use, we can use this method > by passing in both name and topicId. However, in some cases (especially > during testing), we know the version (often the latest version) of the > request to use. In this case, it's inconvenient to use find("", topicId). > It's better if we could generate a helper method find(Uuid topicId) that sets > name to the default value under the cover. -- This message was sent by Atlassian Jira (v8.20.10#820010)