EventStream is now passed to failure detectors

- Also, dynamic loading is now centralized (DRY)
This commit is contained in:
Endre Sándor Varga 2013-05-17 14:16:26 +02:00
parent d0ed7385b2
commit fd4bc09035
8 changed files with 37 additions and 29 deletions

View file

@ -91,14 +91,8 @@ class Cluster(val system: ExtendedActorSystem) extends Extension {
log.info("Cluster Node [{}] - is starting up...", selfAddress)
val failureDetector: FailureDetectorRegistry[Address] = {
def createFailureDetector(): FailureDetector = {
import settings.{ FailureDetectorImplementationClass fqcn }
system.dynamicAccess.createInstanceFor[FailureDetector](
fqcn, List(classOf[Config] -> settings.FailureDetectorConfig)).recover({
case e throw new ConfigurationException(
s"Could not create custom cluster failure detector [$fqcn] due to: ${e.toString}", e)
}).get
}
def createFailureDetector(): FailureDetector =
FailureDetectorLoader.load(settings.FailureDetectorImplementationClass, settings.FailureDetectorConfig, system)
new DefaultFailureDetectorRegistry(() createFailureDetector())
}