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
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)

View file

@ -52,6 +52,8 @@ akka {
}
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 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

View file

@ -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)
}
}
}