This is an automated email from the ASF dual-hosted git repository.
pjfanning pushed a commit to branch 1.7.x
in repository https://gitbox.apache.org/repos/asf/pekko.git
The following commit(s) were added to refs/heads/1.7.x by this push:
new 359f122b04 filter messages from remember-entities store (#3411) (#3414)
359f122b04 is described below
commit 359f122b04eb6a9b69de49c3ab277a7accde63e8
Author: PJ Fanning <[email protected]>
AuthorDate: Fri Aug 7 16:45:40 2026 +0100
filter messages from remember-entities store (#3411) (#3414)
* filter messages from remember-entities store (#3411)
* filter messages from remember-entities store
* Update ExtractorAdapterSpec.scala
* Update ExtractorAdapterSpec.scala
* Update ExtractorAdapterSpec.scala
* Update ExtractorAdapterSpec.scala
* upgrade CI actions to fix build
* Update ExtractorAdapterSpec.scala
---
.github/workflows/binary-compatibility-checks.yml | 4 +-
.github/workflows/build-test-prValidation.yml | 16 ++--
.github/workflows/dependency-graph.yml | 2 +-
.github/workflows/generate-doc-check.yml | 4 +-
.github/workflows/headers.yml | 4 +-
.github/workflows/link-validator.yml | 4 +-
.github/workflows/nightly-1.0-builds.yml | 12 +--
.github/workflows/nightly-1.1-builds.yml | 12 +--
.github/workflows/nightly-builds-aeron.yml | 4 +-
.github/workflows/nightly-builds.yml | 12 +--
.github/workflows/publish-1.0-docs.yml | 4 +-
.github/workflows/publish-1.0-nightly.yml | 4 +-
.github/workflows/publish-1.1-docs.yml | 4 +-
.github/workflows/publish-1.1-nightly.yml | 4 +-
.github/workflows/publish-1.2-docs.yml | 4 +-
.github/workflows/publish-1.3-docs.yml | 2 +-
.github/workflows/publish-1.4-docs.yml | 2 +-
.github/workflows/publish-1.5-docs.yml | 2 +-
.github/workflows/publish-1.6-docs.yml | 2 +-
.github/workflows/publish-nightly.yml | 4 +-
.github/workflows/scala-steward.yml | 2 +-
.github/workflows/stage-release-candidate.yml | 2 +-
.github/workflows/timing-tests.yml | 4 +-
.../typed/internal/ClusterShardingImpl.scala | 15 +++-
.../typed/internal/ExtractorAdapterSpec.scala | 90 ++++++++++++++++++++++
25 files changed, 158 insertions(+), 61 deletions(-)
diff --git a/.github/workflows/binary-compatibility-checks.yml
b/.github/workflows/binary-compatibility-checks.yml
index 8e14d2ff10..2cfba341db 100644
--- a/.github/workflows/binary-compatibility-checks.yml
+++ b/.github/workflows/binary-compatibility-checks.yml
@@ -50,10 +50,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
diff --git a/.github/workflows/build-test-prValidation.yml
b/.github/workflows/build-test-prValidation.yml
index bae9739def..3dfead6922 100644
--- a/.github/workflows/build-test-prValidation.yml
+++ b/.github/workflows/build-test-prValidation.yml
@@ -33,7 +33,7 @@ jobs:
fetch-tags: true
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Setup Java 8
uses: actions/[email protected]
@@ -42,7 +42,7 @@ jobs:
java-version: 8
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Code style check
run: |-
@@ -74,10 +74,10 @@ jobs:
java-version: 8
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -137,10 +137,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -180,10 +180,10 @@ jobs:
java-version: 21
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
diff --git a/.github/workflows/dependency-graph.yml
b/.github/workflows/dependency-graph.yml
index 358c0d5ac9..f5de7a3826 100644
--- a/.github/workflows/dependency-graph.yml
+++ b/.github/workflows/dependency-graph.yml
@@ -35,7 +35,7 @@ jobs:
steps:
- uses: actions/[email protected]
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- uses:
scalacenter/sbt-dependency-submission@f43202114d7522a4b233e052f82c2eea8d658134
# v3.2.1
with:
configs-ignore: provided optional test TestJdk9 compile-internal
runtime-internal pr-validation multi-jvm scala-tool scala-doc-tool
diff --git a/.github/workflows/generate-doc-check.yml
b/.github/workflows/generate-doc-check.yml
index 4b696364f0..7bed714bf9 100644
--- a/.github/workflows/generate-doc-check.yml
+++ b/.github/workflows/generate-doc-check.yml
@@ -42,10 +42,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/headers.yml b/.github/workflows/headers.yml
index bda8e02c98..aa23acc82b 100644
--- a/.github/workflows/headers.yml
+++ b/.github/workflows/headers.yml
@@ -37,10 +37,10 @@ jobs:
java-version: 8
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Check headers
env:
diff --git a/.github/workflows/link-validator.yml
b/.github/workflows/link-validator.yml
index 667ff7f7b1..c0d420ca0d 100644
--- a/.github/workflows/link-validator.yml
+++ b/.github/workflows/link-validator.yml
@@ -36,10 +36,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Setup Coursier
uses: coursier/setup-action@fd1707a76b027efdfb66ca79318b4d29b72e5a02 #
v3.0.0
diff --git a/.github/workflows/nightly-1.0-builds.yml
b/.github/workflows/nightly-1.0-builds.yml
index 1d6add2c82..9e709e1a7a 100644
--- a/.github/workflows/nightly-1.0-builds.yml
+++ b/.github/workflows/nightly-1.0-builds.yml
@@ -35,10 +35,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -89,10 +89,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -139,10 +139,10 @@ jobs:
java-version: ${{ matrix.javaVersion }}
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
diff --git a/.github/workflows/nightly-1.1-builds.yml
b/.github/workflows/nightly-1.1-builds.yml
index 58fd83dad2..2dc279af65 100644
--- a/.github/workflows/nightly-1.1-builds.yml
+++ b/.github/workflows/nightly-1.1-builds.yml
@@ -35,10 +35,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -90,10 +90,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -141,10 +141,10 @@ jobs:
java-version: ${{ matrix.javaVersion }}
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
diff --git a/.github/workflows/nightly-builds-aeron.yml
b/.github/workflows/nightly-builds-aeron.yml
index bda6d0166d..0d5880ead4 100644
--- a/.github/workflows/nightly-builds-aeron.yml
+++ b/.github/workflows/nightly-builds-aeron.yml
@@ -42,10 +42,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
diff --git a/.github/workflows/nightly-builds.yml
b/.github/workflows/nightly-builds.yml
index 49fa8e375a..aa3a4ce304 100644
--- a/.github/workflows/nightly-builds.yml
+++ b/.github/workflows/nightly-builds.yml
@@ -26,10 +26,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -80,10 +80,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
@@ -132,10 +132,10 @@ jobs:
java-version: ${{ matrix.javaVersion }}
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
diff --git a/.github/workflows/publish-1.0-docs.yml
b/.github/workflows/publish-1.0-docs.yml
index 9817a09d1b..4aaa563180 100644
--- a/.github/workflows/publish-1.0-docs.yml
+++ b/.github/workflows/publish-1.0-docs.yml
@@ -46,10 +46,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/publish-1.0-nightly.yml
b/.github/workflows/publish-1.0-nightly.yml
index 88eac28e9f..82ab5adf0e 100644
--- a/.github/workflows/publish-1.0-nightly.yml
+++ b/.github/workflows/publish-1.0-nightly.yml
@@ -49,10 +49,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/publish-1.1-docs.yml
b/.github/workflows/publish-1.1-docs.yml
index f7d56532e6..18dd8ca3fb 100644
--- a/.github/workflows/publish-1.1-docs.yml
+++ b/.github/workflows/publish-1.1-docs.yml
@@ -46,10 +46,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/publish-1.1-nightly.yml
b/.github/workflows/publish-1.1-nightly.yml
index eb92f3e377..014123c101 100644
--- a/.github/workflows/publish-1.1-nightly.yml
+++ b/.github/workflows/publish-1.1-nightly.yml
@@ -49,10 +49,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/publish-1.2-docs.yml
b/.github/workflows/publish-1.2-docs.yml
index 3e45a03c81..03f05016ad 100644
--- a/.github/workflows/publish-1.2-docs.yml
+++ b/.github/workflows/publish-1.2-docs.yml
@@ -45,10 +45,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 #
v1.1.22.2.1.1.221.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf #
v1.5.6.2.1.1.221.1.22
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/publish-1.3-docs.yml
b/.github/workflows/publish-1.3-docs.yml
index a2230bb0f5..7f411d4272 100644
--- a/.github/workflows/publish-1.3-docs.yml
+++ b/.github/workflows/publish-1.3-docs.yml
@@ -47,7 +47,7 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
8.1.0
diff --git a/.github/workflows/publish-1.4-docs.yml
b/.github/workflows/publish-1.4-docs.yml
index 86aac3475c..bb20544253 100644
--- a/.github/workflows/publish-1.4-docs.yml
+++ b/.github/workflows/publish-1.4-docs.yml
@@ -47,7 +47,7 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
8.1.0
diff --git a/.github/workflows/publish-1.5-docs.yml
b/.github/workflows/publish-1.5-docs.yml
index 07a721293a..91fc10322b 100644
--- a/.github/workflows/publish-1.5-docs.yml
+++ b/.github/workflows/publish-1.5-docs.yml
@@ -47,7 +47,7 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
8.1.0
diff --git a/.github/workflows/publish-1.6-docs.yml
b/.github/workflows/publish-1.6-docs.yml
index b16ccb66d2..64e4018385 100644
--- a/.github/workflows/publish-1.6-docs.yml
+++ b/.github/workflows/publish-1.6-docs.yml
@@ -47,7 +47,7 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
8.1.0
diff --git a/.github/workflows/publish-nightly.yml
b/.github/workflows/publish-nightly.yml
index 6cf823fb3e..f6c23ce66b 100644
--- a/.github/workflows/publish-nightly.yml
+++ b/.github/workflows/publish-nightly.yml
@@ -48,10 +48,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/scala-steward.yml
b/.github/workflows/scala-steward.yml
index ebbf07fd00..6e06cde0d5 100644
--- a/.github/workflows/scala-steward.yml
+++ b/.github/workflows/scala-steward.yml
@@ -33,7 +33,7 @@ jobs:
if: github.repository == 'apache/pekko'
steps:
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Launch Scala Steward
uses: scala-steward-org/scala-steward-action@v2
env:
diff --git a/.github/workflows/stage-release-candidate.yml
b/.github/workflows/stage-release-candidate.yml
index 386c543a99..0d4d19765b 100644
--- a/.github/workflows/stage-release-candidate.yml
+++ b/.github/workflows/stage-release-candidate.yml
@@ -211,7 +211,7 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Install Graphviz
run: |-
diff --git a/.github/workflows/timing-tests.yml
b/.github/workflows/timing-tests.yml
index db003c10e8..cfd89c164e 100644
--- a/.github/workflows/timing-tests.yml
+++ b/.github/workflows/timing-tests.yml
@@ -36,10 +36,10 @@ jobs:
java-version: 11
- name: Install sbt
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
+ uses: sbt/setup-sbt@bfea3c5f48abd221b04a6df4798aa5eb8b6a2baf # v1.5.6
- name: Cache Coursier cache
- uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 #
v8.1.0
+ uses: coursier/cache-action@95e5b1029b6b86e7bac033ee44a0697d8a527d2d #
8.1.1
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
diff --git
a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala
b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala
index 026611912c..49f0f0ea95 100644
---
a/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala
+++
b/cluster-sharding-typed/src/main/scala/org/apache/pekko/cluster/sharding/typed/internal/ClusterShardingImpl.scala
@@ -41,6 +41,7 @@ import pekko.cluster.sharding.ShardCoordinator
import pekko.cluster.sharding.ShardCoordinator.ShardAllocationStrategy
import pekko.cluster.sharding.ShardRegion
import pekko.cluster.sharding.ShardRegion.{ StartEntity => ClassicStartEntity }
+import pekko.cluster.sharding.internal.RememberEntitiesShardStore
import pekko.cluster.sharding.typed.scaladsl.EntityContext
import pekko.cluster.typed.Cluster
import pekko.event.Logging
@@ -57,14 +58,18 @@ import pekko.util.JavaDurationConverters._
* INTERNAL API
* Extracts entityId and unwraps ShardingEnvelope and StartEntity messages.
* Other messages are delegated to the given `ShardingMessageExtractor`.
+ * Internal messages from the remember-entities store are filtered out
+ * and should never reach the user-supplied extractor.
*/
@InternalApi private[pekko] class ExtractorAdapter[E, M](delegate:
ShardingMessageExtractor[E, M])
extends ShardingMessageExtractor[Any, M] {
override def entityId(message: Any): String = {
message match {
- case ShardingEnvelope(entityId, _) => entityId // also covers
ClassicStartEntity in ShardingEnvelope
- case ClassicStartEntity(entityId) => entityId
- case msg =>
delegate.entityId(msg.asInstanceOf[E])
+ case ShardingEnvelope(entityId, _) => entityId //
also covers ClassicStartEntity in ShardingEnvelope
+ case ClassicStartEntity(entityId) => entityId
+ case _: RememberEntitiesShardStore.UpdateDone => null
+ case _: RememberEntitiesShardStore.RememberedEntities => null
+ case msg =>
delegate.entityId(msg.asInstanceOf[E])
}
}
@@ -78,7 +83,9 @@ import pekko.util.JavaDurationConverters._
case msg: ClassicStartEntity =>
// not really of type M, but erased and StartEntity is only handled
internally, not delivered to the entity
msg.asInstanceOf[M]
- case msg =>
+ case _: RememberEntitiesShardStore.UpdateDone =>
null.asInstanceOf[M]
+ case _: RememberEntitiesShardStore.RememberedEntities =>
null.asInstanceOf[M]
+ case msg =>
delegate.unwrapMessage(msg.asInstanceOf[E])
}
}
diff --git
a/cluster-sharding-typed/src/test/scala/org/apache/pekko/cluster/sharding/typed/internal/ExtractorAdapterSpec.scala
b/cluster-sharding-typed/src/test/scala/org/apache/pekko/cluster/sharding/typed/internal/ExtractorAdapterSpec.scala
new file mode 100644
index 0000000000..f13e1afcc6
--- /dev/null
+++
b/cluster-sharding-typed/src/test/scala/org/apache/pekko/cluster/sharding/typed/internal/ExtractorAdapterSpec.scala
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.pekko.cluster.sharding.typed.internal
+
+import scala.annotation.nowarn
+
+import org.apache.pekko
+import pekko.cluster.sharding.ShardRegion.{ StartEntity => ClassicStartEntity }
+import pekko.cluster.sharding.internal.RememberEntitiesShardStore
+import pekko.cluster.sharding.typed.ShardingEnvelope
+import pekko.cluster.sharding.typed.ShardingMessageExtractor
+
+import org.scalatest.matchers.should.Matchers
+import org.scalatest.wordspec.AnyWordSpecLike
+
+@nowarn
+class ExtractorAdapterSpec extends AnyWordSpecLike with Matchers {
+
+ private val extractor = new ShardingMessageExtractor[String, String] {
+ override def entityId(message: String): String =
+ if (message.startsWith("entity-")) message.substring(7,
message.indexOf(':'))
+ else null
+
+ override def shardId(entityId: String): String =
entityId.hashCode.abs.toString
+
+ override def unwrapMessage(message: String): String =
message.substring(message.indexOf(':') + 1)
+ }
+
+ private val adapter = new ExtractorAdapter(extractor)
+
+ "ExtractorAdapter" must {
+
+ "extract entity id from ShardingEnvelope" in {
+ adapter.entityId(ShardingEnvelope("entity-1", "hello")) should
===("entity-1")
+ }
+
+ "extract entity id from ClassicStartEntity" in {
+ adapter.entityId(ClassicStartEntity("entity-1")) should ===("entity-1")
+ }
+
+ "delegate to user extractor for user messages" in {
+ adapter.entityId("entity-1:hello") should ===("1")
+ }
+
+ "return null for RememberEntitiesShardStore.UpdateDone" in {
+ adapter.entityId(RememberEntitiesShardStore.UpdateDone(Set("entity-1"),
Set.empty)) should be(null)
+ }
+
+ "return null for RememberEntitiesShardStore.RememberedEntities" in {
+
adapter.entityId(RememberEntitiesShardStore.RememberedEntities(Set("entity-1",
"entity-2"))) should be(null)
+ }
+
+ "unwrap ShardingEnvelope message" in {
+ assert(adapter.unwrapMessage(ShardingEnvelope("entity-1", "hello")) ===
"hello")
+ }
+
+ "unwrap ClassicStartEntity message" in {
+ val msg = ClassicStartEntity("entity-1")
+ // widen to Any to avoid checkcast to M at the call site
(ClassicStartEntity is not actually M)
+ assert((adapter.unwrapMessage(msg): Any) === msg)
+ }
+
+ "delegate unwrapMessage to user extractor for user messages" in {
+ assert(adapter.unwrapMessage("entity-1:hello") === "hello")
+ }
+
+ "return null for unwrapMessage on UpdateDone" in {
+
assert(adapter.unwrapMessage(RememberEntitiesShardStore.UpdateDone(Set("entity-1"),
Set.empty)) === null)
+ }
+
+ "return null for unwrapMessage on RememberedEntities" in {
+
assert(adapter.unwrapMessage(RememberEntitiesShardStore.RememberedEntities(Set("entity-1")))
=== null)
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]