private void initMembershipListener() {
   for (MembershipListener membershipListener : listeners.values()) {
     if (membershipListener instanceof InitialMembershipListener) {
       // TODO: needs sync with membership events...
       final Cluster cluster = client.getCluster();
       ((InitialMembershipListener) membershipListener)
           .init(new InitialMembershipEvent(cluster, cluster.getMembers()));
     }
   }
 }
Example #2
0
  public String addMembershipListener(MembershipListener listener) {
    checkNotNull(listener, "listener cannot be null");

    EventService eventService = nodeEngine.getEventService();
    EventRegistration registration;
    if (listener instanceof InitialMembershipListener) {
      lock.lock();
      try {
        ((InitialMembershipListener) listener).init(new InitialMembershipEvent(this, getMembers()));
        registration = eventService.registerLocalListener(SERVICE_NAME, SERVICE_NAME, listener);
      } finally {
        lock.unlock();
      }
    } else {
      registration = eventService.registerLocalListener(SERVICE_NAME, SERVICE_NAME, listener);
    }

    return registration.getId();
  }