Created BasicClusterActor

This commit is contained in:
Viktor Klang 2010-01-27 01:32:27 +01:00
parent e77b10c666
commit 56ac30aa2e
3 changed files with 7 additions and 6 deletions

View file

@ -5,7 +5,7 @@ import org.jgroups.{JChannel, View => JG_VIEW, Address, Message => JG_MSG, Exten
/** /**
* Clustering support via JGroups. * Clustering support via JGroups.
*/ */
class JGroupsClusterActor extends ClusterActor { class JGroupsClusterActor extends BasicClusterActor {
import ClusterActor._ import ClusterActor._
import org.scala_tools.javautils.Imports._ import org.scala_tools.javautils.Imports._

View file

@ -23,7 +23,7 @@ import com.sun.enterprise.ee.cms.impl.client.{FailureNotificationActionFactoryIm
PlannedShutdownActionFactoryImpl PlannedShutdownActionFactoryImpl
} }
class ShoalClusterActor extends ClusterActor { class ShoalClusterActor extends BasicClusterActor {
type ADDR_T = String type ADDR_T = String

View file

@ -28,6 +28,10 @@ trait Cluster {
def lookup[T](pf: PartialFunction[RemoteAddress, T]): Option[T] def lookup[T](pf: PartialFunction[RemoteAddress, T]): Option[T]
} }
trait ClusterActor extends Actor with Cluster {
val name = config.getString("akka.remote.cluster.name") getOrElse "default"
}
private[remote] object ClusterActor { private[remote] object ClusterActor {
sealed trait ClusterMessage sealed trait ClusterMessage
@ -39,7 +43,7 @@ private[remote] object ClusterActor {
/** /**
* Base class for cluster actor implementations. * Base class for cluster actor implementations.
*/ */
abstract class ClusterActor extends Actor with Cluster { abstract class BasicClusterActor extends ClusterActor {
import ClusterActor._ import ClusterActor._
case class Message(sender : ADDR_T,msg : Array[Byte]) case class Message(sender : ADDR_T,msg : Array[Byte])
@ -55,12 +59,9 @@ abstract class ClusterActor extends Actor with Cluster {
type ADDR_T type ADDR_T
@volatile private var local: Node = Node(Nil) @volatile private var local: Node = Node(Nil)
@volatile private var remotes: Map[ADDR_T, Node] = Map() @volatile private var remotes: Map[ADDR_T, Node] = Map()
val name = config.getString("akka.remote.cluster.name") getOrElse "default"
override def init = { override def init = {
remotes = new HashMap[ADDR_T, Node] remotes = new HashMap[ADDR_T, Node]
} }