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.git
The following commit(s) were added to refs/heads/main by this push:
new d4df90cf69 chore: add Java external shard allocation factory (#2954)
d4df90cf69 is described below
commit d4df90cf6914b7e027f59a24f0d559087523c5da
Author: He-Pin(kerr) <[email protected]>
AuthorDate: Sun May 10 00:18:24 2026 +0800
chore: add Java external shard allocation factory (#2954)
Motivation:
Upstream commit
https://github.com/akka/akka-core/commit/25dd5f7edaa72a28d4e5e26eb12f8f03b8803396,
which is now Apache licensed, added a Java factory for external shard
allocation without requiring callers to pass the default timeout explicitly.
Modification:
Add the Java API create(systemProvider, typeName) overload and update the
Java compile-only example to use it.
Result:
Java users get parity with the Scala factory that uses the default timeout.
Tests:
- git diff --check / passed
- scalafmt --mode diff-ref=origin/main / passed
- scalafmt --list --mode diff-ref=origin/main / passed
- JDK 17 sbt "cluster-sharding-typed / javafmtAll" / passed
- sbt "cluster-sharding / Test / compile" "cluster-sharding-typed / Test /
compile" "cluster-sharding / mimaReportBinaryIssues" / passed
- sbt "+ cluster-sharding / mimaReportBinaryIssues" / passed
References:
Refs
https://github.com/akka/akka-core/commit/25dd5f7edaa72a28d4e5e26eb12f8f03b8803396
---
.../sharding/typed/ExternalShardAllocationCompileOnlyTest.java | 4 +---
.../cluster/sharding/external/ExternalShardAllocationStrategy.scala | 6 ++++++
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git
a/cluster-sharding-typed/src/test/java/jdocs/org/apache/pekko/cluster/sharding/typed/ExternalShardAllocationCompileOnlyTest.java
b/cluster-sharding-typed/src/test/java/jdocs/org/apache/pekko/cluster/sharding/typed/ExternalShardAllocationCompileOnlyTest.java
index fd6947841b..fbaf74722e 100644
---
a/cluster-sharding-typed/src/test/java/jdocs/org/apache/pekko/cluster/sharding/typed/ExternalShardAllocationCompileOnlyTest.java
+++
b/cluster-sharding-typed/src/test/java/jdocs/org/apache/pekko/cluster/sharding/typed/ExternalShardAllocationCompileOnlyTest.java
@@ -15,7 +15,6 @@ package jdocs.org.apache.pekko.cluster.sharding.typed;
import static
jdocs.org.apache.pekko.cluster.sharding.typed.ShardingCompileOnlyTest.Counter;
-import java.time.Duration;
import java.util.concurrent.CompletionStage;
import org.apache.pekko.Done;
import org.apache.pekko.actor.Address;
@@ -43,8 +42,7 @@ public class ExternalShardAllocationCompileOnlyTest {
sharding.init(
Entity.of(typeKey, ctx -> Counter.create(ctx.getEntityId()))
.withAllocationStrategy(
- ExternalShardAllocationStrategy.create(
- system, typeKey.name(), Duration.ofSeconds(5))));
+ ExternalShardAllocationStrategy.create(system,
typeKey.name())));
// #entity
// #client
diff --git
a/cluster-sharding/src/main/scala/org/apache/pekko/cluster/sharding/external/ExternalShardAllocationStrategy.scala
b/cluster-sharding/src/main/scala/org/apache/pekko/cluster/sharding/external/ExternalShardAllocationStrategy.scala
index 847c867d5b..cd126c0681 100644
---
a/cluster-sharding/src/main/scala/org/apache/pekko/cluster/sharding/external/ExternalShardAllocationStrategy.scala
+++
b/cluster-sharding/src/main/scala/org/apache/pekko/cluster/sharding/external/ExternalShardAllocationStrategy.scala
@@ -61,6 +61,12 @@ object ExternalShardAllocationStrategy {
new ExternalShardAllocationStrategy(systemProvider, typeName)(timeout)
}
+ /**
+ * Java API: Create an [[ExternalShardAllocationStrategy]]
+ */
+ def create(systemProvider: ClassicActorSystemProvider, typeName: String):
ExternalShardAllocationStrategy =
+ this.apply(systemProvider, typeName)
+
/**
* Java API: Create an [[ExternalShardAllocationStrategy]]
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]