diff --git a/akka-actor-tests/src/test/scala/akka/actor/DeployerSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/DeployerSpec.scala index 897932cad9..4352f26409 100644 --- a/akka-actor-tests/src/test/scala/akka/actor/DeployerSpec.scala +++ b/akka-actor-tests/src/test/scala/akka/actor/DeployerSpec.scala @@ -55,7 +55,7 @@ class DeployerSpec extends AkkaSpec(DeployerSpec.deployerConf) { "be able to parse 'akka.actor.deployment._' with all default values" in { val service = "/service1" - val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/")) + val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/").drop(1)) deployment must be('defined) deployment must be(Some( @@ -68,7 +68,7 @@ class DeployerSpec extends AkkaSpec(DeployerSpec.deployerConf) { "use None deployment for undefined service" in { val service = "/undefined" - val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/")) + val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/").drop(1)) deployment must be(None) } @@ -113,7 +113,7 @@ class DeployerSpec extends AkkaSpec(DeployerSpec.deployerConf) { } def assertRouting(expected: RouterConfig, service: String) { - val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/")) + val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/").drop(1)) deployment must be('defined) deployment.get.path must be(service) deployment.get.routerConfig.getClass must be(expected.getClass) diff --git a/akka-actor/src/main/scala/akka/actor/Deployer.scala b/akka-actor/src/main/scala/akka/actor/Deployer.scala index 19ed73b567..2fd9538d77 100644 --- a/akka-actor/src/main/scala/akka/actor/Deployer.scala +++ b/akka-actor/src/main/scala/akka/actor/Deployer.scala @@ -115,17 +115,17 @@ private[akka] class Deployer(val settings: ActorSystem.Settings, val dynamicAcce case _ ⇒ None } foreach deploy - def lookup(path: Iterable[String]): Option[Deploy] = deployments.get().find(path.iterator).deploy + def lookup(path: ActorPath): Option[Deploy] = lookup(path.elements.drop(1).iterator) + + def lookup(path: Iterable[String]): Option[Deploy] = lookup(path.iterator) def lookup(path: Iterator[String]): Option[Deploy] = deployments.get().find(path).data - def lookup(path: ActorPath): Option[Deploy] = deployments.get().find(Iterator.single("") ++ path.elements.drop(1).iterator).deploy - def deploy(d: Deploy): Unit = { @tailrec def add(path: Array[String], d: Deploy, w: WildcardTree[Deploy] = deployments.get): Unit = if (!deployments.compareAndSet(w, w.insert(path.iterator, d))) add(path, d) - add(d.path.split("/"), d) + add(d.path.split("/").drop(1), d) } protected def parseConfig(key: String, config: Config): Option[Deploy] = { diff --git a/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala b/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala index 7f0564b4d0..ab53d9e99d 100644 --- a/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala +++ b/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala @@ -140,7 +140,7 @@ class RemoteActorRefProvider( p.headOption match { case None ⇒ None case Some("remote") ⇒ lookupRemotes(p.drop(2)) - case Some("user") ⇒ deployer.lookup(Iterator.single("") ++ p.drop(1).iterator) + case Some("user") ⇒ deployer.lookup(p.drop(1)) case Some(_) ⇒ None } } @@ -149,7 +149,7 @@ class RemoteActorRefProvider( val lookup = if (lookupDeploy) elems.head match { - case "user" ⇒ deployer.lookup(Iterator.single("") ++ elems.drop(1).iterator) + case "user" ⇒ deployer.lookup(elems.drop(1)) case "remote" ⇒ lookupRemotes(elems) case _ ⇒ None } diff --git a/akka-remote/src/test/scala/akka/remote/RemoteDeployerSpec.scala b/akka-remote/src/test/scala/akka/remote/RemoteDeployerSpec.scala index 7cf1c917d5..6622b98d81 100644 --- a/akka-remote/src/test/scala/akka/remote/RemoteDeployerSpec.scala +++ b/akka-remote/src/test/scala/akka/remote/RemoteDeployerSpec.scala @@ -34,7 +34,7 @@ class RemoteDeployerSpec extends AkkaSpec(RemoteDeployerSpec.deployerConf) { "be able to parse 'akka.actor.deployment._' with specified remote nodes" in { val service = "/user/service2" - val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/")) + val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service.split("/").drop(1)) deployment must be('defined) deployment must be(Some(