final ClusterNode node = startup(2550, Collections.singletonList("member-1"));
try {
- reachableMember(node, "member-2");
- reachableMember(node, "member-3");
+ reachableMember(node, "member-2", DEFAULT_DATACENTER);
+ reachableMember(node, "member-3", DEFAULT_DATACENTER);
registerCandidates(node, ENTITY_1, "member-1", "member-2", "member-3");
final MockEntityOwnershipListener listener = registerListener(node, ENTITY_1);
verifyListenerState(listener, ENTITY_1,true, true, false);
- unreachableMember(node, "member-1");
+ unreachableMember(node, "member-1", DEFAULT_DATACENTER);
verifyListenerState(listener, ENTITY_1, true, false, true);
- unreachableMember(node, "member-2");
+ unreachableMember(node, "member-2", DEFAULT_DATACENTER);
verifyListenerState(listener, ENTITY_1, true, false, false);
- unreachableMember(node, "member-3");
+ unreachableMember(node, "member-3", DEFAULT_DATACENTER);
verifyListenerState(listener, ENTITY_1, false, false, false);
- reachableMember(node, "member-2");
+ reachableMember(node, "member-2", DEFAULT_DATACENTER);
verifyListenerState(listener, ENTITY_1, true, false, false);
// no notification here as member-2 is already the owner
- reachableMember(node, "member-1");
+ reachableMember(node, "member-1", DEFAULT_DATACENTER);
- unreachableMember(node, "member-2");
+ unreachableMember(node, "member-2", DEFAULT_DATACENTER);
verifyListenerState(listener, ENTITY_1,true, true, false);
} finally {
ActorTestKit.shutdown(node.getActorSystem());
// this one could not be assigned during init as we dont have member-2 thats reachable
verifyListenerState(listener2, ENTITY_2, false, false, false);
- reachableMember(node, "member-2");
+ reachableMember(node, "member-2", DEFAULT_DATACENTER);
verifyListenerState(listener2, ENTITY_2, true, false, false);
} finally {
ActorTestKit.shutdown(node.getActorSystem());
private final Map<DOMEntity, String> currentOwners;
private MockSyncer(final ActorContext<OwnerSupervisorCommand> context,
- final Map<DOMEntity, Set<String>> currentCandidates,
- final Map<DOMEntity, String> currentOwners) {
+ final Map<DOMEntity, Set<String>> currentCandidates,
+ final Map<DOMEntity, String> currentOwners) {
super(context);
this.currentCandidates = currentCandidates;
this.currentOwners = currentOwners;
}
private Behavior<OwnerSupervisorCommand> switchToSupervisor(final InitialCandidateSync message) {
- return OwnerSupervisor.create(currentCandidates, currentOwners);
+ return OwnerSupervisor.create(currentCandidates, currentOwners, CODEC_CONTEXT.getInstanceIdentifierCodec());
}
}
listenerRegistry = context.spawn(EntityTypeListenerRegistry.create(role), "ListenerRegistry");
candidateRegistry = context.spawn(CandidateRegistry.create(), "CandidateRegistry");
- ownerStateChecker = context.spawn(OwnerStateChecker.create(role), "OwnerStateChecker");
final ClusterSingleton clusterSingleton = ClusterSingleton.get(context.getSystem());
// start the initial sync behavior that switches to the regular one after syncing
ownerSupervisor = clusterSingleton.init(SingletonActor.of(
MockSyncer.create(currentCandidates, currentOwners), "OwnerSupervisor"));
+
+ ownerStateChecker = context.spawn(OwnerStateChecker.create(role, ownerSupervisor, null),
+ "OwnerStateChecker");
}
public static Behavior<BootstrapCommand> create(final Map<DOMEntity, Set<String>> currentCandidates,