From d2ef8b99bcbe9ef85673ea76368191a660354d3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bone=CC=81r?= Date: Fri, 25 Nov 2011 15:42:25 +0100 Subject: [PATCH] Fixed problems with remote configuration. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Bonér --- .../scala/akka/remote/RemoteInterface.scala | 14 ++++--- .../main/resources/akka-remote-reference.conf | 4 +- .../scala/akka/remote/RemoteExtension.scala | 1 + .../scala/akka/remote/RemoteConfigSpec.scala | 40 ++++++++++--------- 4 files changed, 33 insertions(+), 26 deletions(-) diff --git a/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala b/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala index 0dddf27452..1e3e34ad12 100644 --- a/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala +++ b/akka-actor/src/main/scala/akka/remote/RemoteInterface.scala @@ -13,6 +13,8 @@ import java.io.{ PrintWriter, PrintStream } import java.net.InetSocketAddress object RemoteAddress { + def apply(host: String, port: Int): RemoteAddress = apply(new InetSocketAddress(host, port)) + def apply(inetAddress: InetSocketAddress): RemoteAddress = inetAddress match { case null ⇒ null case inet ⇒ @@ -21,25 +23,25 @@ object RemoteAddress { case other ⇒ other.getHostAddress } val portNo = inet.getPort - RemoteAddress(host, portNo) + RemoteAddress(portNo, host) } def apply(address: String): RemoteAddress = { val index = address.indexOf(":") if (index < 1) throw new IllegalArgumentException( "Remote address must be a string on the format [\"hostname:port\"], was [" + address + "]") - RemoteAddress( - address.substring(0, index - 1), - address.substring(index, address.length).toInt) + val hostname = address.substring(0, index) + val port = address.substring(index + 1, address.length).toInt + apply(new InetSocketAddress(hostname, port)) // want the fallback in this method } } -case class RemoteAddress(hostname: String, port: Int) { +case class RemoteAddress private[remote] (port: Int, hostname: String) { @transient override lazy val toString = "" + hostname + ":" + port } -object LocalOnly extends RemoteAddress("local", 0) +object LocalOnly extends RemoteAddress(0, "local") class RemoteException(message: String) extends AkkaException(message) diff --git a/akka-remote/src/main/resources/akka-remote-reference.conf b/akka-remote/src/main/resources/akka-remote-reference.conf index 6d6db6f31c..39fcda8cd7 100644 --- a/akka-remote/src/main/resources/akka-remote-reference.conf +++ b/akka-remote/src/main/resources/akka-remote-reference.conf @@ -52,6 +52,8 @@ akka { } cluster { - seed-nodes = ["wallace:2552", "gromit:2552"] + name = "default-cluster" + nodename = "" + seed-nodes = [] } } diff --git a/akka-remote/src/main/scala/akka/remote/RemoteExtension.scala b/akka-remote/src/main/scala/akka/remote/RemoteExtension.scala index 89b09e289d..53efaba4b4 100644 --- a/akka-remote/src/main/scala/akka/remote/RemoteExtension.scala +++ b/akka-remote/src/main/scala/akka/remote/RemoteExtension.scala @@ -39,6 +39,7 @@ class RemoteExtensionSettings(cfg: Config) extends Extension { val ClusterName = getString("akka.cluster.name") val SeedNodes = Set.empty[RemoteAddress] ++ getStringList("akka.cluster.seed-nodes").asScala.toSeq.map(RemoteAddress(_)) + // FIXME remove nodename from config - should only be passed as command line arg or read from properties file etc. val NodeName: String = config.getString("akka.cluster.nodename") match { case "" ⇒ new UUID().toString case value ⇒ value diff --git a/akka-remote/src/test/scala/akka/remote/RemoteConfigSpec.scala b/akka-remote/src/test/scala/akka/remote/RemoteConfigSpec.scala index 67162f1bb6..f72904fc3f 100644 --- a/akka-remote/src/test/scala/akka/remote/RemoteConfigSpec.scala +++ b/akka-remote/src/test/scala/akka/remote/RemoteConfigSpec.scala @@ -11,6 +11,12 @@ class RemoteConfigSpec extends AkkaSpec { val config = RemoteExtension(system).config import config._ + //akka.remote + getString("akka.remote.layer") must equal("akka.cluster.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) + //akka.remote.server getInt("akka.remote.server.port") must equal(2552) getInt("akka.remote.server.message-frame-size") must equal(1048576) @@ -28,27 +34,23 @@ class RemoteConfigSpec extends AkkaSpec { // TODO cluster config will go into akka-cluster-reference.conf when we enable that module //akka.cluster - getString("akka.cluster.name") must equal("test-cluster") - getString("akka.cluster.zookeeper-server-addresses") must equal("localhost:2181") - getInt("akka.remote.server.port") must equal(2552) - getMilliseconds("akka.cluster.max-time-to-wait-until-connected") must equal(30 * 1000) - getMilliseconds("akka.cluster.session-timeout") must equal(60 * 1000) - getMilliseconds("akka.cluster.connection-timeout") must equal(60 * 1000) - getMilliseconds("akka.remote.remote-daemon-ack-timeout") must equal(30 * 1000) - getBoolean("akka.cluster.include-ref-node-in-replica-set") must equal(true) - getString("akka.remote.layer") must equal("akka.cluster.netty.NettyRemoteSupport") - getString("akka.remote.secure-cookie") must equal("") - getBoolean("akka.remote.use-passive-connections") must equal(true) - getString("akka.cluster.log-directory") must equal("_akka_cluster") + getString("akka.cluster.name") must equal("default-cluster") + getString("akka.cluster.nodename") must equal("") + getStringList("akka.cluster.seed-nodes") must equal(new java.util.ArrayList[String]) - //akka.cluster.replication - getString("akka.cluster.replication.digest-type") must equal("MAC") - getString("akka.cluster.replication.password") must equal("secret") - getInt("akka.cluster.replication.ensemble-size") must equal(3) - getInt("akka.cluster.replication.quorum-size") must equal(2) - getInt("akka.cluster.replication.snapshot-frequency") must equal(1000) - getMilliseconds("akka.cluster.replication.timeout") must equal(30 * 1000) + // getMilliseconds("akka.cluster.max-time-to-wait-until-connected") must equal(30 * 1000) + // getMilliseconds("akka.cluster.session-timeout") must equal(60 * 1000) + // getMilliseconds("akka.cluster.connection-timeout") must equal(60 * 1000) + // getBoolean("akka.cluster.include-ref-node-in-replica-set") must equal(true) + // getString("akka.cluster.log-directory") must equal("_akka_cluster") + // //akka.cluster.replication + // getString("akka.cluster.replication.digest-type") must equal("MAC") + // getString("akka.cluster.replication.password") must equal("secret") + // getInt("akka.cluster.replication.ensemble-size") must equal(3) + // getInt("akka.cluster.replication.quorum-size") must equal(2) + // getInt("akka.cluster.replication.snapshot-frequency") must equal(1000) + // getMilliseconds("akka.cluster.replication.timeout") must equal(30 * 1000) } } }