Publish cluster changes to event bus, see #2202

* ClusterEventBus
* Removed register listener and related
* Removed Gossip.meta because it doesn't handle version conflicts
This commit is contained in:
Patrik Nordwall 2012-08-14 10:58:30 +02:00
parent 9094199011
commit e38dd80f38
14 changed files with 209 additions and 159 deletions

View file

@ -11,6 +11,8 @@ import akka.testkit._
import scala.concurrent.util.duration._
import scala.collection.immutable.SortedSet
import java.util.concurrent.atomic.AtomicReference
import akka.actor.Props
import akka.actor.Actor
object NodeUpMultiJvmSpec extends MultiNodeConfig {
val first = role("first")
@ -27,6 +29,7 @@ abstract class NodeUpSpec
with MultiNodeClusterSpec {
import NodeUpMultiJvmSpec._
import ClusterEvent._
"A cluster node that is joining another cluster" must {
"be moved to UP by the leader after a convergence" taggedAs LongRunningTest in {
@ -39,12 +42,13 @@ abstract class NodeUpSpec
"be unaffected when joining again" taggedAs LongRunningTest in {
val unexpected = new AtomicReference[SortedSet[Member]](SortedSet.empty)
cluster.registerListener(new MembershipChangeListener {
def notify(members: SortedSet[Member]) {
if (members.size != 2 || members.exists(_.status != MemberStatus.Up))
unexpected.set(members)
cluster.subscribe(system.actorOf(Props(new Actor {
def receive = {
case MembersChanged(members)
if (members.size != 2 || members.exists(_.status != MemberStatus.Up))
unexpected.set(members)
}
})
})), classOf[MembersChanged])
enterBarrier("listener-registered")
runOn(second) {