2012-02-02 09:40:17 +01:00
|
|
|
/**
|
|
|
|
|
* Copyright (C) 2009-2012 Typesafe Inc. <http://www.typesafe.com>
|
|
|
|
|
*/
|
2012-05-22 11:37:09 +02:00
|
|
|
package docs.remoting
|
2012-02-02 09:40:17 +01:00
|
|
|
|
|
|
|
|
import akka.actor.{ ExtendedActorSystem, ActorSystem, Actor, ActorRef }
|
|
|
|
|
import akka.testkit.{ AkkaSpec, ImplicitSender }
|
|
|
|
|
//#import
|
2012-02-27 10:28:20 +01:00
|
|
|
import akka.actor.{ Props, Deploy, Address, AddressFromURIString }
|
2012-02-02 09:40:17 +01:00
|
|
|
import akka.remote.RemoteScope
|
|
|
|
|
//#import
|
|
|
|
|
|
|
|
|
|
object RemoteDeploymentDocSpec {
|
|
|
|
|
|
|
|
|
|
class Echo extends Actor {
|
|
|
|
|
def receive = {
|
|
|
|
|
case x ⇒ sender ! self
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class RemoteDeploymentDocSpec extends AkkaSpec("""
|
|
|
|
|
akka.actor.provider = "akka.remote.RemoteActorRefProvider"
|
|
|
|
|
akka.remote.netty.port = 0
|
|
|
|
|
""") with ImplicitSender {
|
|
|
|
|
|
|
|
|
|
import RemoteDeploymentDocSpec._
|
|
|
|
|
|
|
|
|
|
val other = ActorSystem("remote", system.settings.config)
|
2012-02-13 17:46:14 +01:00
|
|
|
val address = other.asInstanceOf[ExtendedActorSystem].provider.getExternalAddressFor(Address("akka", "s", "host", 1)).get
|
2012-02-02 09:40:17 +01:00
|
|
|
|
|
|
|
|
override def atTermination() { other.shutdown() }
|
|
|
|
|
|
|
|
|
|
"demonstrate programmatic deployment" in {
|
|
|
|
|
//#deploy
|
|
|
|
|
val ref = system.actorOf(Props[Echo].withDeploy(Deploy(scope = RemoteScope(address))))
|
|
|
|
|
//#deploy
|
|
|
|
|
ref.path.address must be(address)
|
|
|
|
|
ref ! "test"
|
|
|
|
|
expectMsgType[ActorRef].path.address must be(address)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"demonstrate address extractor" in {
|
|
|
|
|
//#make-address
|
2012-02-27 10:28:20 +01:00
|
|
|
val one = AddressFromURIString("akka://sys@host:1234")
|
2012-02-02 09:40:17 +01:00
|
|
|
val two = Address("akka", "sys", "host", 1234) // this gives the same
|
|
|
|
|
//#make-address
|
|
|
|
|
one must be === two
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|