From f995a7d009219922297ad79794e752bc6f38330e Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Fri, 2 Feb 2018 14:17:19 +0100 Subject: [PATCH] remove PersistentBehaviors.persistentEntity --- .../typed/ClusterShardingSettings.scala | 1 + .../ClusterShardingPersistenceSpec.scala | 12 +++++------ .../typed/scaladsl/PersistentBehaviors.scala | 20 ++++--------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/akka-cluster-sharding-typed/src/main/scala/akka/cluster/sharding/typed/ClusterShardingSettings.scala b/akka-cluster-sharding-typed/src/main/scala/akka/cluster/sharding/typed/ClusterShardingSettings.scala index 1bd430357d..a05cb244a1 100644 --- a/akka-cluster-sharding-typed/src/main/scala/akka/cluster/sharding/typed/ClusterShardingSettings.scala +++ b/akka-cluster-sharding-typed/src/main/scala/akka/cluster/sharding/typed/ClusterShardingSettings.scala @@ -241,6 +241,7 @@ final class ClusterShardingSettings( s"valid values are '${StateStoreModeDData.name}' or '${StateStoreModePersistence.name}'") /** + * INTERNAL API * If true, this node should run the shard region, otherwise just a shard proxy should started on this node. * It's checking if the `role` and `dataCenter` are matching. */ diff --git a/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala b/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala index b0812fcc9f..a8a4e0a58b 100644 --- a/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala +++ b/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala @@ -44,14 +44,14 @@ object ClusterShardingPersistenceSpec { import PersistentBehaviors._ - val persistentActor: Behavior[Command] = - PersistentBehaviors.persistentEntity[Command, String, String]( - persistenceIdFromActorName = name ⇒ "Test-" + name, + def persistentActor(entityId: String): Behavior[Command] = + PersistentBehaviors.immutable[Command, String, String]( + entityId, initialState = "", commandHandler = (_, state, cmd) ⇒ cmd match { case Add(s) ⇒ Effect.persist(s) case Get(replyTo) ⇒ - replyTo ! state + replyTo ! s"$entityId:$state" Effect.none case StopPlz ⇒ Effect.stop }, @@ -72,7 +72,7 @@ class ClusterShardingPersistenceSpec extends TestKit("ClusterShardingPersistence Cluster(system).manager ! Join(Cluster(system).selfMember.address) "start persistent actor" in { - ClusterSharding(system).spawn[Command](_ ⇒ persistentActor, Props.empty, typeKey, + ClusterSharding(system).spawn[Command](persistentActor, Props.empty, typeKey, ClusterShardingSettings(system), maxNumberOfShards = 100, handOffStopMessage = StopPlz) val p = TestProbe[String]() @@ -82,7 +82,7 @@ class ClusterShardingPersistenceSpec extends TestKit("ClusterShardingPersistence ref ! Add("b") ref ! Add("c") ref ! Get(p.ref) - p.expectMessage("a|b|c") + p.expectMessage("123:a|b|c") } } } diff --git a/akka-persistence-typed/src/main/scala/akka/persistence/typed/scaladsl/PersistentBehaviors.scala b/akka-persistence-typed/src/main/scala/akka/persistence/typed/scaladsl/PersistentBehaviors.scala index ef158d5df5..0f4ceb35ca 100644 --- a/akka-persistence-typed/src/main/scala/akka/persistence/typed/scaladsl/PersistentBehaviors.scala +++ b/akka-persistence-typed/src/main/scala/akka/persistence/typed/scaladsl/PersistentBehaviors.scala @@ -19,25 +19,13 @@ object PersistentBehaviors { persistenceId: String, initialState: State, commandHandler: CommandHandler[Command, Event, State], - eventHandler: (State, Event) ⇒ State): PersistentBehavior[Command, Event, State] = - persistentEntity(_ ⇒ persistenceId, initialState, commandHandler, eventHandler) - - /** - * Create a `Behavior` for a persistent actor in Cluster Sharding, when the persistenceId is not known - * until the actor is started and typically based on the entityId, which - * is the actor name. - * - * TODO This will not be needed when it can be wrapped in `Actor.deferred`. - */ - def persistentEntity[Command, Event, State]( - persistenceIdFromActorName: String ⇒ String, - initialState: State, - commandHandler: CommandHandler[Command, Event, State], - eventHandler: (State, Event) ⇒ State): PersistentBehavior[Command, Event, State] = - new PersistentBehavior(persistenceIdFromActorName, initialState, commandHandler, eventHandler, + eventHandler: (State, Event) ⇒ State): PersistentBehavior[Command, Event, State] = { + // FIXME remove `persistenceIdFromActorName: String ⇒ String` from PersistentBehavior + new PersistentBehavior(_ ⇒ persistenceId, initialState, commandHandler, eventHandler, recoveryCompleted = (_, _) ⇒ (), tagger = _ ⇒ Set.empty, snapshotOn = (_, _, _) ⇒ false) + } /** * Factories for effects - how a persistent actor reacts on a command