diff --git a/akka-actor/src/main/scala/akka/actor/Actor.scala b/akka-actor/src/main/scala/akka/actor/Actor.scala index 52d31a2ac4..35a336a873 100644 --- a/akka-actor/src/main/scala/akka/actor/Actor.scala +++ b/akka-actor/src/main/scala/akka/actor/Actor.scala @@ -128,7 +128,8 @@ object Actor extends Logging { * val actor = actorOf[MyActor].start * */ - @deprecated def actorOf[T <: Actor : Manifest]: ActorRef = ActorRegistry.actorOf[T] + @deprecated("Use ActorRegistry.actorOf instead") + def actorOf[T <: Actor : Manifest]: ActorRef = ActorRegistry.actorOf[T] /** * Creates an ActorRef out of the Actor of the specified Class. @@ -144,7 +145,8 @@ object Actor extends Logging { * val actor = actorOf(classOf[MyActor]).start * */ - @deprecated def actorOf(clazz: Class[_ <: Actor]): ActorRef = ActorRegistry.actorOf(clazz) + @deprecated("Use ActorRegistry.actorOf instead") + def actorOf(clazz: Class[_ <: Actor]): ActorRef = ActorRegistry.actorOf(clazz) /** * Creates an ActorRef out of the Actor. Allows you to pass in a factory function @@ -164,7 +166,8 @@ object Actor extends Logging { * val actor = actorOf(new MyActor).start * */ - @deprecated def actorOf(factory: => Actor): ActorRef = ActorRegistry.actorOf(factory) + @deprecated("Use ActorRegistry.actorOf instead") + def actorOf(factory: => Actor): ActorRef = ActorRegistry.actorOf(factory) /** * Use to spawn out a block of code in an event-driven actor. Will shut actor down when @@ -181,7 +184,8 @@ object Actor extends Logging { * } * */ - @deprecated def spawn(body: => Unit)(implicit dispatcher: MessageDispatcher = Dispatchers.defaultGlobalDispatcher): Unit = + @deprecated("Use ActorRegistry.spawn instead") + def spawn(body: => Unit)(implicit dispatcher: MessageDispatcher = Dispatchers.defaultGlobalDispatcher): Unit = ActorRegistry.spawn(body) /** diff --git a/akka-remote/src/test/scala/remote/AkkaRemoteTest.scala b/akka-remote/src/test/scala/remote/AkkaRemoteTest.scala index 2c2ee4ca9a..00e09a4865 100644 --- a/akka-remote/src/test/scala/remote/AkkaRemoteTest.scala +++ b/akka-remote/src/test/scala/remote/AkkaRemoteTest.scala @@ -31,14 +31,18 @@ class AkkaRemoteTest extends val host = "localhost" val port = 25520 + def OptimizeLocal = false + var optimizeLocal_? = remote.asInstanceOf[NettyRemoteSupport].optimizeLocalScoped_? override def beforeAll { - remote.asInstanceOf[NettyRemoteSupport].optimizeLocal.set(false) //Can't run the test if we're eliminating all remote calls + if (!OptimizeLocal) + remote.asInstanceOf[NettyRemoteSupport].optimizeLocal.set(false) //Can't run the test if we're eliminating all remote calls } override def afterAll { - remote.asInstanceOf[NettyRemoteSupport].optimizeLocal.set(optimizeLocal_?) //Reset optimizelocal after all tests + if (!OptimizeLocal) + remote.asInstanceOf[NettyRemoteSupport].optimizeLocal.set(optimizeLocal_?) //Reset optimizelocal after all tests } override def beforeEach { diff --git a/akka-remote/src/test/scala/remote/OptimizedLocalScopedSpec.scala b/akka-remote/src/test/scala/remote/OptimizedLocalScopedSpec.scala new file mode 100644 index 0000000000..cac34523ba --- /dev/null +++ b/akka-remote/src/test/scala/remote/OptimizedLocalScopedSpec.scala @@ -0,0 +1,29 @@ +package akka.actor.remote + +import akka.actor. {ActorRegistry, Actor} + +object OptimizedLocalScopedSpec { + class TestActor extends Actor { + def receive = { case _ => } + } +} + +class OptimizedLocalScopedSpec extends AkkaRemoteTest { + import OptimizedLocalScopedSpec._ + override def OptimizeLocal = true + + "An enabled optimized local scoped remote" should { + "Fetch local actor ref when scope is local" in { + val fooActor = ActorRegistry.actorOf[TestActor].start + remote.register("foo", fooActor) + + remote.actorFor("foo", host, port) must be (fooActor) + } + + "Create local actor when client-managed is hosted locally" in { + val localClientManaged = ActorRegistry.remote.actorOf[TestActor](host, port) + localClientManaged.homeAddress must be (None) + } + + } +} \ No newline at end of file diff --git a/akka-remote/src/test/scala/remote/UnOptimizedLocalScopedSpec.scala b/akka-remote/src/test/scala/remote/UnOptimizedLocalScopedSpec.scala new file mode 100644 index 0000000000..934f56d82a --- /dev/null +++ b/akka-remote/src/test/scala/remote/UnOptimizedLocalScopedSpec.scala @@ -0,0 +1,28 @@ +package akka.actor.remote +import akka.actor. {ActorRegistry, Actor} + +object UnOptimizedLocalScopedSpec { + class TestActor extends Actor { + def receive = { case _ => } + } +} + +class UnOptimizedLocalScopedSpec extends AkkaRemoteTest { + import UnOptimizedLocalScopedSpec._ + override def OptimizeLocal = false + + "An enabled optimized local scoped remote" should { + "Fetch local actor ref when scope is local" in { + val fooActor = ActorRegistry.actorOf[TestActor].start + remote.register("foo", fooActor) + + remote.actorFor("foo", host, port) must not be (fooActor) + } + + "Create local actor when client-managed is hosted locally" in { + val localClientManaged = ActorRegistry.remote.actorOf[TestActor](host, port) + localClientManaged.homeAddress must not be (None) + } + + } +} \ No newline at end of file