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 d6693dbeca..b3f6624283 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/DeployerSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/DeployerSpec.scala
@@ -13,12 +13,12 @@ class DeployerSpec extends AkkaSpec {
"A Deployer" must {
"be able to parse 'akka.actor.deployment._' config elements" in {
- val deployment = app.provider.deployer.lookupInConfig("service-ping")
+ val deployment = app.provider.deployer.lookupInConfig("/app/service-ping")
deployment must be('defined)
deployment must equal(Some(
Deploy(
- "service-ping",
+ "/app/service-ping",
None,
RoundRobin,
NrOfInstances(3),
diff --git a/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala b/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala
index adf251c766..424e897fa4 100644
--- a/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala
@@ -14,11 +14,11 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
"round robin router" must {
"be able to shut down its instance" in {
- val address = "round-robin-0"
+ val path = app / "round-robin-0"
app.provider.deployer.deploy(
Deploy(
- address,
+ path.toString,
None,
RoundRobin,
NrOfInstances(5),
@@ -35,7 +35,7 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
override def postStop() {
stopLatch.countDown()
}
- }), address)
+ }), path.name)
actor ! "hello"
actor ! "hello"
@@ -49,11 +49,11 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
}
"deliver messages in a round robin fashion" in {
- val address = "round-robin-1"
+ val path = app / "round-robin-1"
app.provider.deployer.deploy(
Deploy(
- address,
+ path.toString,
None,
RoundRobin,
NrOfInstances(10),
@@ -75,7 +75,7 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
case "hit" ⇒ sender ! id
case "end" ⇒ doneLatch.countDown()
}
- }), address)
+ }), path.name)
for (i ← 0 until iterationCount) {
for (k ← 0 until connectionCount) {
@@ -93,11 +93,11 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
}
"deliver a broadcast message using the !" in {
- val address = "round-robin-2"
+ val path = app / "round-robin-2"
app.provider.deployer.deploy(
Deploy(
- address,
+ path.toString,
None,
RoundRobin,
NrOfInstances(5),
@@ -114,7 +114,7 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
override def postStop() {
stopLatch.countDown()
}
- }), address)
+ }), path.name)
actor ! Broadcast("hello")
helloLatch.await(5, TimeUnit.SECONDS) must be(true)
@@ -127,11 +127,11 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
"random router" must {
"be able to shut down its instance" in {
- val address = "random-0"
+ val path = app / "random-0"
app.provider.deployer.deploy(
Deploy(
- address,
+ path.toString,
None,
Random,
NrOfInstances(7),
@@ -147,7 +147,7 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
override def postStop() {
stopLatch.countDown()
}
- }), address)
+ }), path.name)
actor ! "hello"
actor ! "hello"
@@ -160,11 +160,11 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
}
"deliver messages in a random fashion" in {
- val address = "random-1"
+ val path = app / "random-1"
app.provider.deployer.deploy(
Deploy(
- address,
+ path.toString,
None,
Random,
NrOfInstances(10),
@@ -186,7 +186,7 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
case "hit" ⇒ sender ! id
case "end" ⇒ doneLatch.countDown()
}
- }), address)
+ }), path.name)
for (i ← 0 until iterationCount) {
for (k ← 0 until connectionCount) {
@@ -204,11 +204,11 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
}
"deliver a broadcast message using the !" in {
- val address = "random-2"
+ val path = app / "random-2"
app.provider.deployer.deploy(
Deploy(
- address,
+ path.toString,
None,
Random,
NrOfInstances(6),
@@ -225,7 +225,7 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec {
override def postStop() {
stopLatch.countDown()
}
- }), address)
+ }), path.name)
actor ! Broadcast("hello")
helloLatch.await(5, TimeUnit.SECONDS) must be(true)
diff --git a/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala b/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
index b0291783cb..3c1f185a69 100644
--- a/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
+++ b/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
@@ -192,8 +192,7 @@ class LocalActorRefProvider(val app: AkkaApplication) extends ActorRefProvider {
actors.putIfAbsent(path.toString, newFuture) match {
case null ⇒
val actor: ActorRef = try {
- // FIXME (actor path): lookup should be by path
- (if (systemService) None else deployer.lookupDeployment(name)) match { // see if the deployment already exists, if so use it, if not create actor
+ (if (systemService) None else deployer.lookupDeployment(path.toString)) match { // see if the deployment already exists, if so use it, if not create actor
// create a local actor
case None | Some(DeploymentConfig.Deploy(_, _, DeploymentConfig.Direct, _, DeploymentConfig.LocalScope)) ⇒
diff --git a/akka-actor/src/main/scala/akka/actor/Deployer.scala b/akka-actor/src/main/scala/akka/actor/Deployer.scala
index 30d746a054..2a6795a599 100644
--- a/akka-actor/src/main/scala/akka/actor/Deployer.scala
+++ b/akka-actor/src/main/scala/akka/actor/Deployer.scala
@@ -19,8 +19,8 @@ trait ActorDeployer {
private[akka] def init(deployments: Seq[Deploy]): Unit
private[akka] def shutdown(): Unit //TODO Why should we have "shutdown", should be crash only?
private[akka] def deploy(deployment: Deploy): Unit
- private[akka] def lookupDeploymentFor(address: String): Option[Deploy]
- def lookupDeployment(address: String): Option[Deploy] = address match {
+ private[akka] def lookupDeploymentFor(path: String): Option[Deploy]
+ def lookupDeployment(path: String): Option[Deploy] = path match {
case null | Props.`randomName` ⇒ None
case some ⇒ lookupDeploymentFor(some)
}
@@ -28,7 +28,7 @@ trait ActorDeployer {
}
/**
- * Deployer maps actor deployments to actor addresses.
+ * Deployer maps actor paths to actor deployments.
*
* @author Jonas Bonér
*/
@@ -58,36 +58,36 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
def isClustered(deployment: Deploy): Boolean = !isLocal(deployment)
- def isLocal(address: String): Boolean = isLocal(deploymentFor(address)) //TODO Should this throw exception if address not found?
+ def isLocal(path: String): Boolean = isLocal(deploymentFor(path)) //TODO Should this throw exception if path not found?
- def isClustered(address: String): Boolean = !isLocal(address) //TODO Should this throw exception if address not found?
+ def isClustered(path: String): Boolean = !isLocal(path) //TODO Should this throw exception if path not found?
/**
* Same as 'lookupDeploymentFor' but throws an exception if no deployment is bound.
*/
- private[akka] def deploymentFor(address: String): Deploy = {
- lookupDeploymentFor(address) match {
+ private[akka] def deploymentFor(path: String): Deploy = {
+ lookupDeploymentFor(path) match {
case Some(deployment) ⇒ deployment
- case None ⇒ thrownNoDeploymentBoundException(address)
+ case None ⇒ thrownNoDeploymentBoundException(path)
}
}
- private[akka] def lookupDeploymentFor(address: String): Option[Deploy] =
- instance.lookupDeploymentFor(address)
+ private[akka] def lookupDeploymentFor(path: String): Option[Deploy] =
+ instance.lookupDeploymentFor(path)
private[akka] def deploymentsInConfig: List[Deploy] = {
for {
- address ← addressesInConfig
- deployment ← lookupInConfig(address)
+ path ← pathsInConfig
+ deployment ← lookupInConfig(path)
} yield deployment
}
- private[akka] def addressesInConfig: List[String] = {
+ private[akka] def pathsInConfig: List[String] = {
val deploymentPath = "akka.actor.deployment"
app.config.getSection(deploymentPath) match {
case None ⇒ Nil
- case Some(addressConfig) ⇒
- addressConfig.map.keySet
+ case Some(pathConfig) ⇒
+ pathConfig.map.keySet
.map(path ⇒ path.substring(0, path.indexOf(".")))
.toSet.toList // toSet to force uniqueness
}
@@ -96,21 +96,21 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
/**
* Lookup deployment in 'akka.conf' configuration file.
*/
- private[akka] def lookupInConfig(address: String, configuration: Configuration = app.config): Option[Deploy] = {
+ private[akka] def lookupInConfig(path: String, configuration: Configuration = app.config): Option[Deploy] = {
import akka.util.ReflectiveAccess.{ createInstance, emptyArguments, emptyParams, getClassFor }
// --------------------------------
- // akka.actor.deployment.
+ // akka.actor.deployment.
// --------------------------------
- val addressPath = "akka.actor.deployment." + address
- configuration.getSection(addressPath) match {
+ val deploymentKey = "akka.actor.deployment." + path
+ configuration.getSection(deploymentKey) match {
case None ⇒ None
- case Some(addressConfig) ⇒
+ case Some(pathConfig) ⇒
// --------------------------------
- // akka.actor.deployment..router
+ // akka.actor.deployment..router
// --------------------------------
- val router: Routing = addressConfig.getString("router", "direct") match {
+ val router: Routing = pathConfig.getString("router", "direct") match {
case "direct" ⇒ Direct
case "round-robin" ⇒ RoundRobin
case "random" ⇒ Random
@@ -122,12 +122,12 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
}
// --------------------------------
- // akka.actor.deployment..nr-of-instances
+ // akka.actor.deployment..nr-of-instances
// --------------------------------
val nrOfInstances = {
if (router == Direct) OneNrOfInstances
else {
- addressConfig.getAny("nr-of-instances", "1") match {
+ pathConfig.getAny("nr-of-instances", "1") match {
case "auto" ⇒ AutoNrOfInstances
case "1" ⇒ OneNrOfInstances
case "0" ⇒ ZeroNrOfInstances
@@ -137,7 +137,7 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
} catch {
case e: Exception ⇒
throw new ConfigurationException(
- "Config option [" + addressPath +
+ "Config option [" + deploymentKey +
".nr-of-instances] needs to be either [\"auto\"] or [1-N] - was [" +
nrOfReplicas + "]")
}
@@ -146,37 +146,37 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
}
// --------------------------------
- // akka.actor.deployment..create-as
+ // akka.actor.deployment..create-as
// --------------------------------
- val recipe: Option[ActorRecipe] = addressConfig.getSection("create-as") map { section ⇒
+ val recipe: Option[ActorRecipe] = pathConfig.getSection("create-as") map { section ⇒
val implementationClass = section.getString("class") match {
case Some(impl) ⇒
getClassFor[Actor](impl).fold(e ⇒ throw new ConfigurationException(
- "Config option [" + addressPath + ".create-as.class] load failed", e), identity)
+ "Config option [" + deploymentKey + ".create-as.class] load failed", e), identity)
case None ⇒
throw new ConfigurationException(
- "Config option [" + addressPath + ".create-as.class] is missing, need the fully qualified name of the class")
+ "Config option [" + deploymentKey + ".create-as.class] is missing, need the fully qualified name of the class")
}
ActorRecipe(implementationClass)
}
// --------------------------------
- // akka.actor.deployment..remote
+ // akka.actor.deployment..remote
// --------------------------------
- addressConfig.getSection("remote") match {
+ pathConfig.getSection("remote") match {
case Some(remoteConfig) ⇒ // we have a 'remote' config section
- if (addressConfig.getSection("cluster").isDefined) throw new ConfigurationException(
- "Configuration for deployment ID [" + address + "] can not have both 'remote' and 'cluster' sections.")
+ if (pathConfig.getSection("cluster").isDefined) throw new ConfigurationException(
+ "Configuration for deployment ID [" + path + "] can not have both 'remote' and 'cluster' sections.")
// --------------------------------
- // akka.actor.deployment..remote.nodes
+ // akka.actor.deployment..remote.nodes
// --------------------------------
val remoteAddresses = remoteConfig.getList("nodes") match {
case Nil ⇒ Nil
case nodes ⇒
def raiseRemoteNodeParsingError() = throw new ConfigurationException(
- "Config option [" + addressPath +
+ "Config option [" + deploymentKey +
".remote.nodes] needs to be a list with elements on format \":\", was [" + nodes.mkString(", ") + "]")
nodes map { node ⇒
@@ -192,26 +192,26 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
}
}
- Some(Deploy(address, recipe, router, nrOfInstances, RemoteScope(remoteAddresses)))
+ Some(Deploy(path, recipe, router, nrOfInstances, RemoteScope(remoteAddresses)))
case None ⇒ // check for 'cluster' config section
// --------------------------------
- // akka.actor.deployment..cluster
+ // akka.actor.deployment..cluster
// --------------------------------
- addressConfig.getSection("cluster") match {
+ pathConfig.getSection("cluster") match {
case None ⇒ None
case Some(clusterConfig) ⇒
// --------------------------------
- // akka.actor.deployment..cluster.preferred-nodes
+ // akka.actor.deployment..cluster.preferred-nodes
// --------------------------------
val preferredNodes = clusterConfig.getList("preferred-nodes") match {
case Nil ⇒ Nil
case homes ⇒
def raiseHomeConfigError() = throw new ConfigurationException(
- "Config option [" + addressPath +
+ "Config option [" + deploymentKey +
".cluster.preferred-nodes] needs to be a list with elements on format\n'host:', 'ip:' or 'node:', was [" +
homes + "]")
@@ -230,18 +230,18 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
}
// --------------------------------
- // akka.actor.deployment..cluster.replication
+ // akka.actor.deployment..cluster.replication
// --------------------------------
clusterConfig.getSection("replication") match {
case None ⇒
- Some(Deploy(address, recipe, router, nrOfInstances, deploymentConfig.ClusterScope(preferredNodes, Transient)))
+ Some(Deploy(path, recipe, router, nrOfInstances, deploymentConfig.ClusterScope(preferredNodes, Transient)))
case Some(replicationConfig) ⇒
val storage = replicationConfig.getString("storage", "transaction-log") match {
case "transaction-log" ⇒ TransactionLog
case "data-grid" ⇒ DataGrid
case unknown ⇒
- throw new ConfigurationException("Config option [" + addressPath +
+ throw new ConfigurationException("Config option [" + deploymentKey +
".cluster.replication.storage] needs to be either [\"transaction-log\"] or [\"data-grid\"] - was [" +
unknown + "]")
}
@@ -249,11 +249,11 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
case "write-through" ⇒ WriteThrough
case "write-behind" ⇒ WriteBehind
case unknown ⇒
- throw new ConfigurationException("Config option [" + addressPath +
+ throw new ConfigurationException("Config option [" + deploymentKey +
".cluster.replication.strategy] needs to be either [\"write-through\"] or [\"write-behind\"] - was [" +
unknown + "]")
}
- Some(Deploy(address, recipe, router, nrOfInstances, deploymentConfig.ClusterScope(preferredNodes, Replication(storage, strategy))))
+ Some(Deploy(path, recipe, router, nrOfInstances, deploymentConfig.ClusterScope(preferredNodes, Replication(storage, strategy))))
}
}
}
@@ -261,13 +261,13 @@ class Deployer(val app: AkkaApplication) extends ActorDeployer {
}
private[akka] def throwDeploymentBoundException(deployment: Deploy): Nothing = {
- val e = new DeploymentAlreadyBoundException("Address [" + deployment.address + "] already bound to [" + deployment + "]")
+ val e = new DeploymentAlreadyBoundException("Path [" + deployment.path + "] already bound to [" + deployment + "]")
log.error(e, e.getMessage)
throw e
}
- private[akka] def thrownNoDeploymentBoundException(address: String): Nothing = {
- val e = new NoDeploymentBoundException("Address [" + address + "] is not bound to a deployment")
+ private[akka] def thrownNoDeploymentBoundException(path: String): Nothing = {
+ val e = new NoDeploymentBoundException("Path [" + path + "] is not bound to a deployment")
log.error(e, e.getMessage)
throw e
}
@@ -285,9 +285,9 @@ class LocalDeployer extends ActorDeployer {
private[akka] def shutdown(): Unit = deployments.clear() //TODO do something else/more?
- private[akka] def deploy(deployment: Deploy): Unit = deployments.putIfAbsent(deployment.address, deployment)
+ private[akka] def deploy(deployment: Deploy): Unit = deployments.putIfAbsent(deployment.path, deployment)
- private[akka] def lookupDeploymentFor(address: String): Option[Deploy] = Option(deployments.get(address))
+ private[akka] def lookupDeploymentFor(path: String): Option[Deploy] = Option(deployments.get(path))
}
class DeploymentException private[akka] (message: String) extends AkkaException(message)
diff --git a/akka-actor/src/main/scala/akka/actor/DeploymentConfig.scala b/akka-actor/src/main/scala/akka/actor/DeploymentConfig.scala
index 1782cda940..ed5d8d78b1 100644
--- a/akka-actor/src/main/scala/akka/actor/DeploymentConfig.scala
+++ b/akka-actor/src/main/scala/akka/actor/DeploymentConfig.scala
@@ -15,7 +15,7 @@ object DeploymentConfig {
// --- Deploy
// --------------------------------
case class Deploy(
- address: String,
+ path: String,
recipe: Option[ActorRecipe],
routing: Routing = Direct,
nrOfInstances: NrOfInstances = ZeroNrOfInstances,
diff --git a/akka-actor/src/main/scala/akka/config/ConfigParser.scala b/akka-actor/src/main/scala/akka/config/ConfigParser.scala
index 39b961a24d..4b3d4abdaa 100644
--- a/akka-actor/src/main/scala/akka/config/ConfigParser.scala
+++ b/akka-actor/src/main/scala/akka/config/ConfigParser.scala
@@ -25,9 +25,9 @@ class ConfigParser(var prefix: String = "", map: mutable.Map[String, Any] = muta
val numberToken: Parser[String] = """-?\d+(\.\d+)?""".r
val stringToken: Parser[String] = ("\"" + """([^\\\"]|\\[^ux]|\\\n|\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2})*""" + "\"").r
val booleanToken: Parser[String] = "(true|on|false|off)".r
- val identToken: Parser[String] = """([\da-zA-Z_][-\w]*)(\.[a-zA-Z_][-\w]*)*""".r
+ val identToken: Parser[String] = """([\da-zA-Z_/][-\w]*)(\.[a-zA-Z_/][-/\w]*)*""".r
val assignToken: Parser[String] = "=".r
- val sectionToken: Parser[String] = """[a-zA-Z][-\w]*""".r
+ val sectionToken: Parser[String] = """[a-zA-Z_/][-/\w]*""".r
// values
diff --git a/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala b/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
index 38d07e8e36..90e3b20902 100644
--- a/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
+++ b/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
@@ -63,8 +63,7 @@ class RemoteActorRefProvider(val app: AkkaApplication) extends ActorRefProvider
actors.putIfAbsent(path.toString, newFuture) match { // we won the race -- create the actor and resolve the future
case null ⇒
val actor: ActorRef = try {
- // FIXME (actor path): lookup should be by path
- deployer.lookupDeploymentFor(name) match {
+ deployer.lookupDeploymentFor(path.toString) match {
case Some(DeploymentConfig.Deploy(_, _, routerType, nrOfInstances, DeploymentConfig.RemoteScope(remoteAddresses))) ⇒
// FIXME move to AccrualFailureDetector as soon as we have the Gossiper up and running and remove the option to select impl in the akka.conf file since we only have one
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.conf b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.conf
index a7db5ca6e6..a10ac35b1c 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "direct"
-akka.actor.deployment.service-hello.nr-of-instances = 1
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991"]
+akka.actor.deployment./app/service-hello.router = "direct"
+akka.actor.deployment./app/service-hello.nr-of-instances = 1
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.conf b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.conf
index a7db5ca6e6..a10ac35b1c 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "direct"
-akka.actor.deployment.service-hello.nr-of-instances = 1
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991"]
+akka.actor.deployment./app/service-hello.router = "direct"
+akka.actor.deployment./app/service-hello.nr-of-instances = 1
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.conf b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.conf
index 8281319e9a..ab653b70ed 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.conf
@@ -1,3 +1,3 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991"]
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.conf b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.conf
index 8281319e9a..ab653b70ed 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.conf
@@ -1,3 +1,3 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991"]
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode1.conf b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode1.conf
index 4a171ba96f..e06f4a67ca 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode1.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode1.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "random"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "random"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode2.conf b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode2.conf
index 4a171ba96f..e06f4a67ca 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode2.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode2.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "random"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "random"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode3.conf b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode3.conf
index 4a171ba96f..e06f4a67ca 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode3.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode3.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "random"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "random"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode4.conf b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode4.conf
index 4a171ba96f..e06f4a67ca 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode4.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/random_routed/RandomRoutedRemoteActorMultiJvmNode4.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "random"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "random"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode1.conf b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode1.conf
index 08c0dc70d2..1b833c6509 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode1.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode1.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "round-robin"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "round-robin"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode2.conf b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode2.conf
index 08c0dc70d2..1b833c6509 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode2.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode2.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "round-robin"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "round-robin"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode3.conf b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode3.conf
index 08c0dc70d2..1b833c6509 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode3.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode3.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "round-robin"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "round-robin"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode4.conf b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode4.conf
index 08c0dc70d2..1b833c6509 100644
--- a/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode4.conf
+++ b/akka-remote/src/multi-jvm/scala/akka/remote/round_robin_routed/RoundRobinRoutedRemoteActorMultiJvmNode4.conf
@@ -1,5 +1,5 @@
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
akka.event-handler-level = "WARNING"
-akka.actor.deployment.service-hello.router = "round-robin"
-akka.actor.deployment.service-hello.nr-of-instances = 3
-akka.actor.deployment.service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
+akka.actor.deployment./app/service-hello.router = "round-robin"
+akka.actor.deployment./app/service-hello.nr-of-instances = 3
+akka.actor.deployment./app/service-hello.remote.nodes = ["localhost:9991","localhost:9992","localhost:9993"]
diff --git a/config/akka-reference.conf b/config/akka-reference.conf
index a44905a3b5..19376ea313 100644
--- a/config/akka-reference.conf
+++ b/config/akka-reference.conf
@@ -64,7 +64,7 @@ akka {
deployment {
- service-ping { # deployment id pattern
+ /app/service-ping { # deployment id pattern
router = "round-robin" # routing (load-balance) scheme to use
# available: "direct", "round-robin", "random", "scatter-gather"