Fixed problems with remote configuration.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
This commit is contained in:
Jonas Bonér 2011-11-25 15:42:25 +01:00
parent 8237271310
commit d2ef8b99bc
4 changed files with 33 additions and 26 deletions

View file

@ -13,6 +13,8 @@ import java.io.{ PrintWriter, PrintStream }
import java.net.InetSocketAddress import java.net.InetSocketAddress
object RemoteAddress { object RemoteAddress {
def apply(host: String, port: Int): RemoteAddress = apply(new InetSocketAddress(host, port))
def apply(inetAddress: InetSocketAddress): RemoteAddress = inetAddress match { def apply(inetAddress: InetSocketAddress): RemoteAddress = inetAddress match {
case null null case null null
case inet case inet
@ -21,25 +23,25 @@ object RemoteAddress {
case other other.getHostAddress case other other.getHostAddress
} }
val portNo = inet.getPort val portNo = inet.getPort
RemoteAddress(host, portNo) RemoteAddress(portNo, host)
} }
def apply(address: String): RemoteAddress = { def apply(address: String): RemoteAddress = {
val index = address.indexOf(":") val index = address.indexOf(":")
if (index < 1) throw new IllegalArgumentException( if (index < 1) throw new IllegalArgumentException(
"Remote address must be a string on the format [\"hostname:port\"], was [" + address + "]") "Remote address must be a string on the format [\"hostname:port\"], was [" + address + "]")
RemoteAddress( val hostname = address.substring(0, index)
address.substring(0, index - 1), val port = address.substring(index + 1, address.length).toInt
address.substring(index, 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 @transient
override lazy val toString = "" + hostname + ":" + port 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) class RemoteException(message: String) extends AkkaException(message)

View file

@ -52,6 +52,8 @@ akka {
} }
cluster { cluster {
seed-nodes = ["wallace:2552", "gromit:2552"] name = "default-cluster"
nodename = ""
seed-nodes = []
} }
} }

View file

@ -39,6 +39,7 @@ class RemoteExtensionSettings(cfg: Config) extends Extension {
val ClusterName = getString("akka.cluster.name") val ClusterName = getString("akka.cluster.name")
val SeedNodes = Set.empty[RemoteAddress] ++ getStringList("akka.cluster.seed-nodes").asScala.toSeq.map(RemoteAddress(_)) 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 { val NodeName: String = config.getString("akka.cluster.nodename") match {
case "" new UUID().toString case "" new UUID().toString
case value value case value value

View file

@ -11,6 +11,12 @@ class RemoteConfigSpec extends AkkaSpec {
val config = RemoteExtension(system).config val config = RemoteExtension(system).config
import 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 //akka.remote.server
getInt("akka.remote.server.port") must equal(2552) getInt("akka.remote.server.port") must equal(2552)
getInt("akka.remote.server.message-frame-size") must equal(1048576) 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 // TODO cluster config will go into akka-cluster-reference.conf when we enable that module
//akka.cluster //akka.cluster
getString("akka.cluster.name") must equal("test-cluster") getString("akka.cluster.name") must equal("default-cluster")
getString("akka.cluster.zookeeper-server-addresses") must equal("localhost:2181") getString("akka.cluster.nodename") must equal("")
getInt("akka.remote.server.port") must equal(2552) getStringList("akka.cluster.seed-nodes") must equal(new java.util.ArrayList[String])
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")
//akka.cluster.replication // getMilliseconds("akka.cluster.max-time-to-wait-until-connected") must equal(30 * 1000)
getString("akka.cluster.replication.digest-type") must equal("MAC") // getMilliseconds("akka.cluster.session-timeout") must equal(60 * 1000)
getString("akka.cluster.replication.password") must equal("secret") // getMilliseconds("akka.cluster.connection-timeout") must equal(60 * 1000)
getInt("akka.cluster.replication.ensemble-size") must equal(3) // getBoolean("akka.cluster.include-ref-node-in-replica-set") must equal(true)
getInt("akka.cluster.replication.quorum-size") must equal(2) // getString("akka.cluster.log-directory") must equal("_akka_cluster")
getInt("akka.cluster.replication.snapshot-frequency") must equal(1000)
getMilliseconds("akka.cluster.replication.timeout") must equal(30 * 1000)
// //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)
} }
} }
} }