dengziming commented on code in PR #16230:
URL: https://github.com/apache/kafka/pull/16230#discussion_r1637473020


##########
metadata/src/main/java/org/apache/kafka/metadata/bootstrap/BootstrapMetadata.java:
##########
@@ -116,6 +139,34 @@ public BootstrapMetadata copyWithOnlyVersion() {
                 metadataVersion, source);
     }
 
+    public BootstrapMetadata withMetadataVersion(MetadataVersion 
metadataVersion) {
+        List<ApiMessageAndVersion> newRecords = new ArrayList<>();
+        for (ApiMessageAndVersion record : records) {
+            if (recordToMetadataVersion(record.message()).isPresent()) {
+                newRecords.add(metadataVersionToRecord(metadataVersion));
+            } else {
+                newRecords.add(record);
+            }
+        }
+        return new BootstrapMetadata(newRecords, metadataVersion, source);
+    }
+
+    public BootstrapMetadata withKRaftVersion(KRaftVersion version) {
+        List<ApiMessageAndVersion> newRecords = new ArrayList<>();
+        boolean foundKRaftVersion = false;
+        for (ApiMessageAndVersion record : records) {
+            if (recordToKRaftVersion(record.message()).isPresent()) {
+                newRecords.add(kraftVersionToRecord(version));
+            } else {
+                newRecords.add(record);
+            }
+        }
+        if (!foundKRaftVersion) {
+            newRecords.add(kraftVersionToRecord(version));

Review Comment:
   We have decided to propagate feature version for kraft.version using 
KRaftVersionRecord control record,  should we also add a `ControlRecord` to 
make it consistent with `FeatureLevelRecord`



##########
metadata/src/main/java/org/apache/kafka/metadata/bootstrap/BootstrapMetadata.java:
##########
@@ -116,6 +139,34 @@ public BootstrapMetadata copyWithOnlyVersion() {
                 metadataVersion, source);
     }
 
+    public BootstrapMetadata withMetadataVersion(MetadataVersion 
metadataVersion) {
+        List<ApiMessageAndVersion> newRecords = new ArrayList<>();
+        for (ApiMessageAndVersion record : records) {
+            if (recordToMetadataVersion(record.message()).isPresent()) {
+                newRecords.add(metadataVersionToRecord(metadataVersion));
+            } else {
+                newRecords.add(record);
+            }
+        }
+        return new BootstrapMetadata(newRecords, metadataVersion, source);
+    }
+
+    public BootstrapMetadata withKRaftVersion(KRaftVersion version) {
+        List<ApiMessageAndVersion> newRecords = new ArrayList<>();
+        boolean foundKRaftVersion = false;
+        for (ApiMessageAndVersion record : records) {
+            if (recordToKRaftVersion(record.message()).isPresent()) {
+                newRecords.add(kraftVersionToRecord(version));

Review Comment:
   We should add: `foundKRaftVersion=true;` here.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to