@VisibleForTesting
public void applyProxyConfig(final Builder builder, final HttpClientConfig config) {
if (config.getProxyConfig() != null && config.getProxyConfig().getHttpProxyConfig() != null) {
Map<String, HttpHost> proxies = Maps.newHashMap();
HttpProxyConfig httpProxyConfig = config.getProxyConfig().getHttpProxyConfig();
HttpHost httpProxy = new HttpHost(httpProxyConfig.getHostname(), httpProxyConfig.getPort());
applyAuthenticationConfig(builder, httpProxyConfig.getAuthenticationConfig(), httpProxy);
log.debug("http proxy setup with host '{}'", httpProxyConfig.getHostname());
proxies.put("http", httpProxy);
proxies.put("https", httpProxy);
if (config.getProxyConfig().getHttpsProxyConfig() != null) {
HttpProxyConfig httpsProxyConfig = config.getProxyConfig().getHttpsProxyConfig();
HttpHost httpsProxy = new HttpHost(httpsProxyConfig.getHostname(), httpsProxyConfig.getPort());
applyAuthenticationConfig(builder, httpsProxyConfig.getAuthenticationConfig(), httpsProxy);
log.debug("https proxy setup with host '{}'", httpsProxy.getHostName());
proxies.put("https", httpsProxy);
}
final Set<Pattern> nonProxyHostPatterns = Sets.newHashSet();