This is an automated email from the ASF dual-hosted git repository.
He-Pin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-projection.git
The following commit(s) were added to refs/heads/main by this push:
new b2f8fc96 refactor: migrate Collections/Arrays.asList to Java 9+
collection factories (#543)
b2f8fc96 is described below
commit b2f8fc961d34abca3395c25357a3b246443c329c
Author: He-Pin(kerr) <[email protected]>
AuthorDate: Fri Jun 26 18:15:30 2026 +0800
refactor: migrate Collections/Arrays.asList to Java 9+ collection factories
(#543)
* refactor: migrate Collections/Arrays.asList to Java 9+ factory methods
Motivation:
Java 9+ provides List.of(), Map.of(), Set.of() factory methods that are
more concise and return truly immutable collections.
Modification:
Replace Arrays.asList() with List.of(), Collections.singletonList()
with List.of(), Collections.unmodifiableList(Arrays.asList()) with
List.of(), and Collections.singleton() with Set.of() across 10 files.
Update imports accordingly.
Result:
Cleaner code using Java 17 immutable collection factories.
Tests:
Not run - compile-only test file changes
References:
None - Java 17 API modernization
* fix: use Set.of(tag) instead of new HashSet<>(List.of(tag))
Motivation:
Review feedback suggesting Set.of(tag) is more direct and idiomatic
when the field type is Set<String> and no mutation is needed.
Modification:
Replace new HashSet<>(List.of(tag)) with Set.of(tag) in
EventGeneratorApp.java.
Result:
Cleaner code using the modern Set.of() factory directly.
---
.../pekko/projection/cassandra/CassandraProjectionTest.java | 3 +--
examples/src/test/java/jdocs/eventsourced/ShoppingCart.java | 5 ++---
examples/src/test/java/jdocs/guide/EventGeneratorApp.java | 4 ++--
examples/src/test/java/jdocs/guide/ShoppingCartAppTest.java | 4 ++--
examples/src/test/java/jdocs/jdbc/JdbcHibernateTest.java | 4 ++--
examples/src/test/java/jdocs/kafka/KafkaDocExample.java | 8 ++++----
.../projection/grpc/consumer/javadsl/ConsumerCompileTest.java | 6 ++----
.../projection/grpc/producer/javadsl/ProducerCompileTest.java | 4 ++--
.../src/test/java/jdocs/cassandra/WordCountDocExample.java | 4 ++--
.../java/org/apache/pekko/projection/jdbc/JdbcProjectionTest.java | 3 +--
10 files changed, 20 insertions(+), 25 deletions(-)
diff --git
a/cassandra-test/src/test/java/org/apache/pekko/projection/cassandra/CassandraProjectionTest.java
b/cassandra-test/src/test/java/org/apache/pekko/projection/cassandra/CassandraProjectionTest.java
index 61947ac2..a1c68e38 100644
---
a/cassandra-test/src/test/java/org/apache/pekko/projection/cassandra/CassandraProjectionTest.java
+++
b/cassandra-test/src/test/java/org/apache/pekko/projection/cassandra/CassandraProjectionTest.java
@@ -16,7 +16,6 @@ package org.apache.pekko.projection.cassandra;
import static org.junit.Assert.assertEquals;
import java.time.Duration;
-import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
@@ -100,7 +99,7 @@ public class CassandraProjectionTest extends JUnitSuite {
public static SourceProvider<Long, Envelope> sourceProvider(String entityId)
{
Source<Envelope, NotUsed> envelopes =
Source.from(
- Arrays.asList(
+ List.of(
new Envelope(entityId, 1, "abc"),
new Envelope(entityId, 2, "def"),
new Envelope(entityId, 3, "ghi"),
diff --git a/examples/src/test/java/jdocs/eventsourced/ShoppingCart.java
b/examples/src/test/java/jdocs/eventsourced/ShoppingCart.java
index 33345a06..f964e32b 100644
--- a/examples/src/test/java/jdocs/eventsourced/ShoppingCart.java
+++ b/examples/src/test/java/jdocs/eventsourced/ShoppingCart.java
@@ -202,8 +202,7 @@ public class ShoppingCart
// #slicingTags
public static final List<String> tags =
- Collections.unmodifiableList(
- Arrays.asList("carts-0", "carts-1", "carts-2", "carts-3",
"carts-4"));
+ List.of("carts-0", "carts-1", "carts-2", "carts-3", "carts-4");
// #slicingTags
@@ -212,7 +211,7 @@ public class ShoppingCart
public Set<String> tagsFor(Event event) {
int n = Math.abs(cartId.hashCode() % tags.size());
String selectedTag = tags.get(n);
- return Collections.singleton(selectedTag);
+ return Set.of(selectedTag);
}
// #tagging
diff --git a/examples/src/test/java/jdocs/guide/EventGeneratorApp.java
b/examples/src/test/java/jdocs/guide/EventGeneratorApp.java
index 20e7c408..8d32dbb0 100644
--- a/examples/src/test/java/jdocs/guide/EventGeneratorApp.java
+++ b/examples/src/test/java/jdocs/guide/EventGeneratorApp.java
@@ -60,7 +60,7 @@ public class EventGeneratorApp {
class Guardian {
static final List<String> PRODUCTS =
- Arrays.asList("cat t-shirt", "pekko t-shirt", "skis", "bowling shoes");
+ List.of("cat t-shirt", "pekko t-shirt", "skis", "bowling shoes");
static final int MAX_QUANTITY = 5;
static final int MAX_ITEMS = 3;
@@ -197,7 +197,7 @@ class Guardian {
public CartPersistentBehavior(PersistenceId persistenceId, String tag) {
super(persistenceId);
this.tag = tag;
- this.tags = new HashSet<>(Collections.singletonList(tag));
+ this.tags = Set.of(tag);
}
@Override
diff --git a/examples/src/test/java/jdocs/guide/ShoppingCartAppTest.java
b/examples/src/test/java/jdocs/guide/ShoppingCartAppTest.java
index d3d15ba2..f263097d 100644
--- a/examples/src/test/java/jdocs/guide/ShoppingCartAppTest.java
+++ b/examples/src/test/java/jdocs/guide/ShoppingCartAppTest.java
@@ -17,8 +17,8 @@ package jdocs.guide;
import static org.junit.Assert.assertEquals;
import java.time.Instant;
-import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
@@ -60,7 +60,7 @@ public class ShoppingCartAppTest {
Source<EventEnvelope<ShoppingCartEvents.Event>, NotUsed> events =
Source.from(
- Arrays.asList(
+ List.of(
createEnvelope(
new ShoppingCartEvents.ItemAdded("a7098", "bowling shoes",
1), 0L, 0L),
createEnvelope(
diff --git a/examples/src/test/java/jdocs/jdbc/JdbcHibernateTest.java
b/examples/src/test/java/jdocs/jdbc/JdbcHibernateTest.java
index d819387d..2da27adc 100644
--- a/examples/src/test/java/jdocs/jdbc/JdbcHibernateTest.java
+++ b/examples/src/test/java/jdocs/jdbc/JdbcHibernateTest.java
@@ -17,8 +17,8 @@ import static org.junit.Assert.assertEquals;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
-import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@@ -80,7 +80,7 @@ public class JdbcHibernateTest extends JUnitSuite {
public static SourceProvider<Long, Envelope> sourceProvider(String entityId)
{
Source<Envelope, NotUsed> envelopes =
Source.from(
- Arrays.asList(
+ List.of(
new Envelope(entityId, 1, "abc"),
new Envelope(entityId, 2, "def"),
new Envelope(entityId, 3, "ghi"),
diff --git a/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
b/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
index 573078a0..a7b60d3f 100644
--- a/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
+++ b/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
@@ -14,11 +14,11 @@
package jdocs.kafka;
import java.time.Duration;
-import java.util.Arrays;
-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.CompletionStage;
import java.util.function.Supplier;
@@ -116,7 +116,7 @@ public interface KafkaDocExample {
private final Source<WordEnvelope, NotUsed> src =
Source.from(
- Arrays.asList(
+ List.of(
new WordEnvelope(1L, "abc"),
new WordEnvelope(2L, "def"),
new WordEnvelope(3L, "ghi"),
@@ -199,7 +199,7 @@ public interface KafkaDocExample {
.withProperty(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
SourceProvider<MergeableOffset<Long>, ConsumerRecord<String, String>>
sourceProvider =
- KafkaSourceProvider.create(system, consumerSettings,
Collections.singleton(topicName));
+ KafkaSourceProvider.create(system, consumerSettings,
Set.of(topicName));
// #sourceProvider
return sourceProvider;
diff --git
a/grpc-test/src/test/java/org/apache/pekko/projection/grpc/consumer/javadsl/ConsumerCompileTest.java
b/grpc-test/src/test/java/org/apache/pekko/projection/grpc/consumer/javadsl/ConsumerCompileTest.java
index 61c5ffd6..89a01f59 100644
---
a/grpc-test/src/test/java/org/apache/pekko/projection/grpc/consumer/javadsl/ConsumerCompileTest.java
+++
b/grpc-test/src/test/java/org/apache/pekko/projection/grpc/consumer/javadsl/ConsumerCompileTest.java
@@ -13,8 +13,6 @@
package org.apache.pekko.projection.grpc.consumer.javadsl;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@@ -68,7 +66,7 @@ public class ConsumerCompileTest {
GrpcClientSettings.fromConfig(
system.settings().config().getConfig("pekko.projection.grpc.consumer.client"),
system),
- Collections.singletonList(ShoppingcartApiProto.javaDescriptor()));
+ List.of(ShoppingcartApiProto.javaDescriptor()));
ShardedDaemonProcess.get(system)
.init(
@@ -106,7 +104,7 @@ public class ConsumerCompileTest {
system.settings().config().getString("pekko.projection.grpc.consumer.stream-id");
List<ConsumerFilter.FilterCriteria> criteria =
- Arrays.asList(
+ List.of(
new ConsumerFilter.ExcludeTags(excludeTags),
new ConsumerFilter.IncludeTags(includeTags));
diff --git
a/grpc-test/src/test/java/org/apache/pekko/projection/grpc/producer/javadsl/ProducerCompileTest.java
b/grpc-test/src/test/java/org/apache/pekko/projection/grpc/producer/javadsl/ProducerCompileTest.java
index 203d0a5f..ec15cff1 100644
---
a/grpc-test/src/test/java/org/apache/pekko/projection/grpc/producer/javadsl/ProducerCompileTest.java
+++
b/grpc-test/src/test/java/org/apache/pekko/projection/grpc/producer/javadsl/ProducerCompileTest.java
@@ -23,8 +23,8 @@ import org.apache.pekko.japi.function.Function;
import org.apache.pekko.persistence.query.typed.EventEnvelope;
import org.apache.pekko.projection.grpc.producer.EventProducerSettings;
-import java.util.Collections;
import java.util.Optional;
+import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
@@ -60,7 +60,7 @@ public class ProducerCompileTest {
Function<HttpRequest, CompletionStage<HttpResponse>> eventProducerService =
EventProducer.grpcServiceHandler(system, source);
Function<HttpRequest, CompletionStage<HttpResponse>>
eventProducerServiceWithMultiple =
- EventProducer.grpcServiceHandler(system,
Collections.singleton(source));
+ EventProducer.grpcServiceHandler(system, Set.of(source));
@SuppressWarnings("unchecked")
Function<HttpRequest, CompletionStage<HttpResponse>> service =
diff --git
a/integration-examples/src/test/java/jdocs/cassandra/WordCountDocExample.java
b/integration-examples/src/test/java/jdocs/cassandra/WordCountDocExample.java
index c06fda77..9941d105 100644
---
a/integration-examples/src/test/java/jdocs/cassandra/WordCountDocExample.java
+++
b/integration-examples/src/test/java/jdocs/cassandra/WordCountDocExample.java
@@ -34,8 +34,8 @@ import org.apache.pekko.actor.typed.javadsl.Receive;
// #ActorHandler-imports
import java.time.Duration;
-import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
@@ -139,7 +139,7 @@ public interface WordCountDocExample {
private final Source<WordEnvelope, NotUsed> src =
Source.from(
- Arrays.asList(
+ List.of(
new WordEnvelope(1L, "abc"),
new WordEnvelope(2L, "def"),
new WordEnvelope(3L, "ghi"),
diff --git
a/jdbc/src/test/java/org/apache/pekko/projection/jdbc/JdbcProjectionTest.java
b/jdbc/src/test/java/org/apache/pekko/projection/jdbc/JdbcProjectionTest.java
index 68cfa5db..a8737fa4 100644
---
a/jdbc/src/test/java/org/apache/pekko/projection/jdbc/JdbcProjectionTest.java
+++
b/jdbc/src/test/java/org/apache/pekko/projection/jdbc/JdbcProjectionTest.java
@@ -22,7 +22,6 @@ import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.time.Duration;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -144,7 +143,7 @@ public class JdbcProjectionTest extends JUnitSuite {
public static SourceProvider<Long, Envelope> sourceProvider(String entityId)
{
Source<Envelope, NotUsed> envelopes =
Source.from(
- Arrays.asList(
+ List.of(
new Envelope(entityId, 1, "abc"),
new Envelope(entityId, 2, "def"),
new Envelope(entityId, 3, "ghi"),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]