content: package redis.clients.jedis.tests;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import redis.clients.jedis.HostAndPort;
  import redis.clients.jedis.Protocol;
  
  public class HostAndPortUtil {
    private static List<HostAndPort> redisHostAndPortList = new ArrayList<HostAndPort>();
    private static List<HostAndPort> sentinelHostAndPortList = new ArrayList<HostAndPort>();
    private static List<HostAndPort> clusterHostAndPortList = new ArrayList<HostAndPort>();
  
    static {
      redisHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_PORT));
      redisHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_PORT + 1));
      redisHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_PORT + 2));
      redisHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_PORT + 3));
      redisHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_PORT + 4));
      redisHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_PORT + 5));
      redisHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_PORT + 6));
  
      sentinelHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_SENTINEL_PORT));
      sentinelHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_SENTINEL_PORT + 1));
      sentinelHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_SENTINEL_PORT + 2));
      sentinelHostAndPortList.add(new HostAndPort("localhost", Protocol.DEFAULT_SENTINEL_PORT + 3));
  
      clusterHostAndPortList.add(new HostAndPort("localhost", 7379));
      clusterHostAndPortList.add(new HostAndPort("localhost", 7380));
      clusterHostAndPortList.add(new HostAndPort("localhost", 7381));
      clusterHostAndPortList.add(new HostAndPort("localhost", 7382));
      clusterHostAndPortList.add(new HostAndPort("localhost", 7383));
      clusterHostAndPortList.add(new HostAndPort("localhost", 7384));
  
      String envRedisHosts = System.getProperty("redis-hosts");
      String envSentinelHosts = System.getProperty("sentinel-hosts");
      String envClusterHosts = System.getProperty("cluster-hosts");
  
      redisHostAndPortList = parseHosts(envRedisHosts, redisHostAndPortList);
      sentinelHostAndPortList = parseHosts(envSentinelHosts, sentinelHostAndPortList);
      clusterHostAndPortList = parseHosts(envClusterHosts, clusterHostAndPortList);
    }
  
    public static List<HostAndPort> parseHosts(String envHosts,
        List<HostAndPort> existingHostsAndPorts) {
  
      if (null != envHosts && 0 < envHosts.length()) {
  
        String[] hostDefs = envHosts.split(",");
  
        if (null != hostDefs && 2 <= hostDefs.length) {
  
          List<HostAndPort> envHostsAndPorts = new ArrayList<HostAndPort>(hostDefs.length);
  
          for (String hostDef : hostDefs) {
  
            String[] hostAndPort = hostDef.split(":");
  
            if (null != hostAndPort && 2 == hostAndPort.length) {
              String host = hostAndPort[0];
              int port = Protocol.DEFAULT_PORT;
  
              try {
                port = Integer.parseInt(hostAndPort[1]);
              } catch (final NumberFormatException nfe) {
              }
  
              envHostsAndPorts.add(new HostAndPort(host, port));
            }
          }
  
          return envHostsAndPorts;
        }
      }
  
      return existingHostsAndPorts;
    }
  
    public static List<HostAndPort> getRedisServers() {
      return redisHostAndPortList;
    }
  
    public static List<HostAndPort> getSentinelServers() {
      return sentinelHostAndPortList;
    }
  
    public static List<HostAndPort> getClusterServers() {
      return clusterHostAndPortList;
    }
  }
  