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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]