@Override protected void handleEvent(ClusterDistributionManager manager, MembershipListener listener) { listener.memberJoined(manager, getId()); } }
private void notifyListenersMemberAdded(InternalDistributedMember member) { Iterator it = membershipListeners.keySet().iterator(); while (it.hasNext()) { try { ((MembershipListener) it.next()).memberJoined(getDistributionManagerWithNoCheck(), member); } catch (Exception e) { logger.warn("Ignoring exception during member joined listener notification", e); } } }
/** * Makes note of a new console that has started up in the distributed cache. * */ private void handleConsoleStartup(InternalDistributedMember theId) { // if we have an all listener then notify it NOW. HashSet<InternalDistributedMember> tmp = null; synchronized (this.membersLock) { // Note test is under membersLock if (membersAndAdmin.contains(theId)) return; // already accounted for // Note we don't modify in place. This allows reader to get snapshots // without locking. tmp = new HashSet<>(this.membersAndAdmin); tmp.add(theId); this.membersAndAdmin = Collections.unmodifiableSet(tmp); } // synchronized for (MembershipListener listener : allMembershipListeners) { listener.memberJoined(this, theId); } logger.info("DMMembership: Admitting new administration member < {} >.", theId); // Note that we don't add the member to the list of admin consoles until // we receive a message from them. }