diff --git a/akka-cluster/pom.xml b/akka-cluster/pom.xml index c0ed52b231..f18c02f1dc 100644 --- a/akka-cluster/pom.xml +++ b/akka-cluster/pom.xml @@ -15,8 +15,8 @@ akka-cluster-jgroups - akka-cluster-tribes - akka-cluster-shoal + diff --git a/akka-core/src/main/scala/remote/Cluster.scala b/akka-core/src/main/scala/remote/Cluster.scala index ca2031e052..61e42d4695 100644 --- a/akka-core/src/main/scala/remote/Cluster.scala +++ b/akka-core/src/main/scala/remote/Cluster.scala @@ -6,10 +6,9 @@ package se.scalablesolutions.akka.remote import se.scalablesolutions.akka.Config.config import se.scalablesolutions.akka.config.ScalaConfig._ -import se.scalablesolutions.akka.remote.Cluster.{Node, RelayedMessage} import se.scalablesolutions.akka.serialization.Serializer import se.scalablesolutions.akka.actor.{Supervisor, SupervisorFactory, Actor, ActorRegistry} - +import se.scalablesolutions.akka.util.Logging import scala.collection.immutable.{Map, HashMap} /** @@ -41,18 +40,23 @@ abstract class ClusterActor extends Actor with Cluster { *

* Loads a specified ClusterActor and delegates to that instance. */ -object Cluster extends Cluster { +object Cluster extends Cluster with Logging { private[remote] sealed trait ClusterMessage private[remote] case class Node(endpoints: List[RemoteAddress]) extends ClusterMessage private[remote] case class RelayedMessage(actorClassFQN: String, msg: AnyRef) extends ClusterMessage - private[remote] val clusterActor: Option[ClusterActor] = - config.getString("akka.remote.cluster.actor") map { name => - val a = Class.forName(name).newInstance.asInstanceOf[ClusterActor] - a.start - a - } - + private[remote] val clusterActor: Option[ClusterActor] = { + val name = config.getString("akka.remote.cluster.actor","not defined") + try { + val a = Class.forName(name).newInstance.asInstanceOf[ClusterActor] + a.start + Some(a) + } + catch { + case e => log.error(e,"Couldn't load Cluster provider: [%s]",name) + None + } + } private[remote] val supervisor: Option[Supervisor] = if (clusterActor.isDefined) { val sup = SupervisorFactory( diff --git a/config/akka-reference.conf b/config/akka-reference.conf index 246f2d1954..2120d2b93c 100644 --- a/config/akka-reference.conf +++ b/config/akka-reference.conf @@ -48,7 +48,7 @@ name = "default" # The name of the cluster - #actor = "se.scalablesolutions.akka.remote.JGroupsClusterActor" # FQN of an implementation of ClusterActor + actor = "se.scalablesolutions.akka.remote.JGroupsClusterActor" # FQN of an implementation of ClusterActor serializer = "se.scalablesolutions.akka.serialization.Serializer$Java" # FQN of the serializer class diff --git a/pom.xml b/pom.xml index aa3201ffbe..6186abb2e1 100755 --- a/pom.xml +++ b/pom.xml @@ -50,9 +50,9 @@ akka-util-java akka-util + akka-cluster akka-core akka-persistence - akka-cluster akka-rest akka-comet akka-amqp