class RedisConfiguration {

  public List<HostAndPort> hostsAndPorts() {
    List<HostAndPort> hostAndPorts = new ArrayList<>();
    int defaultPort = Integer.parseInt(this.port);
    try {
      String[] servers = server.split("[/;]");
      for (String aServer : servers) {
        String[] serverAndPort = aServer.split(":");
        int portToUse = portToUse(serverAndPort, defaultPort);
        collectHosts(hostAndPorts, serverAndPort, portToUse);
      }
    } catch (UnknownHostException e) {
      throw new IllegalArgumentException("Unable to resolve cluster host for configuration " + this, e);
    } catch (NumberFormatException e) {
      throw new IllegalArgumentException(
          "Port paramter was in server configuration. Expecting numeric values, but it was not: " + this);
    }

    for (HostAndPort hostAndPort : hostAndPorts) {
      logger.info("hostAndPort Host:" + hostAndPort.getHost() + "hostAndPort Port:" + hostAndPort.getPort());
    }

    logger.debug("Resolved hosts from '{}':{} are {}", server, port, hostAndPorts);
    return hostAndPorts;
  }

  public  RedisConfiguration(SessionConfiguration conf);

}