make it possible to programmatically deploy (e.g. remotely), see #1644
- add Deploy to Props, which is used as the basis (overridden by configuration) - utilize general mechanism .withFallback (introduced on Deploy, RouterConfig and Scope) - actually pass Props over the wire when deploying remotely in order to retain settings (this was an oversight before) - write tests for the new functionality
This commit is contained in:
parent
9d388f2de6
commit
10974acfe8
19 changed files with 360 additions and 88 deletions
|
|
@ -8,7 +8,9 @@ import akka.routing._
|
|||
import com.typesafe.config._
|
||||
import akka.config.ConfigurationException
|
||||
|
||||
case class RemoteScope(node: Address) extends Scope
|
||||
case class RemoteScope(node: Address) extends Scope {
|
||||
def withFallback(other: Scope): Scope = this
|
||||
}
|
||||
|
||||
class RemoteDeployer(_settings: ActorSystem.Settings, _classloader: ClassLoader) extends Deployer(_settings, _classloader) {
|
||||
|
||||
|
|
@ -22,8 +24,8 @@ class RemoteDeployer(_settings: ActorSystem.Settings, _classloader: ClassLoader)
|
|||
case str ⇒
|
||||
if (!str.isEmpty) throw new ConfigurationException("unparseable remote node name " + str)
|
||||
val nodes = deploy.config.getStringList("target.nodes").asScala
|
||||
if (nodes.isEmpty || deploy.routing == NoRouter) d
|
||||
else Some(deploy.copy(routing = new RemoteRouterConfig(deploy.routing, nodes)))
|
||||
if (nodes.isEmpty || deploy.routerConfig == NoRouter) d
|
||||
else Some(deploy.copy(routerConfig = RemoteRouterConfig(deploy.routerConfig, nodes)))
|
||||
}
|
||||
case None ⇒ None
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue