This is an automated email from the ASF dual-hosted git repository.
hepin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-projection.git
The following commit(s) were added to refs/heads/main by this push:
new 314c769 fix up some issues with akka naming (#36)
314c769 is described below
commit 314c76990b0d40e21b50830645ee1bf3a407c9a1
Author: PJ Fanning <[email protected]>
AuthorDate: Fri May 12 04:02:13 2023 +0100
fix up some issues with akka naming (#36)
* fix up some issues with akka naming
* more pekko naming
* Update project-info.conf
* Update snapshots.md
---
.github/release-drafter.yml | 9 ---
RELEASING.md | 29 ----------
build.sbt | 37 +++++-------
cassandra/src/main/resources/reference.conf | 10 ++--
.../internal/OffsetSerializationSpec.scala | 2 +-
.../org/apache/pekko/projection/Projection.scala | 4 +-
docs/release-train-issue-template.md | 66 ----------------------
docs/src/main/paradox/.htaccess | 2 -
docs/src/main/paradox/cassandra.md | 12 ++--
docs/src/main/paradox/classic.md | 4 +-
docs/src/main/paradox/durable-state.md | 8 +--
docs/src/main/paradox/eventsourced.md | 8 +--
docs/src/main/paradox/getting-started/index.md | 6 +-
.../paradox/getting-started/running-cluster.md | 8 +--
docs/src/main/paradox/getting-started/running.md | 8 +--
.../main/paradox/getting-started/setup-your-app.md | 4 +-
docs/src/main/paradox/getting-started/testing.md | 2 +-
docs/src/main/paradox/index.md | 2 +-
docs/src/main/paradox/jdbc.md | 4 +-
docs/src/main/paradox/kafka.md | 14 ++---
docs/src/main/paradox/overview.md | 37 ++++++------
docs/src/main/paradox/running.md | 12 ++--
docs/src/main/paradox/slick.md | 4 +-
docs/src/main/paradox/snapshots.md | 22 ++++----
docs/src/main/paradox/testing.md | 6 +-
.../src/test/java/jdocs/kafka/KafkaDocExample.java | 2 +-
.../test/scala/docs/kafka/KafkaDocExample.scala | 2 +-
.../kafka/internal/KafkaSourceProviderImpl.scala | 2 +-
project/Common.scala | 4 +-
project/PekkoDisciplinePlugin.scala | 2 +-
project/PekkoSnapshotRepository.scala | 2 +-
project/project-info.conf | 10 +++-
32 files changed, 114 insertions(+), 230 deletions(-)
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
deleted file mode 100644
index bd42e72..0000000
--- a/.github/release-drafter.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-# Config for https://github.com/toolmantim/release-drafter
-name-template: 'Akka Projections $NEXT_PATCH_VERSION'
-tag-template: '$NEXT_PATCH_VERSION'
-
-change-template: '- $TITLE #$NUMBER by [@$AUTHOR](https://github.com/$AUTHOR)'
-template: |
- ## Changes
-
- $CHANGES
diff --git a/RELEASING.md b/RELEASING.md
deleted file mode 100644
index 61ad50d..0000000
--- a/RELEASING.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Releasing
-
-Create a new issue from the [Release Train Issue
Template](docs/release-train-issue-template.md):
-
-```
-$ sh ./scripts/create-release-issue.sh 1.x.y
-```
-
-### Releasing only updated docs
-
-It is possible to release a revised documentation to the already existing
release.
-
-1. Create a new branch from a release tag. If a revised documentation is for
the `v1.0.1` release, then the name of the new branch should be `docs/v1.0.1`.
-1. Add and commit `version.sbt` file that pins the version to the one, that is
being revised. Also set `isSnapshot` to `false` for the stable documentation
links. For example:
- ```scala
- ThisBuild / version := "1.0.1"
- ThisBuild / isSnapshot := false
- ```
-1. Make all of the required changes to the documentation.
-1. Build documentation locally with:
- ```sh
- sbt docs/previewSite
- ```
-1. If the generated documentation looks good, send it to Gustav:
- ```sh
- rm -r docs/target/site
- sbt docs/publishRsync
- ```
-1. Do not forget to revert the `version.sbt` file and push the new branch back
to GitHub.
diff --git a/build.sbt b/build.sbt
index 3925504..bd5ed8d 100644
--- a/build.sbt
+++ b/build.sbt
@@ -153,39 +153,28 @@ lazy val docs = project
publish / skip := true,
makeSite := makeSite.dependsOn(LocalRootProject / ScalaUnidoc / doc).value,
previewPath := (Paradox / siteSubdirName).value,
- Preprocess / siteSubdirName :=
s"api/akka-projection/${projectInfoVersion.value}",
+ Preprocess / siteSubdirName :=
s"api/pekko-projection/${projectInfoVersion.value}",
Preprocess / sourceDirectory := (LocalRootProject / ScalaUnidoc / unidoc /
target).value,
- Paradox / siteSubdirName :=
s"docs/akka-projection/${projectInfoVersion.value}",
+ Paradox / siteSubdirName :=
s"docs/pekko-projection/${projectInfoVersion.value}",
Compile / paradoxProperties ++= Map(
- "project.url" -> "https://doc.akka.io/docs/akka-projection/current/",
- "canonical.base_url" ->
"https://doc.akka.io/docs/akka-projection/current",
+ "project.url" ->
"https://pekko.apache.org/docs/pekko-projection/current/",
+ "canonical.base_url" ->
"https://pekko.apache.org/docs/pekko-projection/current",
"github.base_url" ->
"https://github.com/apache/incubator-pekko-projection",
- "akka.version" -> Dependencies.Versions.pekko,
- // Akka
- "extref.akka.base_url" ->
s"https://doc.akka.io/docs/akka/${Dependencies.PekkoVersionInDocs}/%s",
- "scaladoc.akka.base_url" ->
s"https://doc.akka.io/api/akka/${Dependencies.PekkoVersionInDocs}/",
- "javadoc.akka.base_url" ->
s"https://doc.akka.io/japi/akka/${Dependencies.PekkoVersionInDocs}/",
- "javadoc.akka.link_style" -> "direct",
- // Alpakka
- "extref.alpakka.base_url" ->
s"https://doc.akka.io/docs/alpakka/${Dependencies.ConnectorsVersionInDocs}/%s",
- "scaladoc.akka.stream.alpakka.base_url" ->
s"https://doc.akka.io/api/alpakka/${Dependencies.ConnectorsVersionInDocs}/",
- "javadoc.akka.stream.alpakka.base_url" -> "",
- // Alpakka Kafka
- "extref.alpakka-kafka.base_url" ->
s"https://doc.akka.io/docs/alpakka-kafka/${Dependencies.ConnectorsKafkaVersionInDocs}/%s",
- "scaladoc.akka.kafka.base_url" ->
s"https://doc.akka.io/api/alpakka-kafka/${Dependencies.ConnectorsKafkaVersionInDocs}/",
- "javadoc.akka.kafka.base_url" -> "",
+ "pekko.version" -> Dependencies.Versions.pekko,
+ // Pekko
+ "extref.pekko.base_url" ->
s"https://pekko.apache.org/docs/pekko/${Dependencies.PekkoVersionInDocs}/%s",
+ "scaladoc.pekko.base_url" ->
s"https://pekko.apache.org/api/pekko/${Dependencies.PekkoVersionInDocs}/",
+ "javadoc.pekko.base_url" ->
s"https://pekko.apache.org/japi/pekko/${Dependencies.PekkoVersionInDocs}/",
+ "javadoc.pekko.link_style" -> "direct",
// Java
"javadoc.base_url" -> "https://docs.oracle.com/javase/8/docs/api/",
// Scala
"scaladoc.scala.base_url" ->
s"https://www.scala-lang.org/api/${scalaBinaryVersion.value}.x/",
- "scaladoc.akka.projection.base_url" -> s"/${(Preprocess /
siteSubdirName).value}/",
- "javadoc.akka.projection.base_url" -> "", // no Javadoc is published
- // Misc
- "extref.samples.base_url" ->
"https://developer.lightbend.com/start/?group=akka&project=%s",
- "extref.platform-guide.base_url" ->
"https://developer.lightbend.com/docs/akka-platform-guide/%s"),
+ "scaladoc.pekko.projection.base_url" -> s"/${(Preprocess /
siteSubdirName).value}/",
+ "javadoc.pekko.projection.base_url" -> ""),
paradoxGroups := Map("Language" -> Seq("Java", "Scala")),
paradoxRoots := List("index.html",
"getting-started/event-generator-app.html"),
- ApidocPlugin.autoImport.apidocRootPackage := "akka",
+ ApidocPlugin.autoImport.apidocRootPackage := "org.apache.pekko",
resolvers += Resolver.jcenterRepo,
publishRsyncArtifacts += (makeSite.value -> "www/"),
publishRsyncHost := "[email protected]",
diff --git a/cassandra/src/main/resources/reference.conf
b/cassandra/src/main/resources/reference.conf
index c653223..96fb813 100644
--- a/cassandra/src/main/resources/reference.conf
+++ b/cassandra/src/main/resources/reference.conf
@@ -9,12 +9,12 @@ pekko.projection.cassandra {
session-config-path = "pekko.projection.cassandra.session-config"
session-config {
- # The implementation of
`org.apache.pekko.stream.alpakka.cassandra.CqlSessionProvider`
+ # The implementation of
`org.apache.pekko.stream.connectors.cassandra.CqlSessionProvider`
# used for creating the `CqlSession`.
# It may optionally have a constructor with an
`ClassicActorSystemProvider` and `Config` parameters.
session-provider =
"org.apache.pekko.stream.connectors.cassandra.DefaultSessionProvider"
- # Configure Akka Discovery by setting a service name
+ # Configure Pekko Discovery by setting a service name
service-discovery {
name = ""
lookup-timeout = 1 s
@@ -35,7 +35,7 @@ pekko.projection.cassandra {
keyspace = "pekko_projection"
# the database table name for the offset store
table = "offset_store"
- # the database table name for the projection manangement data
+ # the database table name for the projection management data
management-table = "projection_management"
}
}
@@ -44,11 +44,11 @@ pekko.projection.cassandra {
//#profile
# See reference configuration at
#
https://docs.datastax.com/en/developer/java-driver/latest/manual/core/configuration/reference/
-# (check which exact version Akka Projections uses)
+# (check which exact version Pekko Projections uses)
datastax-java-driver {
# always set this to allow reconnection on startup if cassandra is down
- # not overridiable profile so this plugin can't override it for you
+ # not overridable profile so this plugin can't override it for you
# advanced.reconnect-on-init = true
profiles {
diff --git
a/core-test/src/test/scala/org/apache/pekko/projection/internal/OffsetSerializationSpec.scala
b/core-test/src/test/scala/org/apache/pekko/projection/internal/OffsetSerializationSpec.scala
index 6edc73d..53470af 100644
---
a/core-test/src/test/scala/org/apache/pekko/projection/internal/OffsetSerializationSpec.scala
+++
b/core-test/src/test/scala/org/apache/pekko/projection/internal/OffsetSerializationSpec.scala
@@ -118,7 +118,7 @@ class OffsetSerializationSpec
fromStorageRepresentation[query.TimeBasedUUID](uuidString,
TimeBasedUUIDManifest) shouldBe timeOffset
}
- "convert other offsets types with Akka Serialization" in {
+ "convert other offsets types with Pekko Serialization" in {
val offsetValue = "123-åäö"
val base64EncodedValue =
Base64.getEncoder.encodeToString(offsetValue.getBytes(StandardCharsets.UTF_8))
toStorageRepresentation(id, OtherOffset(offsetValue)) shouldBe
SingleOffset(id, "9999:a", base64EncodedValue)
diff --git a/core/src/main/scala/org/apache/pekko/projection/Projection.scala
b/core/src/main/scala/org/apache/pekko/projection/Projection.scala
index c2a86e0..02bcb20 100644
--- a/core/src/main/scala/org/apache/pekko/projection/Projection.scala
+++ b/core/src/main/scala/org/apache/pekko/projection/Projection.scala
@@ -29,13 +29,13 @@ import pekko.stream.scaladsl.RestartSource
import pekko.stream.scaladsl.Source
/**
- * The core abstraction in Akka Projections.
+ * The core abstraction in Pekko Projections.
*
* A projection instance may share the same name and [[Envelope]], but must
have a unique key. The key is used
* to achieve processing parallelism for a projection.
*
* For example, many projections may share the same name
"user-events-projection", but can process events for
- * different sharded entities within Akka Cluster, where key could be the Akka
Cluster shardId.
+ * different sharded entities within Pekko Cluster, where key could be the
Pekko Cluster shardId.
*
* @tparam Envelope The envelope type of the projection.
*/
diff --git a/docs/release-train-issue-template.md
b/docs/release-train-issue-template.md
deleted file mode 100644
index 2feb8d7..0000000
--- a/docs/release-train-issue-template.md
+++ /dev/null
@@ -1,66 +0,0 @@
-Release Apache Pekko Projections $VERSION$
-
-<!--
-
-(Liberally copied and adopted from Scala itself
https://github.com/scala/scala-dev/blob/b11cd2e4a4431de7867db6b39362bea8fa6650e7/notes/releases/template.md)
-
-For every release, make a copy of this file named after the release, and
expand the variables.
-Ideally replacing variables could become a script you can run on your local
machine.
-
-Variables to be expanded in this template:
-- $VERSION$=???
-
--->
-
-### before the release
-
-- [ ] Create a new milestone for the [next
version](https://github.com/akka/akka-projection/milestones)
-- [ ] Check [closed issues without a
milestone](https://github.com/akka/akka-projection/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20no%3Amilestone)
and either assign them the 'upcoming' release milestone or `invalid/not
release-bound`
-- [ ] Make sure all important / big PRs have been merged by now
-
-### Preparing release notes in the documentation / announcement
-
-- [ ] For non-patch releases: Create a news item draft PR on
[akka.github.com](https://github.com/akka/akka.github.com), using the milestone
-- [ ] Move all [unclosed
issues](https://github.com/akka/akka-projection/issues?q=is%3Aopen+is%3Aissue+milestone%3A$VERSION$)
for this milestone to the next milestone
-- [ ] Close the
[milestone](https://github.com/akka/akka-projection/milestones?direction=asc&sort=due_date)
-
-### Cutting the release
-
-- [ ] Make sure any running [Travis
builds](https://travis-ci.com/akka/akka-projection) for the commit you would
like to release have completed.
-- [ ] Create the [release
notes](https://github.com/akka/akka-projection/releases) with the next tag
version `v$VERSION$`, title, release description and contributors (the latter
generated by [`authors`](https://github.com/2m/authors) (eg. `authors v1.0.1
HEAD`))
-- [ ] Check that GitHub Actions release build has executed successfully
(GitHub Actions will start a [CI
build](https://github.com/akka/akka-projection/actions) for the new tag and
publish artifacts to Sonatype)
-
-### Check availability
-
-- [ ] Check [reference](https://doc.akka.io/docs/akka-projection/$VERSION$/)
documentation
-- [ ] Check the release on [Maven
central](https://repo1.maven.org/maven2/com/lightbend/akka/akka-projection-core_2.13/$VERSION$/)
-
-### When everything is on maven central
- - [ ] `ssh [email protected]`
- - [ ] update the `current` links on `repo.akka.io` by with the script:
- ```
- ./update-akka-projection-current-version.sh $VERSION$
- ```
- - [ ] check changes and commit the new version to the local git repository
- ```
- cd ~/www
- git add docs/akka-projection/current docs/akka-projection/$VERSION$
- git commit -m "akka-projection $VERSION$"
- ```
-
-### Announcements
-
-For non-patch (minor/major) releases:
-
-- [ ] Merge draft news item for
[akka.io](https://github.com/akka/akka.github.com)
-
-For patch and non-patch releases:
-
-- [ ] Send a release notification to [Lightbend
discuss](https://discuss.akka.io)
-- [ ] Tweet using the akkateam account (or ask someone to) about the new
release
-- [ ] Announce on [Gitter akka/akka](https://gitter.im/akka/akka-projection)
-- [ ] Announce internally
-
-### Afterwards
-
-- Close this issue
diff --git a/docs/src/main/paradox/.htaccess b/docs/src/main/paradox/.htaccess
deleted file mode 100644
index 1bbde4b..0000000
--- a/docs/src/main/paradox/.htaccess
+++ /dev/null
@@ -1,2 +0,0 @@
-# This file can be used for redirects like:
-# RedirectMatch 301 ^/docs/alpakka/([^/]+)/data-transformations/recordio.html
https://doc.akka.io/docs/alpakka/$1/data-transformations/simple-codecs.html
diff --git a/docs/src/main/paradox/cassandra.md
b/docs/src/main/paradox/cassandra.md
index 8cbf1ec..b08ce5a 100644
--- a/docs/src/main/paradox/cassandra.md
+++ b/docs/src/main/paradox/cassandra.md
@@ -21,7 +21,7 @@ To use the Cassandra module of Apache Pekko Projections add
the following depend
version=$project.version$
}
-Apache Pekko Projections requires Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections requires Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
@@project-info{ projectId="cassandra" }
@@ -270,7 +270,7 @@ The supported offset types of the `CassandraProjection` are:
* `String`
* @scala[`Int`]@java[Integer]
* `Long`
-* Any other type that has a configured Akka Serializer is stored with base64
encoding of the serialized bytes.
+* Any other type that has a configured Pekko Serializer is stored with base64
encoding of the serialized bytes.
@@@ note
@@ -299,7 +299,7 @@ One important setting is to configure the database driver
to retry the initial c
It is not enabled automatically as it is in the driver's reference.conf and is
not overridable in a profile.
-It is possible to share the same Cassandra session as [Apache Pekko
Persistence
Cassandra](https://doc.akka.io/docs/akka-persistence-cassandra/current/)
+It is possible to share the same Cassandra session as [Apache Pekko
Persistence
Cassandra](https://pekko.apache.org/docs/pekko-persistence-cassandra/current/)
by setting the `session-config-path`:
```
@@ -308,7 +308,7 @@ pekko.projection.cassandra {
}
```
-or share the same Cassandra session as [Alpakka
Cassandra](https://doc.akka.io/docs/alpakka/2.0/cassandra.html):
+or share the same Cassandra session as [Pekko Connectors
Cassandra](https://pekko.apache.org/docs/pekko-connectors/2.0/cassandra.html):
```
pekko.projection.cassandra {
@@ -331,7 +331,7 @@ datastax-java-driver {
}
```
-Alternatively, Akka Discovery can be used for finding the Cassandra server
contact points as described
-in the [Alpakka Cassandra
documentation](https://doc.akka.io/docs/alpakka/2.0/cassandra.html#using-akka-discovery).
+Alternatively, Pekko Discovery can be used for finding the Cassandra server
contact points as described
+in the [Pekkp Connectors Cassandra
documentation](https://pekko.apache.org/docs/pekko-connectors/current/cassandra.html#using-pekko-discovery).
Without any configuration it will use `localhost:9042` as default.
diff --git a/docs/src/main/paradox/classic.md b/docs/src/main/paradox/classic.md
index a6e7820..875839a 100644
--- a/docs/src/main/paradox/classic.md
+++ b/docs/src/main/paradox/classic.md
@@ -1,4 +1,4 @@
-# Akka Classic
+# Pekko Classic
Apache Pekko Projections can be used with the [new Actor
API](https://pekko.apache.org/docs/pekko/current/typed/actors.html) or
the [classic Actor
API](https://pekko.apache.org/docs/pekko/current/index-classic.html). The
documentation samples
@@ -17,7 +17,7 @@ Java
## PersistentActor
-@ref:[Events from Akka Classic Persistence](eventsourced.md) can be emitted
from `PersistentActor` and consumed by a
+@ref:[Events from Pekko Classic Persistence](eventsourced.md) can be emitted
from `PersistentActor` and consumed by a
Projection with the @apidoc[EventSourcedProvider$]. The events from the
`PersistentActor` must be tagged by wrapping
them in `org.apache.pekko.persistence.journal.Tagged`, which can be done in
the `PersistentActor` or by using
[Event
Adapters](https://pekko.apache.org/docs/pekko/current/persistence.html#event-adapters).
diff --git a/docs/src/main/paradox/durable-state.md
b/docs/src/main/paradox/durable-state.md
index 4ce75e1..d604c37 100644
--- a/docs/src/main/paradox/durable-state.md
+++ b/docs/src/main/paradox/durable-state.md
@@ -1,7 +1,7 @@
# Changes from Durable State
A typical source for Projections is the change stored with
@apidoc[DurableStateBehavior$] in [Apache Pekko
Persistence](https://pekko.apache.org/docs/pekko/current/typed/durable-state/persistence.html).
Durable state changes can be
[tagged](https://pekko.apache.org/docs/pekko/current/typed/durable-state/persistence.html#tagging)
and then
-consumed with the [changes
query](https://pekko.apache.org/docs/pekko/current/durable-state/persistence-query.html#using-query-with-akka-projections).
+consumed with the [changes
query](https://pekko.apache.org/docs/pekko/current/durable-state/persistence-query.html#using-query-with-pekko-projections).
Apache Pekko Projections has integration with `changes`, which is described
here.
@@ -15,7 +15,7 @@ To use the Durable State module of Apache Pekko Projections,
add the following d
version=$project.version$
}
-Apache Pekko Projections requires Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections requires Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
@@project-info{ projectId="durable-state" }
@@ -36,7 +36,7 @@ Scala
Java
: @@snip
[DurableStateStoreDocExample.java](/examples/src/test/java/jdocs/state/DurableStateStoreDocExample.java)
{ #changesByTagSourceProvider }
-This example is using the [DurableStateStore JDBC plugin for Apache Pekko
Persistence](https://doc.akka.io/docs/akka-persistence-jdbc/current/durable-state-store.html).
+This example is using the [DurableStateStore JDBC plugin for Apache Pekko
Persistence](https://pekko.apache.org/docs/pekko-persistence-jdbc/current/durable-state-store.html).
You will use the same plugin that you configured for the write side. The one
that is used by the `DurableStateBehavior`.
This source is consuming all the changes from the `Account`
`DurableStateBehavior` that are tagged with `"bank-accounts-1"`. In a
production application, you would need to start as many instances as the number
of different tags you used. That way you consume the changes from all entities.
@@ -56,7 +56,7 @@ Scala
Java
: @@snip
[DurableStateStoreDocExample.java](/examples/src/test/java/jdocs/state/DurableStateStoreBySlicesDocExample.java)
{ #changesBySlicesSourceProvider }
-This example is using the [R2DBC plugin for Apache Pekko
Persistence](https://doc.akka.io/docs/akka-persistence-r2dbc/current/query.html).
+This example is using the [R2DBC plugin for Apache Pekko
Persistence](https://pekko.apache.org/docs/pekko-persistence-r2dbc/current/query.html).
You will use the same plugin that you configured for the write side. The one
that is used by the `DurableStateBehavior`.
This source is consuming all the changes from the `Account`
`DurableStateBehavior` for the given slice range. In a production application,
you would need to start as many instances as the number of slice ranges. That
way you consume the changes from all entities.
diff --git a/docs/src/main/paradox/eventsourced.md
b/docs/src/main/paradox/eventsourced.md
index f9ddf73..9078325 100644
--- a/docs/src/main/paradox/eventsourced.md
+++ b/docs/src/main/paradox/eventsourced.md
@@ -15,7 +15,7 @@ To use the Event Sourced module of Apache Pekko Projections
add the following de
version=$project.version$
}
-Apache Pekko Projections require Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections require Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
@@project-info{ projectId="eventsourced" }
@@ -36,9 +36,9 @@ Scala
Java
: @@snip
[EventSourcedDocExample.java](/examples/src/test/java/jdocs/eventsourced/EventSourcedDocExample.java)
{ #eventsByTagSourceProvider }
-This example is using the [Cassandra plugin for Apache Pekko
Persistence](https://doc.akka.io/docs/akka-persistence-cassandra/current/read-journal.html),
+This example is using the [Cassandra plugin for Apache Pekko
Persistence](https://pekko.apache.org/docs/pekko-persistence-cassandra/current/read-journal.html),
but same code can be used for other Apache Pekko Persistence plugins by
replacing the `CassandraReadJournal.Identifier`.
-For example the [JDBC
plugin](https://doc.akka.io/docs/akka-persistence-jdbc/current/) can be used.
You will
+For example the [JDBC
plugin](https://pekko.apache.org/docs/pekko-persistence-jdbc/current/) can be
used. You will
use the same plugin as you have configured for the write side that is used by
the `EventSourcedBehavior`.
This source is consuming all events from the `ShoppingCart`
`EventSourcedBehavior` that are tagged with `"cart-1"`.
@@ -61,7 +61,7 @@ Scala
Java
: @@snip
[EventSourcedDocExample.java](/examples/src/test/java/jdocs/eventsourced/EventSourcedBySlicesDocExample.java)
{ #eventsBySlicesSourceProvider }
-This example is using the [R2DBC plugin for Apache Pekko
Persistence](https://doc.akka.io/docs/akka-persistence-r2dbc/current/query.html).
+This example is using the [R2DBC plugin for Apache Pekko
Persistence](https://pekko.apache.org/docs/pekko-persistence-r2dbc/current/query.html).
You will use the same plugin as you have configured for the write side that is
used by the `EventSourcedBehavior`.
This source is consuming all events from the `ShoppingCart`
`EventSourcedBehavior` for the given slice range. In a production application,
you would need to start as many instances as the number of slice ranges. That
way you consume the events from all entities.
diff --git a/docs/src/main/paradox/getting-started/index.md
b/docs/src/main/paradox/getting-started/index.md
index 065bb21..e885f6a 100644
--- a/docs/src/main/paradox/getting-started/index.md
+++ b/docs/src/main/paradox/getting-started/index.md
@@ -3,8 +3,6 @@
By now you should understand the fundamental concepts of how a Projection
works by reading about its @ref:[use cases](../use-cases.md).
This guide will briefly describe the basic components of a Projection and
instruct you step-by-step on how to build a functioning application.
-The example used in this guide is based on a more complete application that is
part of the @extref[Microservices with Akka
tutorial](platform-guide:microservices-tutorial/). It builds a full
@ref:[CQRS](../use-cases.md#command-query-responsibility-segregation-cqrs-)
(Command Query Responsibility Segregation) ES (Event Sourcing) system using a
combination of features from the Akka toolkit.
-
@@toc { depth=2 }
@@@ index
@@ -20,6 +18,6 @@ The example used in this guide is based on a more complete
application that is p
## Video Introduction
-This video on YouTube gives a short introduction to Apache Pekko Projections
for processing a stream of events or records from a source to a projected model
or external system.
+This video on YouTube gives a short introduction to Pekko Projections for
processing a stream of events or records from a source to a projected model or
external system.
-[](http://www.youtube.com/watch?v=0toyKxomdwo
"Watch video on YouTube")
+[](http://www.youtube.com/watch?v=0toyKxomdwo
"Watch video on YouTube")
diff --git a/docs/src/main/paradox/getting-started/running-cluster.md
b/docs/src/main/paradox/getting-started/running-cluster.md
index 2f16189..d3761fe 100644
--- a/docs/src/main/paradox/getting-started/running-cluster.md
+++ b/docs/src/main/paradox/getting-started/running-cluster.md
@@ -4,10 +4,10 @@ Running the Projection with [Apache Pekko
Cluster](https://pekko.apache.org/docs
A Projection running as a single Actor creates a single point of failure
(availability), when the app shuts down for any reason, the projection is no
longer running until it's started again.
A Projection running as a single Actor creates a processing bottleneck
(scalability), all messages from the @apidoc[SourceProvider] are processed by a
single Actor on a single machine.
By using a [Sharded Daemon
Process](https://pekko.apache.org/docs/pekko/current/typed/cluster-sharded-daemon-process.html#sharded-daemon-process)
with Apache Pekko Cluster and [Apache Pekko Cluster
Sharding](https://pekko.apache.org/docs/pekko/current/typed/cluster-sharding.html)
we can scale up the Projection and make it more available by running at least
as many instances of the same Projection as we have cluster members.
-As Akka cluster members join and leave the cluster the Sharded Daemon Process
will automatically scale and rebalance Sharded Daemon Processes (Projection
instances) accordingly.
+As Pekko cluster members join and leave the cluster the Sharded Daemon Process
will automatically scale and rebalance Sharded Daemon Processes (Projection
instances) accordingly.
Running the Projection as a Sharded Daemon Process requires no changes to our
projection handler and repository, we only need to change the way in which the
actor that runs the Projection is initialized.
-In the cluster version of this app we use a different configuration that
configures Akka cluster.
+In the cluster version of this app we use a different configuration that
configures Pekko cluster.
The main difference in the app itself is that we use
@apidoc[ShardedDaemonProcess] to initialize the Projection actor on our behalf.
Instead of creating single instances of our repository and projection handler
we create factory methods that encapsulate their instantiation along with the
sharded daemon actors (1 per tag) assigned to this cluster member.
@@ -58,7 +58,7 @@ When the app is running you will observe that the logs show
events written to di
[2020-08-13 15:18:58,383] [INFO] [docs.guide.EventGeneratorApp$] []
[EventGenerator-org.apache.pekko.actor.default-dispatcher-19] - id [6059e] tag
[carts-1] event: ItemQuantityAdjusted(6059e,cat t-shirt,1,2) MDC:
{persistencePhase=persist-evt,
pekkoAddress=pekko://[email protected]:25520,
pekkoSource=pekko://EventGenerator/system/sharding/shopping-cart-event/903/6059e,
sourceActorSystem=EventGenerator, persistenceId=6059e}
```
-Run the first member of your new Akka cluster:
+Run the first member of your new Pekko cluster:
<!-- run from repo:
sbt "examples/test:runMain docs.guide.ShoppingCartClusterApp 2551"
@@ -88,7 +88,7 @@ When the app is running you will observe that it will process
all the shopping c
...
```
-Run a second member to expand the Akka cluster member count to 2.
+Run a second member to expand the Pekko cluster member count to 2.
<!-- run from repo:
sbt "examples/test:runMain docs.guide.ShoppingCartClusterApp 2552"
diff --git a/docs/src/main/paradox/getting-started/running.md
b/docs/src/main/paradox/getting-started/running.md
index 60579cf..89e034a 100644
--- a/docs/src/main/paradox/getting-started/running.md
+++ b/docs/src/main/paradox/getting-started/running.md
@@ -4,7 +4,7 @@
This example requires a Cassandra database to run.
If you do not have a Cassandra database then you can run one locally as a
Docker container.
-To run a Cassandra database locally you can use
[`docker-compose`](https://docs.docker.com/compose/) to run the
[`docker-compose.yaml`](https://raw.githubusercontent.com/akka/akka-projection/master/docker-compose.yml)
found in the Projections project root.
+To run a Cassandra database locally you can use
[`docker-compose`](https://docs.docker.com/compose/) to run the
[`docker-compose.yaml`](https://raw.githubusercontent.com/apache/incubator-pekko-projection/main/docker-compose.yml)
found in the Projections project root.
The `docker-compose.yml` file references the latest [Cassandra Docker
Image](https://hub.docker.com/_/cassandra).
Change directory to the directory of the `docker-compose.yml` file and manage
a Cassandra container with the following commands.
@@ -16,7 +16,7 @@ Change directory to the directory of the `docker-compose.yml`
file and manage a
| Delete container state | `docker-compose --project-name getting-started rm
-f` |
| CQL shell (when running) | `docker run -it --network getting-started_default
--rm cassandra cqlsh cassandra` |
-To use a different Cassandra database update the [Cassandra driver's
contact-points
configuration](https://doc.akka.io/docs/akka-persistence-cassandra/current/configuration.html#contact-points-configuration)
found in `./examples/src/resources/guide-shopping-cart-app.conf`.
+To use a different Cassandra database update the [Cassandra driver's
contact-points
configuration](https://pekko.apache.org/docs/pekko-persistence-cassandra/current/configuration.html#contact-points-configuration)
found in `./examples/src/resources/guide-shopping-cart-app.conf`.
@@@
@@ -41,7 +41,7 @@ PRIMARY KEY (item_id));
```
Source events are generated with the `EventGeneratorApp`.
-This app is configured to use [Apache Pekko Persistence
Cassandra](https://doc.akka.io/docs/akka-persistence-cassandra/current/index.html)
and [Apache Pekko
Cluster](https://pekko.apache.org/docs/pekko/current/typed/cluster.html)
[Sharding](https://pekko.apache.org/docs/pekko/current/typed/cluster-sharding.html)
to persist random `ShoppingCartApp.Events` to a journal.
+This app is configured to use [Apache Pekko Persistence
Cassandra](https://pekko.apache.org/docs/pekko-persistence-cassandra/current/index.html)
and [Apache Pekko
Cluster](https://pekko.apache.org/docs/pekko/current/typed/cluster.html)
[Sharding](https://pekko.apache.org/docs/pekko/current/typed/cluster-sharding.html)
to persist random `ShoppingCartApp.Events` to a journal.
It will checkout a shopping cart with random items and quantities every 1
second.
The app will automatically create all the Apache Pekko Persistence
infrastructure tables in the `pekko` keyspace.
We won't go into any further detail about how this app functions because it
falls outside the scope of Apache Pekko Projections.
@@ -52,7 +52,7 @@ Add the Apache Pekko Cluster Sharding library to your project:
@@dependency [sbt,Maven,Gradle] {
group=org.apache.pekko
artifact=pekko-cluster-sharding-typed_$scala.binary.version$
-version=$akka.version$
+version=$pekko.version$
}
Add the @ref:[EventGeneratorApp](event-generator-app.md) to your project.
diff --git a/docs/src/main/paradox/getting-started/setup-your-app.md
b/docs/src/main/paradox/getting-started/setup-your-app.md
index 6fe6abe..8587baf 100644
--- a/docs/src/main/paradox/getting-started/setup-your-app.md
+++ b/docs/src/main/paradox/getting-started/setup-your-app.md
@@ -40,7 +40,7 @@ Java
@@@ note
For Jackson serialization to work correctly in Java projects you must use the
`javac` compiler parameter `-parameters` when building your project.
-In @scala[sbt you can add it your sbt project by adding it to the
`javacOptions` Setting: `javacOptions += "-parameters"`]@java[maven you can add
an argument to `maven-compiler-plugin` plugin under `compilerArgs` ([see an
example
here](https://github.com/akka/akka-samples/blob/2.6/akka-sample-cqrs-java/pom.xml#L136))].
+In @scala[sbt you can add it your sbt project by adding it to the
`javacOptions` Setting: `javacOptions += "-parameters"`]@java[maven you can add
an argument to `maven-compiler-plugin` plugin under `compilerArgs`].
@@@
@@ -55,7 +55,7 @@ Java
: @@snip
[ShoppingCartTags.java](/examples/src/test/java/jdocs/guide/ShoppingCartTags.java)
{ #guideTags }
Create the `ShoppingCartApp` with an
`org.apache.pekko.actor.typed.ActorSystem` (API:
@apidoc[pekko.actor.typed.ActorSystem]) for Projections to use.
-Create an empty [Guardian
Actor](https://doc.akka.io/docs/akka/2.6/typed/actor-lifecycle.html#the-guardian-actor)
(the root Actor of the `ActorSystem`).
+Create an empty [Guardian
Actor](https://pekko.apache.org/docs/pekko/current/typed/actor-lifecycle.html#the-guardian-actor)
(the root Actor of the `ActorSystem`).
We will populate this Actor in the following steps of the guide.
Note that we are using the @scala[`docs.scaladsl`]@java[`jdocs.scaladsl`]
package.
You may use any package, but we include this package in snippets throughout
the guide.
diff --git a/docs/src/main/paradox/getting-started/testing.md
b/docs/src/main/paradox/getting-started/testing.md
index 8993c2d..fd1e3e3 100644
--- a/docs/src/main/paradox/getting-started/testing.md
+++ b/docs/src/main/paradox/getting-started/testing.md
@@ -1,6 +1,6 @@
# Writing tests for a Projection
-Like other Akka libraries, Projections ships with a
@ref:[TestKit](../testing.md) that a user can include to assert the correctness
of their Projection handler implementation.
+Like other Pekko libraries, Projections ships with a
@ref:[TestKit](../testing.md) that a user can include to assert the correctness
of their Projection handler implementation.
Add the Projections TestKit dependency to your project:
@@dependency [sbt,Maven,Gradle] {
diff --git a/docs/src/main/paradox/index.md b/docs/src/main/paradox/index.md
index 2dd96e4..f3d9307 100644
--- a/docs/src/main/paradox/index.md
+++ b/docs/src/main/paradox/index.md
@@ -1,4 +1,4 @@
-# Akka Projection
+# Apache Pekko Projection
.
diff --git a/docs/src/main/paradox/jdbc.md b/docs/src/main/paradox/jdbc.md
index 0ec2d37..e6e36ca 100644
--- a/docs/src/main/paradox/jdbc.md
+++ b/docs/src/main/paradox/jdbc.md
@@ -18,7 +18,7 @@ To use the JDBC module of Apache Pekko Projections add the
following dependency
version=$project.version$
}
-Apache Pekko Projections require Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections require Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
@@project-info{ projectId="jdbc" }
@@ -252,7 +252,7 @@ The supported offset types of the `JdbcProjection` are:
* `String`
* `Int`
* `Long`
-* Any other type that has a configured Akka Serializer is stored with base64
encoding of the serialized bytes.
+* Any other type that has a configured Pekko Serializer is stored with base64
encoding of the serialized bytes.
## Configuration
diff --git a/docs/src/main/paradox/kafka.md b/docs/src/main/paradox/kafka.md
index 4f00591..f2268c1 100644
--- a/docs/src/main/paradox/kafka.md
+++ b/docs/src/main/paradox/kafka.md
@@ -1,6 +1,6 @@
# Messages from and to Kafka
-A typical source for Projections is messages from Kafka. Apache Pekko
Projections supports integration with Kafka using [Alpakka
Kafka](https://doc.akka.io/docs/alpakka-kafka/current/).
+A typical source for Projections is messages from Kafka. Apache Pekko
Projections supports integration with Kafka using [Pekko Connectors
Kafka](https://pekko.apache.org/docs/pekko-connectors-kafka/current/).
The @apidoc[KafkaSourceProvider$] uses consumer group assignments from Kafka
and can resume from offsets stored in a database.
@@ -27,7 +27,7 @@ To use the Kafka module of Apache Pekko Projections add the
following dependency
version=$project.version$
}
-Apache Pekko Projections require Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections require Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
@@project-info{ projectId="kafka" }
@@ -48,7 +48,7 @@ Scala
Java
: @@snip
[KafkaDocExample.java](/examples/src/test/java/jdocs/kafka/KafkaDocExample.java)
{ #imports #sourceProvider }
-Please consult the [Alpakka Kafka
documentation](https://doc.akka.io/docs/alpakka-kafka/current/consumer.html) for
+Please consult the [Pekko Connectors Kafka
documentation](https://pekko.apache.org/docs/pekko-connectors-kafka/current/consumer.html)
for
specifics around the `ConsumerSettings`. The `KafkaSourceProvider` is using
`Consumer.plainPartitionedManualOffsetSource`.
The `Projection` can then be defined as:
@@ -85,11 +85,11 @@ To mitigate that risk, you can increase the value of
`pekko.projection.kafka.rea
## Committing offset in Kafka
-When using the approach of committing the offsets back to Kafka the [Alpakka
Kafka
comittableSource](https://doc.akka.io/docs/alpakka-kafka/current/consumer.html)
can be used, and Apache Pekko Projections is not needed for that usage.
+When using the approach of committing the offsets back to Kafka the [Pekko
Connectors Kafka
comittableSource](https://pekko.apache.org/docs/pekko-connectors-kafka/current/consumer.html)
can be used, and Apache Pekko Projections is not needed for that usage.
## Sending to Kafka
-To send events to Kafka one can use @apidoc[SendProducer] or
@apidoc[Producer.flowWithContext](Producer$) method in Alpakka Kafka.
+To send events to Kafka one can use @apidoc[SendProducer] or
@apidoc[Producer.flowWithContext](Producer$) method in Pekko Connectors Kafka.
### Sending to Kafka using the SendProducer
@@ -109,7 +109,7 @@ Scala
Java
: @@snip
[KafkaDocExample.java](/examples/src/test/java/jdocs/kafka/KafkaDocExample.java)
{ #imports-producer #sendProducer }
-Please consult the [Alpakka Kafka
documentation](https://doc.akka.io/docs/alpakka-kafka/current/producer.html) for
+Please consult the [Pekko Connectors Kafka
documentation](https://pekko.apache.org/docs/pekko-connectors-kafka/current/producer.html)
for
specifics around the `ProducerSettings` and `SendProducer`.
The `Projection` is defined as:
@@ -132,7 +132,7 @@ Java
Alternatively, we can define the same projection using
@apidoc[Producer.flowWithContext](Producer$) in combination with
`atLeastOnceFlow`.
-The `WordSource` emits `WordEnvelope`s, therefore we will build a flow that
takes every single emitted `WordEnvelope` and map it into an Alpakka Kafka
@apidoc[ProducerMessage$]. The `ProducerMessage` factory methods can be used to
produce a single message, multiple messages, or pass through a message (skip a
message from being produced). The @apidoc[ProducerMessage$] will pass through
@apidoc[Producer.flowWithContext](Producer$) that will publish it to the Kafka
Topic and finally we map [...]
+The `WordSource` emits `WordEnvelope`s, therefore we will build a flow that
takes every single emitted `WordEnvelope` and map it into an Pekko Connectors
Kafka @apidoc[ProducerMessage$]. The `ProducerMessage` factory methods can be
used to produce a single message, multiple messages, or pass through a message
(skip a message from being produced). The @apidoc[ProducerMessage$] will pass
through @apidoc[Producer.flowWithContext](Producer$) that will publish it to
the Kafka Topic and finall [...]
Scala
: @@snip
[KafkaDocExample.scala](/examples/src/test/scala/docs/kafka/KafkaDocExample.scala)
{ #imports-producer #producerFlow }
diff --git a/docs/src/main/paradox/overview.md
b/docs/src/main/paradox/overview.md
index 1bc19be..5775d5d 100644
--- a/docs/src/main/paradox/overview.md
+++ b/docs/src/main/paradox/overview.md
@@ -31,8 +31,7 @@ messages or stored data.
@@@
-To see a complete example of an Apache Pekko Projections implementation review
the @ref:[Getting Started Guide](getting-started/index.md)
-or the @extref[Microservices with Akka
tutorial](platform-guide:microservices-tutorial/).
+To see a complete example of an Apache Pekko Projections implementation review
the @ref:[Getting Started Guide](getting-started/index.md).
## Dependencies
@@ -56,26 +55,26 @@ All of them share a dependency to `pekko-projection-core`:
@@project-info{ projectId="core" }
-### Akka version
+### Pekko version
-Apache Pekko Projections requires **Akka $akka.version$** or later. See
[Akka's Binary Compatibility
Rules](https://pekko.apache.org/docs/pekko/current/common/binary-compatibility-rules.html)
for details.
+Apache Pekko Projections requires **Pekko $pekko.version$** or later. See
[Pekko's Binary Compatibility
Rules](https://pekko.apache.org/docs/pekko/current/common/binary-compatibility-rules.html)
for details.
-It is recommended to use the latest patch version of Akka.
-It is important all Akka dependencies are in the same version, so it is
recommended to depend on
+It is recommended to use the latest patch version of Pekko.
+It is important all Pekko dependencies are in the same version, so it is
recommended to depend on
them explicitly to avoid problems with transient dependencies causing an
unlucky mix of versions. For example:
@@dependency[sbt,Gradle,Maven] {
- symbol=AkkaVersion
- value=$akka.version$
+ symbol=PekkoVersion
+ value=$pekko.version$
group=org.apache.pekko
artifact=pekko-cluster-sharding-typed_$scala.binary.version$
- version=AkkaVersion
- group2=com.typesafe.akka
- artifact2=akka-persistence-query_$scala.binary.version$
- version2=AkkaVersion
- group3=com.typesafe.akka
- artifact3=akka-discovery_$scala.binary.version$
- version3=AkkaVersion
+ version=PekkoVersion
+ group2=org.apache.pekko
+ artifact2=pekko-persistence-query_$scala.binary.version$
+ version2=PekkoVersion
+ group3=org.apache.pekko
+ artifact3=pekko-discovery_$scala.binary.version$
+ version3=PekkoVersion
}
### Transitive dependencies
@@ -86,15 +85,15 @@ The table below shows `pekko-projection-core`'s direct
dependencies and the seco
See the individual modules for their transitive dependencies.
-### Akka Classic
+### Pekko Classic
Apache Pekko Projections can be used with the [new Actor
API](https://pekko.apache.org/docs/pekko/current/typed/actors.html) or
the [classic Actor
API](https://pekko.apache.org/docs/pekko/current/index-classic.html). The
documentation samples
-show the new Actor API, and the @ref:[Akka Classic page](classic.md)
highlights how to use it with the classic
+show the new Actor API, and the @ref:[Pekko Classic page](classic.md)
highlights how to use it with the classic
Actor API.
## Contributing
-Please feel free to contribute to Akka and Apache Pekko Projections by
reporting issues you identify, or by suggesting changes to the code. Please
refer to our [contributing
instructions](https://github.com/akka/akka/blob/master/CONTRIBUTING.md) to
learn how it can be done.
+Please feel free to contribute to Apache Pekko and Apache Pekko Projections by
reporting issues you identify, or by suggesting changes to the code. Please
refer to our [contributing
instructions](https://github.com/akka/akka/blob/master/CONTRIBUTING.md) to
learn how it can be done.
-We want Akka to strive in a welcoming and open atmosphere and expect all
contributors to respect our [code of
conduct](https://www.lightbend.com/conduct).
+We want Pekko to strive in a welcoming and open atmosphere and expect all
contributors to respect our [code of
conduct](https://www.apache.org/foundation/policies/conduct.html).
diff --git a/docs/src/main/paradox/running.md b/docs/src/main/paradox/running.md
index 37cf002..0b3812b 100644
--- a/docs/src/main/paradox/running.md
+++ b/docs/src/main/paradox/running.md
@@ -9,18 +9,18 @@ To distribute the projection over the cluster we recommend
the use of [ShardedDa
@@dependency [sbt,Maven,Gradle] {
group=org.apache.pekko
artifact=pekko-cluster-sharding-typed_$scala.binary.version$
- version=$akka.version$
+ version=$pekko.version$
}
-Apache Pekko Projections require Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections require Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
-For more information on using Apache Pekko Cluster consult Akka's reference
documentation on [Apache Pekko
Cluster](https://pekko.apache.org/docs/pekko/current/typed/index-cluster.html)
and [Apache Pekko Cluster
Sharding](https://pekko.apache.org/docs/pekko/current/typed/cluster-sharding.html).
+For more information on using Apache Pekko Cluster consult Pekko's reference
documentation on [Apache Pekko
Cluster](https://pekko.apache.org/docs/pekko/current/typed/index-cluster.html)
and [Apache Pekko Cluster
Sharding](https://pekko.apache.org/docs/pekko/current/typed/cluster-sharding.html).
## Running with Sharded Daemon Process
The Sharded Daemon Process can be used to distribute `n` instances of a given
Projection across the cluster. Therefore, it's important that each Projection
instance consumes a subset of the stream of envelopes.
-How the subset is created depends on the kind of source we consume. If it's an
Alpakka Kafka source, this is done by Kafka consumer groups. When consuming
from Apache Pekko Persistence Journal, the events must be sliced by tagging
them as demonstrated in the example below.
+How the subset is created depends on the kind of source we consume. If it's an
Pekko Connectors Kafka source, this is done by Kafka consumer groups. When
consuming from Apache Pekko Persistence Journal, the events must be sliced by
tagging them as demonstrated in the example below.
### Tagging Events in EventSourcedBehavior
@@ -44,11 +44,11 @@ planned maximum number of cluster nodes. It doesn't have to
be exact.
We will use those tags to query the journal and create as many Projections
instances, and distribute them in the cluster.
@@@ warning
-When using [Apache Pekko Persistence Cassandra
plugin](https://doc.akka.io/docs/akka-persistence-cassandra/current/) you should
+When using [Apache Pekko Persistence Cassandra
plugin](https://pekko.apache.org/docs/pekko-persistence-cassandra/current/) you
should
not use too many tags for each event. Each tag will result in a copy of the
event in a separate table and
that can impact write performance. Typically, you would use 1 tag per event as
illustrated here. Additional
filtering of events can be done in the Projection handler if it doesn't have
to act on certain events.
-The [JDBC plugin](https://doc.akka.io/docs/akka-persistence-jdbc/current/)
doesn't have this constraint.
+The [JDBC
plugin](https://pekko.apache.org/docs/pekko-persistence-jdbc/current/) doesn't
have this constraint.
@@@
See also the [Apache Pekko reference documentation for
tagging](https://pekko.apache.org/docs/pekko/current/typed/persistence.html#tagging).
diff --git a/docs/src/main/paradox/slick.md b/docs/src/main/paradox/slick.md
index 0d16bc4..19c7574 100644
--- a/docs/src/main/paradox/slick.md
+++ b/docs/src/main/paradox/slick.md
@@ -29,7 +29,7 @@ To use the Slick module of Apache Pekko Projections add the
following dependency
version=$project.version$
}
-Apache Pekko Projections require Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections require Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
@@project-info{ projectId="slick" }
@@ -201,7 +201,7 @@ The supported offset types of the `SlickProjection` are:
* `String`
* `Int`
* `Long`
-* Any other type that has a configured Akka Serializer is stored with base64
encoding of the serialized bytes.
+* Any other type that has a configured Pekko Serializer is stored with base64
encoding of the serialized bytes.
## Configuration
diff --git a/docs/src/main/paradox/snapshots.md
b/docs/src/main/paradox/snapshots.md
index 57e63b6..758f6c2 100644
--- a/docs/src/main/paradox/snapshots.md
+++ b/docs/src/main/paradox/snapshots.md
@@ -1,13 +1,12 @@
---
-project.description: Snapshot builds of Akka Projection are provided via the
Sonatype snapshot repository.
+project.description: Snapshot builds of Pekko Projection are provided via the
Sonatype snapshot repository.
---
# Snapshots
-[snapshots-badge]:
https://img.shields.io/nexus/s/com.lightbend.akka/akka-projection-core_2.13?server=https%3A%2F%2Foss.sonatype.org
-[snapshots]:
https://oss.sonatype.org/content/repositories/snapshots/com/lightbend/akka/akka-projection-core_2.13/
+[snapshots]:
https://repository.apache.org/content/groups/snapshots/org/apache/pekko/pekko-projection-core_2.13/
Snapshots are published to the Sonatype Snapshot repository after every
successful build on master.
-Add the following to your project build definition to resolve Akka
Projection's snapshots:
+Add the following to your project build definition to resolve Pekko
Projection's snapshots:
## Configure repository
@@ -19,7 +18,7 @@ Maven
<repository>
<id>snapshots-repo</id>
<name>Sonatype snapshots</name>
- <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ <url>https://repository.apache.org/content/groups/snapshots/</url>
</repository>
</repositories>
...
@@ -28,24 +27,25 @@ Maven
sbt
: ```scala
- resolvers += Resolver.sonatypeRepo("snapshots")
+ // sbt 1.9.0+
+ resolvers += Resolver.ApacheMavenSnapshotsRepo
+ // use the following if you are using an older version of sbt
+ resolvers += "apache-snapshot-repository" at
"https://repository.apache.org/content/repositories/snapshots"
```
Gradle
: ```gradle
repositories {
maven {
- url "https://oss.sonatype.org/content/repositories/snapshots"
+ url "https://repository.apache.org/content/groups/snapshots/"
}
}
```
## Documentation
-The [snapshot
documentation](https://doc.akka.io/docs/akka-projection/snapshot) is updated
with every snapshot build.
+The [snapshot
documentation](https://pekko.apache.org/docs/pekko-projection/snapshot) is
updated with every snapshot build.
## Versions
-Latest published snapshot version is [![snapshots-badge][]][snapshots]
-
-The snapshot repository is cleaned from time to time with no further notice.
Check [Sonatype snapshots Akka Projection
files](https://oss.sonatype.org/content/repositories/snapshots/com/lightbend/akka/)
to see what versions are currently available.
+The snapshot repository is cleaned from time to time with no further notice.
Check [Sonatype snapshots Pekko Projection
files](https://repository.apache.org/content/groups/snapshots/org/apache/pekko/)
to see what versions are currently available.
diff --git a/docs/src/main/paradox/testing.md b/docs/src/main/paradox/testing.md
index 906efaf..e4744d3 100644
--- a/docs/src/main/paradox/testing.md
+++ b/docs/src/main/paradox/testing.md
@@ -13,7 +13,7 @@ To use the Apache Pekko Projections TestKit add the following
dependency in your
scope="test"
}
-Apache Pekko Projections require Akka $akka.version$ or later, see @ref:[Akka
version](overview.md#akka-version).
+Apache Pekko Projections require Pekko $pekko.version$ or later, see
@ref:[Pekko version](overview.md#pekko-version).
@@project-info{ projectId="testkit" }
@@ -25,7 +25,7 @@ The table below shows `pekko-projection-testkit`'s direct
dependencies and the s
## Initializing the Projection TestKit
-The Projection TestKit requires an instance of `ActorTestKit`. We recommend
using Akka's @scala[`ScalaTestWithActorTestKit`]@java[`TestKitJunitResource`]
+The Projection TestKit requires an instance of `ActorTestKit`. We recommend
using Pekko's @scala[`ScalaTestWithActorTestKit`]@java[`TestKitJunitResource`]
Scala
: @@snip
[TestKitDocExample.scala](/examples/src/test/scala/docs/testkit/TestKitDocExample.scala)
{ #testkit-import #testkit }
@@ -76,7 +76,7 @@ The @apidoc[TestProjection] allows you to isolate the runtime
of your handler so
Using a `TestProjection` has the added benefit of being fast, since you can
run everything within the JVM that runs your tests.
Alongside the `TestProjection` is the @apidoc[TestSourceProvider] which can be
used to provide test data to the `TestProjection` running the handler.
-Test data can be represented in an akka streams
@apidoc[pekko.stream.(javadsl|scaladsl).Source] that is passed to the
`TestSourceProvider` constructor.
+Test data can be represented in a Pekko streams
@apidoc[pekko.stream.(javadsl|scaladsl).Source] that is passed to the
`TestSourceProvider` constructor.
Scala
: @@snip
[TestKitDocExample.scala](/examples/src/test/scala/docs/testkit/TestKitDocExample.scala)
{ #testkit-testprojection }
diff --git a/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
b/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
index a225f61..9dada98 100644
--- a/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
+++ b/examples/src/test/java/jdocs/kafka/KafkaDocExample.java
@@ -264,7 +264,7 @@ public interface KafkaDocExample {
ProducerSettings<String, String> producerSettings =
ProducerSettings.create(system, new StringSerializer(), new
StringSerializer())
.withBootstrapServers(bootstrapServers);
- // FIXME classicSystem might not be needed in later Alpakka Kafka version?
+ // FIXME classicSystem might not be needed in later Pekko Connectors Kafka
version?
SendProducer<String, String> sendProducer =
new SendProducer<>(producerSettings, system.classicSystem());
// #sendProducer
diff --git a/examples/src/test/scala/docs/kafka/KafkaDocExample.scala
b/examples/src/test/scala/docs/kafka/KafkaDocExample.scala
index 9a090d5..9305cfc 100644
--- a/examples/src/test/scala/docs/kafka/KafkaDocExample.scala
+++ b/examples/src/test/scala/docs/kafka/KafkaDocExample.scala
@@ -225,7 +225,7 @@ object KafkaDocExample {
private val producerSettings =
ProducerSettings(system, new StringSerializer, new StringSerializer)
.withBootstrapServers(bootstrapServers)
- import pekko.actor.typed.scaladsl.adapter._ // FIXME might not be needed
in later Alpakka Kafka version?
+ import pekko.actor.typed.scaladsl.adapter._ // FIXME might not be needed
in later Pekko Connectors Kafka version?
private val sendProducer = SendProducer(producerSettings)(system.toClassic)
// #sendProducer
diff --git
a/kafka/src/main/scala/org/apache/pekko/projection/kafka/internal/KafkaSourceProviderImpl.scala
b/kafka/src/main/scala/org/apache/pekko/projection/kafka/internal/KafkaSourceProviderImpl.scala
index b40cdac..cdc9895 100644
---
a/kafka/src/main/scala/org/apache/pekko/projection/kafka/internal/KafkaSourceProviderImpl.scala
+++
b/kafka/src/main/scala/org/apache/pekko/projection/kafka/internal/KafkaSourceProviderImpl.scala
@@ -79,7 +79,7 @@ import org.apache.kafka.common.record.TimestampType
private val subscription =
Subscriptions.topics(topics).withPartitionAssignmentHandler(partitionHandler)
private[projection] var control: Option[Consumer.Control] = None
// assigned partitions is only ever mutated by consumer rebalance partition
handler executed in the Kafka consumer
- // poll thread in the Alpakka Kafka `KafkaConsumerActor`
+ // poll thread in the Pekko Connectors Kafka `KafkaConsumerActor`
@volatile private var assignedPartitions: Set[TopicPartition] = Set.empty
protected[internal] def _source(
diff --git a/project/Common.scala b/project/Common.scala
index d67e7a6..a18af0f 100644
--- a/project/Common.scala
+++ b/project/Common.scala
@@ -47,10 +47,10 @@ object Common extends AutoPlugin {
s"https://github.com/apache/incubator-pekko-projection/tree/${branch}€{FILE_PATH_EXT}#L€{FILE_LINE}"
},
"-skip-packages",
- "akka.pattern" // for some reason Scaladoc creates this
+ "org.apache.pekko.pattern" // for some reason Scaladoc creates this
),
autoAPIMappings := true,
- apiURL :=
Some(url(s"https://doc.akka.io/api/akka-projection/${projectInfoVersion.value}")),
+ apiURL :=
Some(url(s"https://pekko.apache.org/api/pekko-projection/${projectInfoVersion.value}")),
// show full stack traces and test case durations
Test / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-oDF"),
// -a Show stack traces and exception class name for AssertionErrors.
diff --git a/project/PekkoDisciplinePlugin.scala
b/project/PekkoDisciplinePlugin.scala
index f1c461c..e16ca53 100644
--- a/project/PekkoDisciplinePlugin.scala
+++ b/project/PekkoDisciplinePlugin.scala
@@ -55,7 +55,7 @@ object PekkoDisciplinePlugin extends AutoPlugin {
}).toSeq,
// Discipline is not needed for the docs compilation run (which uses
// different compiler phases from the regular run), and in particular
- // '-Ywarn-unused:explicits' breaks 'sbt ++2.13.0-M5 akka-actor/doc'
+ // '-Ywarn-unused:explicits' is an issue
// https://github.com/akka/akka/issues/26119
Compile / doc / scalacOptions --= disciplineScalacOptions.toSeq :+
"-Xfatal-warnings",
// having discipline warnings in console is just an annoyance
diff --git a/project/PekkoSnapshotRepository.scala
b/project/PekkoSnapshotRepository.scala
index 936244f..3f0e23d 100644
--- a/project/PekkoSnapshotRepository.scala
+++ b/project/PekkoSnapshotRepository.scala
@@ -11,7 +11,7 @@ import sbt.Keys._
import sbt._
/**
- * This plugins conditionally adds Akka snapshot repository.
+ * This plugins conditionally adds Pekko snapshot repository.
*/
object PekkoSnapshotRepositories extends AutoPlugin {
override def trigger: PluginTrigger = allRequirements
diff --git a/project/project-info.conf b/project/project-info.conf
index f909616..c6836b5 100644
--- a/project/project-info.conf
+++ b/project/project-info.conf
@@ -2,9 +2,9 @@
project-info {
version: "current"
- scala-versions: ["2.13"]
+ scala-versions: ["2.12", "2.13"]
shared-info {
- jdk-versions: ["AdoptOpenJDK 8", "AdoptOpenJDK 11"]
+ jdk-versions: ["OpenJDK 8", "OpenJDK 11", "OpenJDK 17"]
snapshots: {
url: "snapshots.html"
text: "Snapshots are available"
@@ -20,11 +20,15 @@ project-info {
}
api-docs: [
{
- url:
"https://doc.akka.io/api/akka-projection/"${project-info.version}"/akka/projection/"
+ url:
"https://pekko.apache.org/api/pekko-projection/"${project-info.version}"/org/apache/pekko/projection/"
text: "API (Scaladoc)"
}
]
forums: [
+ {
+ text: "Apache Pekko User mailing list"
+ url: "https://lists.apache.org/[email protected]"
+ }
{
text: "Apache Pekko Dev mailing list"
url: "https://lists.apache.org/[email protected]"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]