#1424 - RemoteSupport is now instantiated from the config, so now anyone can write their own Akka transport layer for remote actors

This commit is contained in:
Viktor Klang 2011-12-02 18:08:13 +01:00
parent b2ecad1327
commit 95791ce4c5
7 changed files with 17 additions and 11 deletions

View file

@ -297,7 +297,7 @@ class DefaultClusterNode private[akka] (
:: Nil)).start()
lazy val remoteService: RemoteSupport = {
val remote = new akka.cluster.netty.NettyRemoteSupport
val remote = new akka.remote.netty.NettyRemoteSupport
remote.start(hostname, port)
remote.register(RemoteClusterDaemon.Address, remoteDaemon)
remote.addListener(RemoteFailureDetector.sender)

View file

@ -8,7 +8,7 @@
akka {
remote {
transport = "akka.cluster.netty.NettyRemoteSupport"
transport = "akka.remote.netty.NettyRemoteSupport"
use-compression = off

View file

@ -71,13 +71,19 @@ class Remote(val system: ActorSystemImpl, val nodename: String) {
lazy val eventStream = new NetworkEventStream(system)
lazy val server: RemoteSupport = {
val remote = new akka.remote.netty.NettyRemoteSupport(system)
remote.start() //TODO Any application loader here?
//new akka.remote.netty.NettyRemoteSupport(system)
ReflectiveAccess.createInstance[RemoteSupport](remoteExtension.RemoteTransport, Array[Class[_]](classOf[ActorSystem]), Array[AnyRef](system)) match {
case Left(problem)
log.error(problem, "Could not load remote transport layer")
throw problem
case Right(remote)
remote.start(None) //TODO Any application loader here?
system.eventStream.subscribe(eventStream.sender, classOf[RemoteLifeCycleEvent])
system.eventStream.subscribe(remoteClientLifeCycleHandler, classOf[RemoteLifeCycleEvent])
system.eventStream.subscribe(eventStream.sender, classOf[RemoteLifeCycleEvent])
system.eventStream.subscribe(remoteClientLifeCycleHandler, classOf[RemoteLifeCycleEvent])
remote
remote
}
}
def start(): Unit = {

View file

@ -12,7 +12,7 @@ class RemoteConfigSpec extends AkkaSpec("akka.cluster.nodename = node1") {
import config._
//akka.remote
getString("akka.remote.transport") must equal("akka.cluster.netty.NettyRemoteSupport")
getString("akka.remote.transport") must equal("akka.remote.netty.NettyRemoteSupport")
getString("akka.remote.secure-cookie") must equal("")
getBoolean("akka.remote.use-passive-connections") must equal(true)
// getMilliseconds("akka.remote.remote-daemon-ack-timeout") must equal(30 * 1000)

View file

@ -128,7 +128,7 @@ akka {
# secure-cookie = "050E0A0D0D06010A00000900040D060F0C09060B" # generate your own with '$AKKA_HOME/scripts/generate_secure_cookie.sh' or using 'Crypt.generateSecureCookie'
secure-cookie = ""
layer = "akka.cluster.netty.NettyRemoteSupport"
layer = "akka.remote.netty.NettyRemoteSupport"
server {
hostname = "localhost" # The hostname or IP that clients should connect to

View file

@ -15,7 +15,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext
import org.springframework.core.io.{ ClassPathResource, Resource }
import org.scalatest.{ BeforeAndAfterAll, FeatureSpec }
import java.util.concurrent.CountDownLatch
import akka.cluster.netty.NettyRemoteSupport
import akka.remote.netty.NettyRemoteSupport
import akka.actor._
import akka.actor.Actor._

View file

@ -9,7 +9,7 @@ import org.scalatest.matchers.ShouldMatchers
import org.scalatest.junit.JUnitRunner
import org.junit.runner.RunWith
import org.springframework.context.support.ClassPathXmlApplicationContext
import akka.cluster.netty.NettyRemoteSupport
import akka.remote.netty.NettyRemoteSupport
import org.scalatest.{ BeforeAndAfterAll, FeatureSpec }
import java.util.concurrent.CountDownLatch