code: private ImmutableList<EndPoint> getEndPointsFromHostDiscovery() {
          Iterable<ServiceEndPoint> hosts = _hostDiscovery.getHosts();
  
          ImmutableList.Builder<EndPoint> endPoints = ImmutableList.builder();
          for (final ServiceEndPoint host : hosts) {
              if (host.equals(_self)) {
                  continue;
              }
              endPoints.add(new EndPoint() {
                  @Override
                  public String getAddress() {
                      return _endPointAdapter.toEndPointAddress(host);
                  }
  
                  @Override
                  public boolean isValid() {
                      return Iterables.contains(_hostDiscovery.getHosts(), host);
                  }
              });
          }
  
          return endPoints.build();
      }
docs: Returns the current list of endPoints.  Unlike {@link #getEndPoints()} the host discovery is queried and a new
  list of endPoints is generated on every call.