From 1bfe3716e27faf7fdecc2f97cb5cdc1428bf803a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bone=CC=81r?= Date: Thu, 22 Sep 2011 03:37:42 +0200 Subject: [PATCH] Added first test of remote actor provisioning using RemoteActorRefProvider. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Bonér --- .../{cluster => remote}/ClusterTestNode.scala | 2 +- .../MasterClusterTestNode.scala | 2 +- .../{cluster => remote}/QuietReporter.scala | 0 .../NewRemoteActorMultiJvmNode1.conf | 4 ++ .../NewRemoteActorMultiJvmNode1.opts | 1 + .../NewRemoteActorMultiJvmNode2.conf | 4 ++ .../NewRemoteActorMultiJvmNode2.opts | 1 + .../NewRemoteActorMultiJvmSpec.scala | 49 +++++++++++++++++++ 8 files changed, 61 insertions(+), 2 deletions(-) rename akka-remote/src/multi-jvm/scala/akka/{cluster => remote}/ClusterTestNode.scala (99%) rename akka-remote/src/multi-jvm/scala/akka/{cluster => remote}/MasterClusterTestNode.scala (97%) rename akka-remote/src/multi-jvm/scala/akka/{cluster => remote}/QuietReporter.scala (100%) create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.conf create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.opts create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.conf create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.opts create mode 100644 akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmSpec.scala diff --git a/akka-remote/src/multi-jvm/scala/akka/cluster/ClusterTestNode.scala b/akka-remote/src/multi-jvm/scala/akka/remote/ClusterTestNode.scala similarity index 99% rename from akka-remote/src/multi-jvm/scala/akka/cluster/ClusterTestNode.scala rename to akka-remote/src/multi-jvm/scala/akka/remote/ClusterTestNode.scala index 89cb8b18d5..32abd54953 100644 --- a/akka-remote/src/multi-jvm/scala/akka/cluster/ClusterTestNode.scala +++ b/akka-remote/src/multi-jvm/scala/akka/remote/ClusterTestNode.scala @@ -2,7 +2,7 @@ * Copyright (C) 2009-2011 Typesafe Inc. */ -package akka.cluster +package akka.remote import org.scalatest.WordSpec import org.scalatest.matchers.MustMatchers diff --git a/akka-remote/src/multi-jvm/scala/akka/cluster/MasterClusterTestNode.scala b/akka-remote/src/multi-jvm/scala/akka/remote/MasterClusterTestNode.scala similarity index 97% rename from akka-remote/src/multi-jvm/scala/akka/cluster/MasterClusterTestNode.scala rename to akka-remote/src/multi-jvm/scala/akka/remote/MasterClusterTestNode.scala index 2bd1523752..eea1bbf9a8 100644 --- a/akka-remote/src/multi-jvm/scala/akka/cluster/MasterClusterTestNode.scala +++ b/akka-remote/src/multi-jvm/scala/akka/remote/MasterClusterTestNode.scala @@ -2,7 +2,7 @@ * Copyright (C) 2009-2011 Typesafe Inc. */ -package akka.cluster +package akka.remote import org.scalatest.WordSpec import org.scalatest.matchers.MustMatchers diff --git a/akka-remote/src/multi-jvm/scala/akka/cluster/QuietReporter.scala b/akka-remote/src/multi-jvm/scala/akka/remote/QuietReporter.scala similarity index 100% rename from akka-remote/src/multi-jvm/scala/akka/cluster/QuietReporter.scala rename to akka-remote/src/multi-jvm/scala/akka/remote/QuietReporter.scala 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 new file mode 100644 index 0000000000..61d1ac63e6 --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.conf @@ -0,0 +1,4 @@ +akka.enabled-modules = ["remote"] +akka.event-handler-level = "DEBUG" +akka.actor.deployment.service-hello.remote.hostname = "localhost" +akka.actor.deployment.service-hello.remote.port = 9991 diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.opts b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.opts new file mode 100644 index 0000000000..6562171945 --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode1.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/new_remote_actor/NewRemoteActorMultiJvmNode2.conf b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.conf new file mode 100644 index 0000000000..61d1ac63e6 --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.conf @@ -0,0 +1,4 @@ +akka.enabled-modules = ["remote"] +akka.event-handler-level = "DEBUG" +akka.actor.deployment.service-hello.remote.hostname = "localhost" +akka.actor.deployment.service-hello.remote.port = 9991 diff --git a/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.opts b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.opts new file mode 100644 index 0000000000..ba38f5b2ce --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmNode2.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/new_remote_actor/NewRemoteActorMultiJvmSpec.scala b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmSpec.scala new file mode 100644 index 0000000000..a5d4da91fd --- /dev/null +++ b/akka-remote/src/multi-jvm/scala/akka/remote/new_remote_actor/NewRemoteActorMultiJvmSpec.scala @@ -0,0 +1,49 @@ +package akka.remote.new_remote_actor + +import akka.remote._ + +import akka.actor.Actor +import akka.config.Config + +object NewRemoteActorMultiJvmSpec { + val NrOfNodes = 2 + + class SomeActor extends Actor with Serializable { + def receive = { + case "identify" ⇒ { + self.reply(Config.nodename) + } + } + } +} + +class NewRemoteActorMultiJvmNode1 extends MasterClusterTestNode { + + import NewRemoteActorMultiJvmSpec._ + + val testNodes = NrOfNodes + + "___" must { + "___" in { + Remote.start() + Thread.sleep(5000) + } + } +} + +class NewRemoteActorMultiJvmNode2 extends ClusterTestNode { + + import NewRemoteActorMultiJvmSpec._ + + "A new remote actor" must { + "be locally instantiated on a remote node and be able to communicate through its RemoteActorRef" in { + Remote.start() + + val actor = Actor.actorOf[SomeActor]("service-hello") + + val result = (actor ? "identify").get + result must equal("node1") + } + } +} +