private void memberAdded(Member member) { members.add(member); logger.info(membersString()); MembershipEvent event = new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_ADDED, unmodifiableSet(members)); clusterService.handleMembershipEvent(event); }
private void memberAdded(Member member) { members.add(member); logger.info(membersString()); MembershipEvent event = new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_ADDED, unmodifiableSet(members)); clusterService.handleMembershipEvent(event); }
private List<MembershipEvent> detectMembershipEvents(Map<String, Member> prevMembers) { List<MembershipEvent> events = new LinkedList<MembershipEvent>(); Set<Member> eventMembers = unmodifiableSet(members); List<Member> newMembers = new LinkedList<Member>(); for (Member member : members) { Member former = prevMembers.remove(member.getUuid()); if (former == null) { newMembers.add(member); } } // removal events should be added before added events for (Member member : prevMembers.values()) { events.add(new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_REMOVED, eventMembers)); Address address = member.getAddress(); if (clusterService.getMember(address) == null) { Connection connection = connectionManager.getActiveConnection(address); if (connection != null) { connection.close(null, newTargetDisconnectedExceptionCausedByMemberLeftEvent(connection)); } } } for (Member member : newMembers) { events.add(new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_ADDED, eventMembers)); } return events; }
private List<MembershipEvent> detectMembershipEvents(Map<String, Member> prevMembers) { List<MembershipEvent> events = new LinkedList<MembershipEvent>(); Set<Member> eventMembers = unmodifiableSet(members); List<Member> newMembers = new LinkedList<Member>(); for (Member member : members) { Member former = prevMembers.remove(member.getUuid()); if (former == null) { newMembers.add(member); } } // removal events should be added before added events for (Member member : prevMembers.values()) { events.add(new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_REMOVED, eventMembers)); Address address = member.getAddress(); if (clusterService.getMember(address) == null) { Connection connection = connectionManager.getActiveConnection(address); if (connection != null) { connection.close(null, newTargetDisconnectedExceptionCausedByMemberLeftEvent(connection)); } } } for (Member member : newMembers) { events.add(new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_ADDED, eventMembers)); } return events; }
private void memberRemoved(Member member) { members.remove(member); logger.info(membersString()); final Connection connection = connectionManager.getActiveConnection(member.getAddress()); if (connection != null) { connection.close(null, newTargetDisconnectedExceptionCausedByMemberLeftEvent(connection)); } MembershipEvent event = new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_REMOVED, unmodifiableSet(members)); clusterService.handleMembershipEvent(event); }
private void memberRemoved(Member member) { members.remove(member); logger.info(membersString()); final Connection connection = connectionManager.getActiveConnection(member.getAddress()); if (connection != null) { connection.close(null, newTargetDisconnectedExceptionCausedByMemberLeftEvent(connection)); } MembershipEvent event = new MembershipEvent(client.getCluster(), member, MembershipEvent.MEMBER_REMOVED, unmodifiableSet(members)); clusterService.handleMembershipEvent(event); }
private void sendMembershipEventNotifications(MemberImpl member, Set<Member> members, final boolean added) { int eventType = added ? MembershipEvent.MEMBER_ADDED : MembershipEvent.MEMBER_REMOVED; MembershipEvent membershipEvent = new MembershipEvent(clusterService, member, eventType, members); Collection<MembershipAwareService> membershipAwareServices = nodeEngine.getServices(MembershipAwareService.class); if (membershipAwareServices != null && !membershipAwareServices.isEmpty()) { final MembershipServiceEvent event = new MembershipServiceEvent(membershipEvent); for (final MembershipAwareService service : membershipAwareServices) { nodeEngine.getExecutionService().execute(MEMBERSHIP_EVENT_EXECUTOR_NAME, new Runnable() { public void run() { if (added) { service.memberAdded(event); } else { service.memberRemoved(event); } } }); } } EventService eventService = nodeEngine.getEventService(); Collection<EventRegistration> registrations = eventService.getRegistrations(SERVICE_NAME, SERVICE_NAME); for (EventRegistration reg : registrations) { eventService.publishEvent(SERVICE_NAME, reg, membershipEvent, reg.getId().hashCode()); } }
private void sendMembershipEventNotifications(MemberImpl member, Set<Member> members, final boolean added) { int eventType = added ? MembershipEvent.MEMBER_ADDED : MembershipEvent.MEMBER_REMOVED; MembershipEvent membershipEvent = new MembershipEvent(clusterService, member, eventType, members); Collection<MembershipAwareService> membershipAwareServices = nodeEngine.getServices(MembershipAwareService.class); if (membershipAwareServices != null && !membershipAwareServices.isEmpty()) { final MembershipServiceEvent event = new MembershipServiceEvent(membershipEvent); for (final MembershipAwareService service : membershipAwareServices) { nodeEngine.getExecutionService().execute(MEMBERSHIP_EVENT_EXECUTOR_NAME, new Runnable() { public void run() { if (added) { service.memberAdded(event); } else { service.memberRemoved(event); } } }); } } EventService eventService = nodeEngine.getEventService(); Collection<EventRegistration> registrations = eventService.getRegistrations(SERVICE_NAME, SERVICE_NAME); for (EventRegistration reg : registrations) { eventService.publishEvent(SERVICE_NAME, reg, membershipEvent, reg.getId().hashCode()); } }