@Override public boolean select(Member member) { Boolean east = member.getBooleanAttribute("EAST"); return Boolean.TRUE.equals(east); } });
private static boolean canBeBootstrapped( HazelcastInstance hazelcastInstance, Config config ) { Set<Member> members = hazelcastInstance.getCluster().getMembers(); String dbName = config.get( CausalClusteringSettings.database ); Predicate<Member> acceptsToBeLeader = m -> !m.getBooleanAttribute( REFUSE_TO_BE_LEADER_KEY ); Predicate<Member> hostsMyDb = m -> dbName.equals( m.getStringAttribute( MEMBER_DB_NAME ) ); Stream<Member> membersWhoCanLeadForMyDb = members.stream().filter( acceptsToBeLeader ).filter( hostsMyDb ); Optional<Member> firstAppropriateMember = membersWhoCanLeadForMyDb.findFirst(); return firstAppropriateMember.map( Member::localMember ).orElse( false ); }