Removed create-as and corresponding ActorRecipe. See #1511

This commit is contained in:
Patrik Nordwall 2012-01-17 14:27:23 +01:00
parent e81791cbb6
commit f01b9486aa
8 changed files with 9 additions and 46 deletions

View file

@ -15,11 +15,6 @@ object DeployerSpec {
akka.actor.deployment {
/service1 {
}
/service3 {
create-as {
class = "akka.actor.DeployerSpec$RecipeActor"
}
}
/service-direct {
router = from-code
}
@ -68,7 +63,6 @@ class DeployerSpec extends AkkaSpec(DeployerSpec.deployerConf) {
Deploy(
service,
deployment.get.config,
None,
NoRouter,
LocalScope)))
}
@ -79,20 +73,6 @@ class DeployerSpec extends AkkaSpec(DeployerSpec.deployerConf) {
deployment must be(None)
}
"be able to parse 'akka.actor.deployment._' with recipe" in {
val service = "/service3"
val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service)
deployment must be('defined)
deployment must be(Some(
Deploy(
service,
deployment.get.config,
Some(ActorRecipe(classOf[DeployerSpec.RecipeActor])),
NoRouter,
LocalScope)))
}
"detect invalid number-of-instances" in {
intercept[com.typesafe.config.ConfigException.WrongType] {
val invalidDeployerConf = ConfigFactory.parseString("""
@ -137,7 +117,6 @@ class DeployerSpec extends AkkaSpec(DeployerSpec.deployerConf) {
val deployment = system.asInstanceOf[ActorSystemImpl].provider.deployer.lookup(service)
deployment must be('defined)
deployment.get.path must be(service)
deployment.get.recipe must be(None)
deployment.get.routing.getClass must be(expected.getClass)
deployment.get.routing.resizer must be(expected.resizer)
deployment.get.scope must be(LocalScope)

View file

@ -15,7 +15,7 @@ class ConfiguredLocalRoutingSpec extends AkkaSpec with DefaultTimeout with Impli
"RouterConfig" must {
"be overridable in config" in {
deployer.deploy(Deploy("/config", null, None, RandomRouter(4), LocalScope))
deployer.deploy(Deploy("/config", null, RandomRouter(4), LocalScope))
val actor = system.actorOf(Props(new Actor {
def receive = {
case "get" sender ! context.props

View file

@ -74,8 +74,7 @@ akka {
# that the values specified in the code shall be used.
# In case of routing, the actors to be routed to can be specified
# in several ways:
# - nr-of-instances: will create that many children given the actor factory
# supplied in the source code (overridable using create-as below)
# - nr-of-instances: will create that many children
# - routees.paths: will look the paths up using actorFor and route to
# them, i.e. will not create children
# - resizer: dynamically resizable number of routees as specified in resizer below
@ -88,11 +87,6 @@ akka {
# within is the timeout used for routers containing future calls
within = 5 seconds
create-as {
# fully qualified class name of recipe implementation
class = ""
}
routees {
# Alternatively to giving nr-of-instances you can specify the full
# paths of those actors which should be routed to. This setting takes

View file

@ -15,7 +15,7 @@ import akka.routing._
import java.util.concurrent.{ TimeUnit, ConcurrentHashMap }
import akka.util.ReflectiveAccess
case class Deploy(path: String, config: Config, recipe: Option[ActorRecipe] = None, routing: RouterConfig = NoRouter, scope: Scope = LocalScope)
case class Deploy(path: String, config: Config, routing: RouterConfig = NoRouter, scope: Scope = LocalScope)
case class ActorRecipe(implementationClass: Class[_ <: Actor]) //TODO Add ActorConfiguration here
@ -82,16 +82,7 @@ class Deployer(val settings: ActorSystem.Settings) {
}
}
val recipe: Option[ActorRecipe] =
deployment.getString("create-as.class") match {
case "" None
case impl
val implementationClass = getClassFor[Actor](impl).fold(e throw new ConfigurationException(
"Config option [akka.actor.deployment." + key + ".create-as.class] load failed", e), identity)
Some(ActorRecipe(implementationClass))
}
Some(Deploy(key, deployment, recipe, router, LocalScope))
Some(Deploy(key, deployment, router, LocalScope))
}
}

View file

@ -126,9 +126,9 @@ trait RouterConfig {
def adaptFromDeploy(deploy: Option[Deploy]): RouterConfig = {
deploy match {
case Some(Deploy(_, _, _, NoRouter, _)) this
case Some(Deploy(_, _, _, r, _)) r
case _ this
case Some(Deploy(_, _, NoRouter, _)) this
case Some(Deploy(_, _, r, _)) r
case _ this
}
}

View file

@ -103,7 +103,7 @@ class RemoteActorRefProvider(
})
deployment match {
case Some(Deploy(_, _, _, _, RemoteScope(address)))
case Some(Deploy(_, _, _, RemoteScope(address)))
// FIXME RK this should be done within the deployer, i.e. the whole parsing business
address.parse(remote.transports) match {
case Left(x)

View file

@ -22,7 +22,7 @@ trait RemoteRouterConfig extends RouterConfig {
val impl = context.system.asInstanceOf[ActorSystemImpl] //TODO ticket #1559
IndexedSeq.empty[ActorRef] ++ (for (i 1 to nrOfInstances) yield {
val name = "c" + i
val deploy = Deploy("", ConfigFactory.empty(), None, props.routerConfig, RemoteScope(node.next))
val deploy = Deploy("", ConfigFactory.empty(), props.routerConfig, RemoteScope(node.next))
impl.provider.actorOf(impl, props, context.self.asInstanceOf[InternalActorRef], context.self.path / name, false, Some(deploy))
})
}

View file

@ -41,7 +41,6 @@ class RemoteDeployerSpec extends AkkaSpec(RemoteDeployerSpec.deployerConf) {
Deploy(
service,
deployment.get.config,
None,
RoundRobinRouter(3),
RemoteScope(UnparsedSystemAddress(Some("sys"), UnparsedTransportAddress("akka", "wallace", 2552))))))
}