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 new file mode 100644 index 0000000000..ee5b2ff42f --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.conf @@ -0,0 +1,5 @@ +akka.enabled-modules = ["remote"] +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"] diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.opts b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.opts new file mode 100644 index 0000000000..6562171945 --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.opts @@ -0,0 +1 @@ +-Dakka.cluster.nodename=node1 -Dakka.remote.hostname=localhost -Dakka.remote.port=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 new file mode 100644 index 0000000000..ee5b2ff42f --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.conf @@ -0,0 +1,5 @@ +akka.enabled-modules = ["remote"] +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"] diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.opts b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.opts new file mode 100644 index 0000000000..ba38f5b2ce --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.opts @@ -0,0 +1 @@ +-Dakka.cluster.nodename=node2 -Dakka.remote.hostname=localhost -Dakka.remote.port=9992 diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmSpec.scala b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmSpec.scala new file mode 100644 index 0000000000..e35ee388de --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmSpec.scala @@ -0,0 +1,59 @@ +package akka.remote.direct_routed + +import akka.remote._ +import akka.routing._ + +import akka.actor.Actor +import akka.config.Config + +object DirectRoutedRemoteActorMultiJvmSpec { + val NrOfNodes = 2 + + class SomeActor extends Actor with Serializable { + def receive = { + case "identify" ⇒ { + reply(Config.nodename) + } + } + } +} + +class DirectRoutedRemoteActorMultiJvmNode1 extends MultiJvmSync { + + import DirectRoutedRemoteActorMultiJvmSpec._ + + val nodes = NrOfNodes + + "___" must { + "___" in { + barrier("setup") + Remote.start() + barrier("start") + barrier("done") + } + } +} + +class DirectRoutedRemoteActorMultiJvmNode2 extends MultiJvmSync { + + import DirectRoutedRemoteActorMultiJvmSpec._ + + val nodes = NrOfNodes + + "A new remote actor configured with a Direct router" must { + "be locally instantiated on a remote node and be able to communicate through its RemoteActorRef" in { + barrier("setup") + Remote.start() + barrier("start") + + val actor = Actor.actorOf[SomeActor]("service-hello") + actor.isInstanceOf[RoutedActorRef] must be(true) + + val result = (actor ? "identify").get + result must equal("node1") + + barrier("done") + } + } +} +