You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Jun Rao (Jira)" <ji...@apache.org> on 2024/12/06 22:07:00 UTC

[jira] [Created] (KAFKA-18177) generate better helper code to support changing keys in request/response schema

Jun Rao created KAFKA-18177:
-------------------------------

             Summary: 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


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)