package cz.cuni.mff.d3s.been.manager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.hazelcast.core.MembershipEvent; import cz.cuni.mff.d3s.been.cluster.ServiceException; import cz.cuni.mff.d3s.been.cluster.context.ClusterContext; import cz.cuni.mff.d3s.been.mq.IMessageSender; /** * Listens for cluster membership events. * * @author Martin Sixta */ final class MembershipListener extends TaskManagerService implements com.hazelcast.core.MembershipListener { private ClusterContext clusterCtx; private IMessageSender sender; /** * Creates MembershipListener. * * @param clusterCtx * connection to the cluster */ public MembershipListener(ClusterContext clusterCtx) { this.clusterCtx = clusterCtx; } private static final Logger log = LoggerFactory.getLogger(LocalTaskListener.class); @Override public void start() throws ServiceException { sender = createSender(); clusterCtx.getCluster().addMembershipListener(this); } @Override public void stop() { clusterCtx.getCluster().removeMembershipListener(this); sender.close(); } @Override public void memberAdded(MembershipEvent membershipEvent) { log.info("Member added: {}", membershipEvent.getMember()); } @Override public void memberRemoved(MembershipEvent membershipEvent) { log.info("Member removed: {}", membershipEvent.getMember()); } }