diff --git a/akka-actor/src/main/scala/akka/actor/Actor.scala b/akka-actor/src/main/scala/akka/actor/Actor.scala index 3c44265013..234392c0b2 100644 --- a/akka-actor/src/main/scala/akka/actor/Actor.scala +++ b/akka-actor/src/main/scala/akka/actor/Actor.scala @@ -317,14 +317,26 @@ object Actor extends ListenerManagement { newLocalActorRef(manifest[T].erasure.asInstanceOf[Class[_ <: Actor]], new UUID().toString) } + def localActorOf[T <: Actor: Manifest](address: String): ActorRef = { + newLocalActorRef(manifest[T].erasure.asInstanceOf[Class[_ <: Actor]], address) + } + def localActorOf[T <: Actor](clazz: Class[T]): ActorRef = { newLocalActorRef(clazz, new UUID().toString) } + def localActorOf[T <: Actor](clazz: Class[T], address: String): ActorRef = { + newLocalActorRef(clazz, address) + } + def localActorOf[T <: Actor](factory: ⇒ T): ActorRef = { new LocalActorRef(() ⇒ factory, new UUID().toString, Transient) } + def localActorOf[T <: Actor](factory: ⇒ T, address: String): ActorRef = { + new LocalActorRef(() ⇒ factory, address, Transient) + } + /** * Use to spawn out a block of code in an event-driven actor. Will shut actor down when * the block has been executed. diff --git a/akka-cluster/src/main/scala/akka/cluster/Cluster.scala b/akka-cluster/src/main/scala/akka/cluster/Cluster.scala index dafd191f55..415a50a98a 100644 --- a/akka-cluster/src/main/scala/akka/cluster/Cluster.scala +++ b/akka-cluster/src/main/scala/akka/cluster/Cluster.scala @@ -283,7 +283,7 @@ class DefaultClusterNode private[akka] ( import Cluster._ - lazy val remoteClientLifeCycleListener = actorOf(new Actor { + lazy val remoteClientLifeCycleListener = localActorOf(new Actor { def receive = { case RemoteClientError(cause, client, address) ⇒ client.shutdownClientModule() case RemoteClientDisconnected(client, address) ⇒ client.shutdownClientModule() @@ -291,7 +291,7 @@ class DefaultClusterNode private[akka] ( } }, "akka.cluster.RemoteClientLifeCycleListener").start() - lazy val remoteDaemon = actorOf(new RemoteClusterDaemon(this), RemoteClusterDaemon.ADDRESS).start() + lazy val remoteDaemon = localActorOf(new RemoteClusterDaemon(this), RemoteClusterDaemon.ADDRESS).start() lazy val remoteDaemonSupervisor = Supervisor( SupervisorConfig(