This is an automated email from the ASF dual-hosted git repository.

roiocam 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 5d23adbe5d chore: clean code in ClusterSharding (#1305)
5d23adbe5d is described below

commit 5d23adbe5d1a2ce706d4949c70ec1b388a2976a9
Author: AndyChen(Jingzhang) <[email protected]>
AuthorDate: Sun May 19 21:48:41 2024 +0800

    chore: clean code in ClusterSharding (#1305)
    
    * chore: clean code in ClusterSharding
    
    * cleaner ShardCommandActor
---
 .../typed/internal/ClusterShardingImpl.scala       | 31 ++++++++++------------
 1 file changed, 14 insertions(+), 17 deletions(-)

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 a559895c80..026611912c 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
@@ -29,7 +29,6 @@ import pekko.actor.typed.ActorRef
 import pekko.actor.typed.ActorSystem
 import pekko.actor.typed.Behavior
 import pekko.actor.typed.Props
-import pekko.actor.typed.TypedActorContext
 import pekko.actor.typed.internal.InternalRecipientRef
 import pekko.actor.typed.internal.PoisonPill
 import pekko.actor.typed.internal.PoisonPillInterceptor
@@ -194,12 +193,9 @@ import pekko.util.JavaDurationConverters._
             typeKey.name,
             new java.util.function.Function[String, 
ActorRef[scaladsl.ClusterSharding.ShardCommand]] {
               override def apply(t: String): 
ActorRef[scaladsl.ClusterSharding.ShardCommand] = {
-                // using classic.systemActorOf to avoid the Future[ActorRef]
-                system.toClassic
-                  .asInstanceOf[ExtendedActorSystem]
-                  .systemActorOf(
-                    
PropsAdapter(ShardCommandActor.behavior(stopMessage.getOrElse(PoisonPill))),
-                    URLEncoder.encode(typeKey.name, ByteString.UTF_8) + 
"ShardCommandDelegator")
+                system.systemActorOf(
+                  
ShardCommandActor.behavior(stopMessage.getOrElse(PoisonPill)),
+                  URLEncoder.encode(typeKey.name, ByteString.UTF_8) + 
"ShardCommandDelegator")
               }
             })
 
@@ -307,11 +303,8 @@ import pekko.util.JavaDurationConverters._
     }
   }
 
-  override lazy val shardState: ActorRef[ClusterShardingQuery] = {
-    import pekko.actor.typed.scaladsl.adapter._
-    val behavior = ShardingState.behavior(classicSharding)
-    classicSystem.systemActorOf(PropsAdapter(behavior), "typedShardState")
-  }
+  override lazy val shardState: ActorRef[ClusterShardingQuery] =
+    system.systemActorOf(ShardingState.behavior(classicSharding), 
"typedShardState")
 
 }
 
@@ -436,22 +429,26 @@ import pekko.util.JavaDurationConverters._
  * INTERNAL API
  */
 @InternalApi private[pekko] object ShardCommandActor {
+  import pekko.actor
   import pekko.actor.typed.scaladsl.adapter._
   import pekko.cluster.sharding.ShardRegion.{ Passivate => ClassicPassivate }
 
   def behavior(stopMessage: Any): 
Behavior[scaladsl.ClusterSharding.ShardCommand] = {
-    def sendClassicPassivate(entity: ActorRef[_], ctx: TypedActorContext[_]): 
Unit = {
-      val pathToShard = entity.toClassic.path.elements.take(4).mkString("/")
-      
ctx.asScala.system.toClassic.actorSelection(pathToShard).tell(ClassicPassivate(stopMessage),
 entity.toClassic)
+    def sendClassicPassivate(entity: ActorRef[_], classicSystem: 
actor.ActorSystem): Unit = {
+      val classicRef = entity.toClassic
+      val pathToShard = classicRef.path.elements.take(4).mkString("/")
+      
classicSystem.actorSelection(pathToShard).tell(ClassicPassivate(stopMessage), 
classicRef)
     }
 
     Behaviors.receive { (ctx, msg) =>
+      val classicSystem = ctx.asScala.system.toClassic
+
       msg match {
         case scaladsl.ClusterSharding.Passivate(entity) =>
-          sendClassicPassivate(entity, ctx)
+          sendClassicPassivate(entity, classicSystem)
           Behaviors.same
         case javadsl.ClusterSharding.Passivate(entity) =>
-          sendClassicPassivate(entity, ctx)
+          sendClassicPassivate(entity, classicSystem)
           Behaviors.same
         case _ =>
           Behaviors.unhandled


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to