class ConfigBasedJmxHostProvider implements JMXHostProvider {

  @Override
  public Set<String> getHostNames(String clusterName, String componentName) {
    return overridenJmxUri(componentName)
      .map(uri -> singleton(resolve(uri, clusterName).getHost()))
      .orElseGet(() -> defaultProvider.getHostNames(clusterName, componentName));
  }

  public  ConfigBasedJmxHostProvider(Map<String, UriInfo> overriddenJmxUris, JMXHostProvider defaultProvider, ConfigHelper configHelper);

}