From 9e580b09e37a66002c7fc5c2e5a0445b72973786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bone=CC=81r?= Date: Wed, 5 Oct 2011 18:45:26 +0200 Subject: [PATCH] Added multi-jvm test for remote actor configured with Direct router. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Bonér --- .../DirectRoutedRemoteActorMultiJvmNode1.conf | 5 ++ .../DirectRoutedRemoteActorMultiJvmNode1.opts | 1 + .../DirectRoutedRemoteActorMultiJvmNode2.conf | 5 ++ .../DirectRoutedRemoteActorMultiJvmNode2.opts | 1 + .../DirectRoutedRemoteActorMultiJvmSpec.scala | 59 +++++++++++++++++++ 5 files changed, 71 insertions(+) create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.conf create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode1.opts create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.conf create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmNode2.opts create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/direct_routed/DirectRoutedRemoteActorMultiJvmSpec.scala 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") + } + } +} +