package io.teknek.nibiru.cluster; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import io.teknek.nibiru.Configuration; import io.teknek.nibiru.ServerId; public class ConfigurationClusterMembership extends ClusterMembership { public static String HOSTS = "hosts"; private List<ClusterMember> live; public ConfigurationClusterMembership(Configuration configuration, ServerId serverId) { super(configuration, serverId); } @SuppressWarnings("unchecked") @Override public void init() { live = new ArrayList<ClusterMember>(); Map<String,String> hosts = null; if (configuration.getClusterMembershipProperties() != null){ hosts = (Map<String,String>) configuration.getClusterMembershipProperties().get(HOSTS); } else { hosts = new HashMap<>(); } for (Map.Entry<String, String> entry : hosts.entrySet()){ ClusterMember cm = new ClusterMember(); cm.setHost(entry.getKey()); cm.setId(entry.getValue()); cm.setPort(0); live.add(cm); } } @Override public void shutdown() { } @Override public List<ClusterMember> getLiveMembers() { return live; } @Override public List<ClusterMember> getDeadMembers() { return new ArrayList<>(); } }