This is an automated email from the ASF dual-hosted git repository.

chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 4e18307c2b0 MINOR: Update collections with Java 11 equivalents in 
generator, examples, and jmh-benchmarks (#21620)
4e18307c2b0 is described below

commit 4e18307c2b0d4f6c1029ae90fb6991aba5e4f230
Author: Maros Orsak <[email protected]>
AuthorDate: Thu Mar 5 19:36:44 2026 +0100

    MINOR: Update collections with Java 11 equivalents in generator, examples, 
and jmh-benchmarks (#21620)
    
    This PR is one of the upcoming trying to modernise the code of the
    Kafka. I have started with smaller modules.
    
    Reviewers: Christo Lolov <[email protected]>, Chia-Ping Tsai
     <[email protected]>, Ken Huang <[email protected]>
---
 .../java/kafka/examples/ExactlyOnceMessageProcessor.java     | 11 +++++------
 .../org/apache/kafka/message/ApiMessageTypeGenerator.java    |  3 +--
 .../src/main/java/org/apache/kafka/message/FieldSpec.java    |  5 +----
 .../main/java/org/apache/kafka/message/MessageGenerator.java |  5 ++---
 .../src/main/java/org/apache/kafka/message/MessageSpec.java  |  5 ++---
 generator/src/main/java/org/apache/kafka/message/Target.java |  4 ++--
 .../kafka/jmh/producer/RecordAccumulatorFlushBenchmark.java  | 12 ++++++------
 7 files changed, 19 insertions(+), 26 deletions(-)

diff --git 
a/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java 
b/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java
index d4249526f3b..62f1c8d6762 100644
--- a/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java
+++ b/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java
@@ -36,15 +36,14 @@ import 
org.apache.kafka.common.errors.UnsupportedVersionException;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 
 import static java.time.Duration.ofMillis;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singleton;
 
 /**
  * This class implements a read-process-write application.
@@ -121,7 +120,7 @@ public class ExactlyOnceMessageProcessor extends Thread 
implements ConsumerRebal
                  "processor-group", Optional.of(groupInstanceId), 
readCommitted, -1, null).createKafkaConsumer()) {
             // called first and once to fence zombies and abort any pending 
transaction
             producer.initTransactions();
-            consumer.subscribe(singleton(inputTopic), this);
+            consumer.subscribe(Set.of(inputTopic), this);
 
             Utils.printOut("Processing new records");
             while (!closed && remainingRecords > 0) {
@@ -155,7 +154,7 @@ public class ExactlyOnceMessageProcessor extends Thread 
implements ConsumerRebal
                 } catch (OffsetOutOfRangeException | 
NoOffsetForPartitionException e) {
                     // invalid or no offset found without auto.reset.policy
                     Utils.printOut("Invalid or no offset found, using latest");
-                    consumer.seekToEnd(emptyList());
+                    consumer.seekToEnd(List.of());
                     consumer.commitSync();
                     retries = 0;
                 } catch (KafkaException e) {
@@ -244,7 +243,7 @@ public class ExactlyOnceMessageProcessor extends Thread 
implements ConsumerRebal
                 if (offsetAndMetadata != null) {
                     consumer.seek(tp, offsetAndMetadata.offset());
                 } else {
-                    consumer.seekToBeginning(Collections.singleton(tp));
+                    consumer.seekToBeginning(Set.of(tp));
                 }
             });
             retries++;
diff --git 
a/generator/src/main/java/org/apache/kafka/message/ApiMessageTypeGenerator.java 
b/generator/src/main/java/org/apache/kafka/message/ApiMessageTypeGenerator.java
index 9448c3cf35c..56a978fd812 100644
--- 
a/generator/src/main/java/org/apache/kafka/message/ApiMessageTypeGenerator.java
+++ 
b/generator/src/main/java/org/apache/kafka/message/ApiMessageTypeGenerator.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.EnumMap;
 import java.util.Iterator;
 import java.util.List;
@@ -213,7 +212,7 @@ public final class ApiMessageTypeGenerator implements 
TypeClassGenerator {
 
             final Collection<String> listeners;
             if (apiData.requestSpec.listeners() == null) {
-                listeners = Collections.emptyList();
+                listeners = List.of();
             } else {
                 listeners = apiData.requestSpec.listeners().stream()
                     .map(RequestListenerType::name)
diff --git a/generator/src/main/java/org/apache/kafka/message/FieldSpec.java 
b/generator/src/main/java/org/apache/kafka/message/FieldSpec.java
index a6b8cc62f2b..fcbfc2f8ed3 100644
--- a/generator/src/main/java/org/apache/kafka/message/FieldSpec.java
+++ b/generator/src/main/java/org/apache/kafka/message/FieldSpec.java
@@ -21,9 +21,7 @@ import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
 import java.util.Base64;
-import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -87,8 +85,7 @@ public final class FieldSpec {
             throw new RuntimeException("You must specify the version of the " +
                 name + " structure.");
         }
-        this.fields = Collections.unmodifiableList(fields == null ?
-            Collections.emptyList() : new ArrayList<>(fields));
+        this.fields = fields == null ? List.of() : List.copyOf(fields);
         this.type = FieldType.parse(Objects.requireNonNull(type));
         this.mapKey = mapKey;
         this.nullableVersions = Versions.parse(nullableVersions, 
Versions.NONE);
diff --git 
a/generator/src/main/java/org/apache/kafka/message/MessageGenerator.java 
b/generator/src/main/java/org/apache/kafka/message/MessageGenerator.java
index e64f8524823..f235bfa17dc 100644
--- a/generator/src/main/java/org/apache/kafka/message/MessageGenerator.java
+++ b/generator/src/main/java/org/apache/kafka/message/MessageGenerator.java
@@ -36,7 +36,6 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
@@ -188,7 +187,7 @@ public final class MessageGenerator {
 
     private static List<TypeClassGenerator> createTypeClassGenerators(String 
packageName,
                                                                       
List<String> types) {
-        if (types == null) return Collections.emptyList();
+        if (types == null) return List.of();
         List<TypeClassGenerator> generators = new ArrayList<>();
         for (String type : types) {
             switch (type) {
@@ -216,7 +215,7 @@ public final class MessageGenerator {
 
     private static List<MessageClassGenerator> 
createMessageClassGenerators(String packageName,
                                                                             
List<String> types) {
-        if (types == null) return Collections.emptyList();
+        if (types == null) return List.of();
         List<MessageClassGenerator> generators = new ArrayList<>();
         for (String type : types) {
             switch (type) {
diff --git a/generator/src/main/java/org/apache/kafka/message/MessageSpec.java 
b/generator/src/main/java/org/apache/kafka/message/MessageSpec.java
index 5638b4c3dca..332cd3f030c 100644
--- a/generator/src/main/java/org/apache/kafka/message/MessageSpec.java
+++ b/generator/src/main/java/org/apache/kafka/message/MessageSpec.java
@@ -20,7 +20,6 @@ package org.apache.kafka.message;
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -56,14 +55,14 @@ public final class MessageSpec {
         this.struct = new StructSpec(name, validVersions, deprecatedVersions, 
fields);
         this.apiKey = apiKey == null ? Optional.empty() : Optional.of(apiKey);
         this.type = Objects.requireNonNull(type);
-        this.commonStructs = commonStructs == null ? Collections.emptyList() :
+        this.commonStructs = commonStructs == null ? List.of() :
                 List.copyOf(commonStructs);
         // If the struct has no valid versions (the typical use case is to 
completely remove support for
         // an existing protocol api while ensuring the api key id is not 
reused), we configure the spec
         // to effectively be empty
         if (struct.versions().empty()) {
             this.flexibleVersions = Versions.NONE;
-            this.listeners = Collections.emptyList();
+            this.listeners = List.of();
             this.latestVersionUnstable = false;
         } else {
             if (flexibleVersions == null) {
diff --git a/generator/src/main/java/org/apache/kafka/message/Target.java 
b/generator/src/main/java/org/apache/kafka/message/Target.java
index a43cf2c3e9f..7561da7df96 100644
--- a/generator/src/main/java/org/apache/kafka/message/Target.java
+++ b/generator/src/main/java/org/apache/kafka/message/Target.java
@@ -17,7 +17,7 @@
 
 package org.apache.kafka.message;
 
-import java.util.Collections;
+import java.util.List;
 import java.util.function.Function;
 
 public final class Target {
@@ -63,7 +63,7 @@ public final class Target {
         FieldType.ArrayType arrayType = (FieldType.ArrayType) field.type();
         FieldSpec elementField = new FieldSpec(field.name() + "Element",
                 field.versions().toString(),
-                Collections.emptyList(),
+                List.of(),
                 arrayType.elementType().toString(),
                 false,
                 Versions.NONE.toString(),
diff --git 
a/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/producer/RecordAccumulatorFlushBenchmark.java
 
b/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/producer/RecordAccumulatorFlushBenchmark.java
index add8ca935c3..0b47bc36f53 100644
--- 
a/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/producer/RecordAccumulatorFlushBenchmark.java
+++ 
b/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/producer/RecordAccumulatorFlushBenchmark.java
@@ -50,10 +50,10 @@ import org.openjdk.jmh.annotations.Warmup;
 
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -122,12 +122,12 @@ public class RecordAccumulatorFlushBenchmark {
         MetadataSnapshot metadataCache = new MetadataSnapshot(
             null,
             nodes,
-            Collections.singletonList(partMetadata),
-            Collections.emptySet(),
-            Collections.emptySet(),
-            Collections.emptySet(),
+            List.of(partMetadata),
+            Set.of(),
+            Set.of(),
+            Set.of(),
             null,
-            Collections.emptyMap()
+            Map.of()
         );
         return metadataCache.cluster();
     }

Reply via email to