Use new RibbonProperties consistently.

parent ca81bdf7
...@@ -28,6 +28,8 @@ import java.util.HashMap; ...@@ -28,6 +28,8 @@ import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
...@@ -38,7 +40,6 @@ import com.netflix.client.ClientRequest; ...@@ -38,7 +40,6 @@ import com.netflix.client.ClientRequest;
import com.netflix.client.IResponse; import com.netflix.client.IResponse;
import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RequestSpecificRetryHandler;
import com.netflix.client.RetryHandler; import com.netflix.client.RetryHandler;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.Server;
...@@ -54,6 +55,7 @@ import static org.springframework.cloud.netflix.ribbon.RibbonUtils.updateToSecur ...@@ -54,6 +55,7 @@ import static org.springframework.cloud.netflix.ribbon.RibbonUtils.updateToSecur
public class FeignLoadBalancer extends public class FeignLoadBalancer extends
AbstractLoadBalancerAwareClient<FeignLoadBalancer.RibbonRequest, FeignLoadBalancer.RibbonResponse> { AbstractLoadBalancerAwareClient<FeignLoadBalancer.RibbonRequest, FeignLoadBalancer.RibbonResponse> {
private final RibbonProperties ribbon;
protected int connectTimeout; protected int connectTimeout;
protected int readTimeout; protected int readTimeout;
protected IClientConfig clientConfig; protected IClientConfig clientConfig;
...@@ -64,8 +66,10 @@ public class FeignLoadBalancer extends ...@@ -64,8 +66,10 @@ public class FeignLoadBalancer extends
super(lb, clientConfig); super(lb, clientConfig);
this.setRetryHandler(RetryHandler.DEFAULT); this.setRetryHandler(RetryHandler.DEFAULT);
this.clientConfig = clientConfig; this.clientConfig = clientConfig;
this.connectTimeout = clientConfig.get(CommonClientConfigKey.ConnectTimeout); this.ribbon = RibbonProperties.from(clientConfig);
this.readTimeout = clientConfig.get(CommonClientConfigKey.ReadTimeout); RibbonProperties ribbon = this.ribbon;
this.connectTimeout = ribbon.getConnectTimeout();
this.readTimeout = ribbon.getReadTimeout();
this.serverIntrospector = serverIntrospector; this.serverIntrospector = serverIntrospector;
} }
...@@ -74,11 +78,10 @@ public class FeignLoadBalancer extends ...@@ -74,11 +78,10 @@ public class FeignLoadBalancer extends
throws IOException { throws IOException {
Request.Options options; Request.Options options;
if (configOverride != null) { if (configOverride != null) {
RibbonProperties override = RibbonProperties.from(configOverride);
options = new Request.Options( options = new Request.Options(
configOverride.get(CommonClientConfigKey.ConnectTimeout, override.connectTimeout(this.connectTimeout),
this.connectTimeout), override.readTimeout(this.readTimeout));
(configOverride.get(CommonClientConfigKey.ReadTimeout,
this.readTimeout)));
} }
else { else {
options = new Request.Options(this.connectTimeout, this.readTimeout); options = new Request.Options(this.connectTimeout, this.readTimeout);
...@@ -90,8 +93,7 @@ public class FeignLoadBalancer extends ...@@ -90,8 +93,7 @@ public class FeignLoadBalancer extends
@Override @Override
public RequestSpecificRetryHandler getRequestSpecificRetryHandler( public RequestSpecificRetryHandler getRequestSpecificRetryHandler(
RibbonRequest request, IClientConfig requestConfig) { RibbonRequest request, IClientConfig requestConfig) {
if (this.clientConfig.get(CommonClientConfigKey.OkToRetryOnAllOperations, if (this.ribbon.isOkToRetryOnAllOperations()) {
false)) {
return new RequestSpecificRetryHandler(true, true, this.getRetryHandler(), return new RequestSpecificRetryHandler(true, true, this.getRetryHandler(),
requestConfig); requestConfig);
} }
......
...@@ -30,6 +30,7 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFact ...@@ -30,6 +30,7 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFact
import org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException; import org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException;
import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser; import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser;
import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import org.springframework.retry.RetryCallback; import org.springframework.retry.RetryCallback;
import org.springframework.retry.RetryContext; import org.springframework.retry.RetryContext;
...@@ -39,7 +40,6 @@ import org.springframework.retry.policy.NeverRetryPolicy; ...@@ -39,7 +40,6 @@ import org.springframework.retry.policy.NeverRetryPolicy;
import org.springframework.retry.support.RetryTemplate; import org.springframework.retry.support.RetryTemplate;
import com.netflix.client.DefaultLoadBalancerRetryHandler; import com.netflix.client.DefaultLoadBalancerRetryHandler;
import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RequestSpecificRetryHandler;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.Server;
...@@ -78,11 +78,10 @@ public class RetryableFeignLoadBalancer extends FeignLoadBalancer implements Ser ...@@ -78,11 +78,10 @@ public class RetryableFeignLoadBalancer extends FeignLoadBalancer implements Ser
throws IOException { throws IOException {
final Request.Options options; final Request.Options options;
if (configOverride != null) { if (configOverride != null) {
RibbonProperties ribbon = RibbonProperties.from(configOverride);
options = new Request.Options( options = new Request.Options(
configOverride.get(CommonClientConfigKey.ConnectTimeout, ribbon.connectTimeout(this.connectTimeout),
this.connectTimeout), ribbon.readTimeout(this.readTimeout));
(configOverride.get(CommonClientConfigKey.ReadTimeout,
this.readTimeout)));
} }
else { else {
options = new Request.Options(this.connectTimeout, this.readTimeout); options = new Request.Options(this.connectTimeout, this.readTimeout);
......
...@@ -19,8 +19,9 @@ package org.springframework.cloud.netflix.ribbon.eureka; ...@@ -19,8 +19,9 @@ package org.springframework.cloud.netflix.ribbon.eureka;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import com.netflix.appinfo.InstanceInfo; import com.netflix.appinfo.InstanceInfo;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerList; import com.netflix.loadbalancer.ServerList;
...@@ -32,15 +33,14 @@ import com.netflix.niws.loadbalancer.DiscoveryEnabledServer; ...@@ -32,15 +33,14 @@ import com.netflix.niws.loadbalancer.DiscoveryEnabledServer;
public class DomainExtractingServerList implements ServerList<DiscoveryEnabledServer> { public class DomainExtractingServerList implements ServerList<DiscoveryEnabledServer> {
private ServerList<DiscoveryEnabledServer> list; private ServerList<DiscoveryEnabledServer> list;
private final RibbonProperties ribbon;
private IClientConfig clientConfig;
private boolean approximateZoneFromHostname; private boolean approximateZoneFromHostname;
public DomainExtractingServerList(ServerList<DiscoveryEnabledServer> list, public DomainExtractingServerList(ServerList<DiscoveryEnabledServer> list,
IClientConfig clientConfig, boolean approximateZoneFromHostname) { IClientConfig clientConfig, boolean approximateZoneFromHostname) {
this.list = list; this.list = list;
this.clientConfig = clientConfig; this.ribbon = RibbonProperties.from(clientConfig);
this.approximateZoneFromHostname = approximateZoneFromHostname; this.approximateZoneFromHostname = approximateZoneFromHostname;
} }
...@@ -60,10 +60,8 @@ public class DomainExtractingServerList implements ServerList<DiscoveryEnabledSe ...@@ -60,10 +60,8 @@ public class DomainExtractingServerList implements ServerList<DiscoveryEnabledSe
private List<DiscoveryEnabledServer> setZones(List<DiscoveryEnabledServer> servers) { private List<DiscoveryEnabledServer> setZones(List<DiscoveryEnabledServer> servers) {
List<DiscoveryEnabledServer> result = new ArrayList<>(); List<DiscoveryEnabledServer> result = new ArrayList<>();
boolean isSecure = this.clientConfig.getPropertyAsBoolean( boolean isSecure = this.ribbon.isSecure(true);
CommonClientConfigKey.IsSecure, Boolean.TRUE); boolean shouldUseIpAddr = this.ribbon.isUseIPAddrForServer();
boolean shouldUseIpAddr = this.clientConfig.getPropertyAsBoolean(
CommonClientConfigKey.UseIPAddrForServer, Boolean.FALSE);
for (DiscoveryEnabledServer server : servers) { for (DiscoveryEnabledServer server : servers) {
result.add(new DomainExtractingServer(server, isSecure, shouldUseIpAddr, result.add(new DomainExtractingServer(server, isSecure, shouldUseIpAddr,
this.approximateZoneFromHostname)); this.approximateZoneFromHostname));
......
package org.springframework.cloud.netflix.ribbon;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig;
import com.netflix.client.config.IClientConfigKey;
import java.util.concurrent.TimeUnit;
import static com.netflix.client.config.CommonClientConfigKey.PoolKeepAliveTime;
import static com.netflix.client.config.CommonClientConfigKey.PoolKeepAliveTimeUnits;
import static com.netflix.client.config.CommonClientConfigKey.Port;
import static com.netflix.client.config.CommonClientConfigKey.SecurePort;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_CONNECTION_IDLE_TIMERTASK_REPEAT_IN_MSECS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_FOLLOW_REDIRECTS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_MAX_CONNECTIONS_PER_HOST;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_MAX_TOTAL_CONNECTIONS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_POOL_KEEP_ALIVE_TIME;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_POOL_KEEP_ALIVE_TIME_UNITS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_PORT;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_READ_TIMEOUT;
public class RibbonProperties {
private final IClientConfig config;
public static RibbonProperties from(IClientConfig config) {
return new RibbonProperties(config);
}
RibbonProperties(IClientConfig config) {
this.config = config;
}
public Integer getConnectionCleanerRepeatInterval() {
return get(CommonClientConfigKey.ConnectionCleanerRepeatInterval);
}
public int connectionCleanerRepeatInterval() {
return get(CommonClientConfigKey.ConnectionCleanerRepeatInterval,
DEFAULT_CONNECTION_IDLE_TIMERTASK_REPEAT_IN_MSECS);
}
public Integer getConnectTimeout() {
return get(CommonClientConfigKey.ConnectTimeout);
}
public int connectTimeout() {
return connectTimeout(DEFAULT_CONNECT_TIMEOUT);
}
public int connectTimeout(int defaultValue) {
return get(CommonClientConfigKey.ConnectTimeout, defaultValue);
}
public Boolean getFollowRedirects() {
return get(CommonClientConfigKey.FollowRedirects);
}
public boolean isFollowRedirects() {
return isFollowRedirects(DEFAULT_FOLLOW_REDIRECTS);
}
public boolean isFollowRedirects(boolean defaultValue) {
return get(CommonClientConfigKey.FollowRedirects, defaultValue);
}
public Integer getMaxConnectionsPerHost() {
return get(CommonClientConfigKey.MaxConnectionsPerHost);
}
public int maxConnectionsPerHost() {
return maxConnectionsPerHost(DEFAULT_MAX_CONNECTIONS_PER_HOST);
}
public int maxConnectionsPerHost(int defaultValue) {
return get(CommonClientConfigKey.MaxConnectionsPerHost, defaultValue);
}
public Integer getMaxTotalConnections() {
return get(CommonClientConfigKey.MaxTotalConnections);
}
public int maxTotalConnections() {
return maxTotalConnections(DEFAULT_MAX_TOTAL_CONNECTIONS);
}
public int maxTotalConnections(int defaultValue) {
return get(CommonClientConfigKey.MaxTotalConnections, defaultValue);
}
public Boolean getOkToRetryOnAllOperations() {
return get(CommonClientConfigKey.OkToRetryOnAllOperations);
}
public boolean isOkToRetryOnAllOperations() {
return get(CommonClientConfigKey.OkToRetryOnAllOperations,
DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS);
}
@SuppressWarnings("deprecation")
public Long getPoolKeepAliveTime() {
Object property = this.config.getProperty(PoolKeepAliveTime);
if (property instanceof Long) {
return (Long) property;
}
return null;
}
@SuppressWarnings("deprecation")
public long poolKeepAliveTime() {
Object property = this.config.getProperty(PoolKeepAliveTime);
if (property instanceof Long) {
return (Long) property;
}
return DEFAULT_POOL_KEEP_ALIVE_TIME;
}
@SuppressWarnings("deprecation")
public TimeUnit getPoolKeepAliveTimeUnits() {
Object property = this.config.getProperty(PoolKeepAliveTimeUnits);
if (property instanceof TimeUnit) {
return (TimeUnit) property;
}
return DEFAULT_POOL_KEEP_ALIVE_TIME_UNITS;
}
public Integer getPort() {
return get(Port);
}
public int port() {
return get(Port, DEFAULT_PORT);
}
public Integer getReadTimeout() {
return get(CommonClientConfigKey.ReadTimeout);
}
public int readTimeout() {
return readTimeout(DEFAULT_READ_TIMEOUT);
}
public int readTimeout(int defaultValue) {
return get(CommonClientConfigKey.ReadTimeout, defaultValue);
}
public Boolean getSecure() {
return get(CommonClientConfigKey.IsSecure);
}
public boolean isSecure() {
return isSecure(false);
}
public boolean isSecure(boolean defaultValue) {
return get(CommonClientConfigKey.IsSecure, defaultValue);
}
public Integer getSecurePort() {
return this.config.get(SecurePort);
}
public Boolean getUseIPAddrForServer() {
return get(CommonClientConfigKey.UseIPAddrForServer);
}
public boolean isUseIPAddrForServer() {
return isUseIPAddrForServer(false);
}
public boolean isUseIPAddrForServer(boolean defaultValue) {
return get(CommonClientConfigKey.UseIPAddrForServer, defaultValue);
}
public <T> boolean has(IClientConfigKey<T> key) {
return this.config.containsProperty(key);
}
public <T> T get(IClientConfigKey<T> key) {
return this.config.get(key);
}
public <T> T get(IClientConfigKey<T> key, T defaultValue) {
return this.config.get(key, defaultValue);
}
}
...@@ -2,7 +2,6 @@ package org.springframework.cloud.netflix.ribbon; ...@@ -2,7 +2,6 @@ package org.springframework.cloud.netflix.ribbon;
import java.net.URI; import java.net.URI;
import com.netflix.client.config.IClientConfigKey;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.CommonClientConfigKey;
...@@ -17,14 +16,6 @@ import java.util.Map; ...@@ -17,14 +16,6 @@ import java.util.Map;
import static com.netflix.client.config.CommonClientConfigKey.DeploymentContextBasedVipAddresses; import static com.netflix.client.config.CommonClientConfigKey.DeploymentContextBasedVipAddresses;
import static com.netflix.client.config.CommonClientConfigKey.EnableZoneAffinity; import static com.netflix.client.config.CommonClientConfigKey.EnableZoneAffinity;
import static com.netflix.client.config.CommonClientConfigKey.Port;
import static com.netflix.client.config.CommonClientConfigKey.SecurePort;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_FOLLOW_REDIRECTS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_MAX_TOTAL_CONNECTIONS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_PORT;
import static com.netflix.client.config.DefaultClientConfigImpl.DEFAULT_READ_TIMEOUT;
/** /**
* @author Spencer Gibb * @author Spencer Gibb
...@@ -50,94 +41,6 @@ public class RibbonUtils { ...@@ -50,94 +41,6 @@ public class RibbonUtils {
setRibbonProperty(serviceId, EnableZoneAffinity.key(), "true"); setRibbonProperty(serviceId, EnableZoneAffinity.key(), "true");
} }
public static RibbonProperties from(IClientConfig config) {
return new RibbonProperties(config);
}
//TODO: add more commonly used properties
//TODO: refactor s-c-netflix to use this class where possible
public static class RibbonProperties {
private final IClientConfig config;
RibbonProperties(IClientConfig config) {
this.config = config;
}
public Integer getPort() {
return get(Port);
}
public int port() {
return get(Port, DEFAULT_PORT);
}
public Integer getSecurePort() {
return this.config.get(SecurePort);
}
public Boolean getSecure() {
return get(CommonClientConfigKey.IsSecure);
}
public boolean isSecure() {
return get(CommonClientConfigKey.IsSecure, false);
}
public Integer getReadTimeout() {
return get(CommonClientConfigKey.ReadTimeout);
}
public int readTimeout() {
return get(CommonClientConfigKey.ReadTimeout, DEFAULT_READ_TIMEOUT);
}
public Integer getConnectTimeout() {
return get(CommonClientConfigKey.ConnectTimeout);
}
public int connectTimeout() {
return get(CommonClientConfigKey.ConnectTimeout, DEFAULT_CONNECT_TIMEOUT);
}
public Boolean getOkToRetryOnAllOperations() {
return get(CommonClientConfigKey.OkToRetryOnAllOperations);
}
public boolean isOkToRetryOnAllOperations() {
return get(CommonClientConfigKey.OkToRetryOnAllOperations,
DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS);
}
public Boolean getFollowRedirects() {
return get(CommonClientConfigKey.FollowRedirects);
}
public boolean isFollowRedirects() {
return get(CommonClientConfigKey.FollowRedirects,
DEFAULT_FOLLOW_REDIRECTS);
}
public Integer getMaxTotalConnections() {
return get(CommonClientConfigKey.MaxTotalConnections);
}
public int maxTotalConnections() {
return get(CommonClientConfigKey.MaxTotalConnections, DEFAULT_MAX_TOTAL_CONNECTIONS);
}
public <T> boolean has(IClientConfigKey<T> key) {
return this.config.containsProperty(key);
}
public <T> T get(IClientConfigKey<T> key) {
return this.config.get(key);
}
public <T> T get(IClientConfigKey<T> key, T defaultValue) {
return this.config.get(key, defaultValue);
}
}
public static void setRibbonProperty(String serviceId, String suffix, String value) { public static void setRibbonProperty(String serviceId, String suffix, String value) {
// how to set the namespace properly? // how to set the namespace properly?
String key = getRibbonKey(serviceId, suffix); String key = getRibbonKey(serviceId, suffix);
......
...@@ -37,14 +37,13 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFact ...@@ -37,14 +37,13 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFact
import org.springframework.cloud.commons.httpclient.ApacheHttpClientConnectionManagerFactory; import org.springframework.cloud.commons.httpclient.ApacheHttpClientConnectionManagerFactory;
import org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory; import org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory;
import org.springframework.cloud.netflix.ribbon.RibbonClientName; import org.springframework.cloud.netflix.ribbon.RibbonClientName;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.netflix.client.AbstractLoadBalancerAwareClient; import com.netflix.client.AbstractLoadBalancerAwareClient;
import com.netflix.client.RetryHandler; import com.netflix.client.RetryHandler;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.DefaultClientConfigImpl;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.servo.monitor.Monitors; import com.netflix.servo.monitor.Monitors;
...@@ -73,27 +72,12 @@ public class HttpClientRibbonConfiguration { ...@@ -73,27 +72,12 @@ public class HttpClientRibbonConfiguration {
public HttpClientConnectionManager httpClientConnectionManager( public HttpClientConnectionManager httpClientConnectionManager(
IClientConfig config, IClientConfig config,
ApacheHttpClientConnectionManagerFactory connectionManagerFactory) { ApacheHttpClientConnectionManagerFactory connectionManagerFactory) {
Integer maxTotalConnections = config.getPropertyAsInteger( RibbonProperties ribbon = RibbonProperties.from(config);
CommonClientConfigKey.MaxTotalConnections, int maxTotalConnections = ribbon.maxTotalConnections();
DefaultClientConfigImpl.DEFAULT_MAX_TOTAL_CONNECTIONS); int maxConnectionsPerHost = ribbon.maxConnectionsPerHost();
Integer maxConnectionsPerHost = config.getPropertyAsInteger( int timerRepeat = ribbon.connectionCleanerRepeatInterval();
CommonClientConfigKey.MaxConnectionsPerHost, long timeToLive = ribbon.poolKeepAliveTime();
DefaultClientConfigImpl.DEFAULT_MAX_CONNECTIONS_PER_HOST); TimeUnit ttlUnit = ribbon.getPoolKeepAliveTimeUnits();
Integer timerRepeat = config.getPropertyAsInteger(
CommonClientConfigKey.ConnectionCleanerRepeatInterval,
DefaultClientConfigImpl.DEFAULT_CONNECTION_IDLE_TIMERTASK_REPEAT_IN_MSECS);
Object timeToLiveObj = config
.getProperty(CommonClientConfigKey.PoolKeepAliveTime);
Long timeToLive = DefaultClientConfigImpl.DEFAULT_POOL_KEEP_ALIVE_TIME;
Object ttlUnitObj = config
.getProperty(CommonClientConfigKey.PoolKeepAliveTimeUnits);
TimeUnit ttlUnit = DefaultClientConfigImpl.DEFAULT_POOL_KEEP_ALIVE_TIME_UNITS;
if (timeToLiveObj instanceof Long) {
timeToLive = (Long) timeToLiveObj;
}
if (ttlUnitObj instanceof TimeUnit) {
ttlUnit = (TimeUnit) ttlUnitObj;
}
final HttpClientConnectionManager connectionManager = connectionManagerFactory final HttpClientConnectionManager connectionManager = connectionManagerFactory
.newConnectionManager(false, maxTotalConnections, .newConnectionManager(false, maxTotalConnections,
maxConnectionsPerHost, timeToLive, ttlUnit, registryBuilder); maxConnectionsPerHost, timeToLive, ttlUnit, registryBuilder);
...@@ -110,12 +94,9 @@ public class HttpClientRibbonConfiguration { ...@@ -110,12 +94,9 @@ public class HttpClientRibbonConfiguration {
@ConditionalOnMissingBean(CloseableHttpClient.class) @ConditionalOnMissingBean(CloseableHttpClient.class)
public CloseableHttpClient httpClient(ApacheHttpClientFactory httpClientFactory, public CloseableHttpClient httpClient(ApacheHttpClientFactory httpClientFactory,
HttpClientConnectionManager connectionManager, IClientConfig config) { HttpClientConnectionManager connectionManager, IClientConfig config) {
Boolean followRedirects = config.getPropertyAsBoolean( RibbonProperties ribbon = RibbonProperties.from(config);
CommonClientConfigKey.FollowRedirects, Boolean followRedirects = ribbon.isFollowRedirects();
DefaultClientConfigImpl.DEFAULT_FOLLOW_REDIRECTS); Integer connectTimeout = ribbon.connectTimeout();
Integer connectTimeout = config.getPropertyAsInteger(
CommonClientConfigKey.ConnectTimeout,
DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT);
RequestConfig defaultRequestConfig = RequestConfig.custom() RequestConfig defaultRequestConfig = RequestConfig.custom()
.setConnectTimeout(connectTimeout) .setConnectTimeout(connectTimeout)
.setRedirectsEnabled(followRedirects).build(); .setRedirectsEnabled(followRedirects).build();
......
...@@ -30,10 +30,10 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy; ...@@ -30,10 +30,10 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy;
import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory;
import org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException; import org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException;
import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser; import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.support.RibbonRetryPolicy; import org.springframework.cloud.netflix.ribbon.support.RibbonRetryPolicy;
import org.springframework.http.HttpRequest; import org.springframework.http.HttpRequest;
import org.springframework.retry.RetryCallback; import org.springframework.retry.RetryCallback;
import org.springframework.retry.RetryContext;
import org.springframework.retry.backoff.BackOffPolicy; import org.springframework.retry.backoff.BackOffPolicy;
import org.springframework.retry.backoff.NoBackOffPolicy; import org.springframework.retry.backoff.NoBackOffPolicy;
import org.springframework.retry.policy.NeverRetryPolicy; import org.springframework.retry.policy.NeverRetryPolicy;
...@@ -42,7 +42,6 @@ import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; ...@@ -42,7 +42,6 @@ import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RequestSpecificRetryHandler;
import com.netflix.client.RetryHandler; import com.netflix.client.RetryHandler;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.Server;
...@@ -87,18 +86,14 @@ public class RetryableRibbonLoadBalancingHttpClient extends RibbonLoadBalancingH ...@@ -87,18 +86,14 @@ public class RetryableRibbonLoadBalancingHttpClient extends RibbonLoadBalancingH
public RibbonApacheHttpResponse execute(final RibbonApacheHttpRequest request, final IClientConfig configOverride) throws Exception { public RibbonApacheHttpResponse execute(final RibbonApacheHttpRequest request, final IClientConfig configOverride) throws Exception {
final RequestConfig.Builder builder = RequestConfig.custom(); final RequestConfig.Builder builder = RequestConfig.custom();
IClientConfig config = configOverride != null ? configOverride : this.config; IClientConfig config = configOverride != null ? configOverride : this.config;
builder.setConnectTimeout(config.get( RibbonProperties ribbon = RibbonProperties.from(config);
CommonClientConfigKey.ConnectTimeout, this.connectTimeout)); builder.setConnectTimeout(ribbon.connectTimeout(this.connectTimeout));
builder.setSocketTimeout(config.get( builder.setSocketTimeout(ribbon.readTimeout(this.readTimeout));
CommonClientConfigKey.ReadTimeout, this.readTimeout)); builder.setRedirectsEnabled(ribbon.isFollowRedirects(this.followRedirects));
builder.setRedirectsEnabled(config.get(
CommonClientConfigKey.FollowRedirects, this.followRedirects));
final RequestConfig requestConfig = builder.build(); final RequestConfig requestConfig = builder.build();
final LoadBalancedRetryPolicy retryPolicy = loadBalancedRetryPolicyFactory.create(this.getClientName(), this); final LoadBalancedRetryPolicy retryPolicy = loadBalancedRetryPolicyFactory.create(this.getClientName(), this);
RetryCallback retryCallback = new RetryCallback() { RetryCallback retryCallback = context -> {
@Override
public RibbonApacheHttpResponse doWithRetry(RetryContext context) throws Exception {
//on retries the policy will choose the server and set it in the context //on retries the policy will choose the server and set it in the context
//extract the server and update the request being made //extract the server and update the request being made
RibbonApacheHttpRequest newRequest = request; RibbonApacheHttpRequest newRequest = request;
...@@ -123,7 +118,6 @@ public class RetryableRibbonLoadBalancingHttpClient extends RibbonLoadBalancingH ...@@ -123,7 +118,6 @@ public class RetryableRibbonLoadBalancingHttpClient extends RibbonLoadBalancingH
httpResponse.getStatusLine().getStatusCode()); httpResponse.getStatusLine().getStatusCode());
} }
return new RibbonApacheHttpResponse(httpResponse, httpUriRequest.getURI()); return new RibbonApacheHttpResponse(httpResponse, httpUriRequest.getURI());
}
}; };
return this.executeWithRetry(request, retryPolicy, retryCallback); return this.executeWithRetry(request, retryPolicy, retryCallback);
} }
......
...@@ -17,18 +17,19 @@ ...@@ -17,18 +17,19 @@
package org.springframework.cloud.netflix.ribbon.apache; package org.springframework.cloud.netflix.ribbon.apache;
import java.net.URI; import java.net.URI;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient; import org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
import org.springframework.cloud.netflix.ribbon.RibbonUtils;
import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RequestSpecificRetryHandler;
import com.netflix.client.RetryHandler; import com.netflix.client.RetryHandler;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.Server;
...@@ -54,13 +55,12 @@ public class RibbonLoadBalancingHttpClient extends ...@@ -54,13 +55,12 @@ public class RibbonLoadBalancingHttpClient extends
} }
protected CloseableHttpClient createDelegate(IClientConfig config) { protected CloseableHttpClient createDelegate(IClientConfig config) {
RibbonProperties ribbon = RibbonProperties.from(config);
return HttpClientBuilder.create() return HttpClientBuilder.create()
// already defaults to 0 in builder, so resetting to 0 won't hurt // already defaults to 0 in builder, so resetting to 0 won't hurt
.setMaxConnTotal(config.getPropertyAsInteger( .setMaxConnTotal(ribbon.maxTotalConnections(0))
CommonClientConfigKey.MaxTotalConnections, 0))
// already defaults to 0 in builder, so resetting to 0 won't hurt // already defaults to 0 in builder, so resetting to 0 won't hurt
.setMaxConnPerRoute(config.getPropertyAsInteger( .setMaxConnPerRoute(ribbon.maxConnectionsPerHost(0))
CommonClientConfigKey.MaxConnectionsPerHost, 0))
.disableCookieManagement().useSystemProperties() // for proxy .disableCookieManagement().useSystemProperties() // for proxy
.build(); .build();
} }
...@@ -68,16 +68,14 @@ public class RibbonLoadBalancingHttpClient extends ...@@ -68,16 +68,14 @@ public class RibbonLoadBalancingHttpClient extends
@Override @Override
public RibbonApacheHttpResponse execute(RibbonApacheHttpRequest request, public RibbonApacheHttpResponse execute(RibbonApacheHttpRequest request,
final IClientConfig configOverride) throws Exception { final IClientConfig configOverride) throws Exception {
final RequestConfig.Builder builder = RequestConfig.custom();
IClientConfig config = configOverride != null ? configOverride : this.config; IClientConfig config = configOverride != null ? configOverride : this.config;
builder.setConnectTimeout( RibbonProperties ribbon = RibbonProperties.from(config);
config.get(CommonClientConfigKey.ConnectTimeout, this.connectTimeout)); RequestConfig requestConfig = RequestConfig.custom()
builder.setSocketTimeout( .setConnectTimeout(ribbon.connectTimeout(this.connectTimeout))
config.get(CommonClientConfigKey.ReadTimeout, this.readTimeout)); .setSocketTimeout(ribbon.readTimeout(this.readTimeout))
builder.setRedirectsEnabled( .setRedirectsEnabled(ribbon.isFollowRedirects(this.followRedirects))
config.get(CommonClientConfigKey.FollowRedirects, this.followRedirects)); .build();
final RequestConfig requestConfig = builder.build();
request = getSecureRequest(request, configOverride); request = getSecureRequest(request, configOverride);
final HttpUriRequest httpUriRequest = request.toRequest(requestConfig); final HttpUriRequest httpUriRequest = request.toRequest(requestConfig);
final HttpResponse httpResponse = this.delegate.execute(httpUriRequest); final HttpResponse httpResponse = this.delegate.execute(httpUriRequest);
......
...@@ -16,21 +16,23 @@ ...@@ -16,21 +16,23 @@
package org.springframework.cloud.netflix.ribbon.okhttp; package org.springframework.cloud.netflix.ribbon.okhttp;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.net.URI; import java.net.URI;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient; import org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.Server;
import static org.springframework.cloud.netflix.ribbon.RibbonUtils.updateToSecureConnectionIfNeeded; import static org.springframework.cloud.netflix.ribbon.RibbonUtils.updateToSecureConnectionIfNeeded;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/** /**
* @author Spencer Gibb * @author Spencer Gibb
* @author Ryan Baxter * @author Ryan Baxter
...@@ -71,17 +73,14 @@ public class OkHttpLoadBalancingClient ...@@ -71,17 +73,14 @@ public class OkHttpLoadBalancingClient
} }
OkHttpClient getOkHttpClient(IClientConfig configOverride, boolean secure) { OkHttpClient getOkHttpClient(IClientConfig configOverride, boolean secure) {
OkHttpClient.Builder builder = this.delegate.newBuilder();
IClientConfig config = configOverride != null ? configOverride : this.config; IClientConfig config = configOverride != null ? configOverride : this.config;
builder.connectTimeout(config.get( RibbonProperties ribbon = RibbonProperties.from(config);
CommonClientConfigKey.ConnectTimeout, this.connectTimeout), TimeUnit.MILLISECONDS); OkHttpClient.Builder builder = this.delegate.newBuilder()
builder.readTimeout(config.get( .connectTimeout(ribbon.connectTimeout(this.connectTimeout), TimeUnit.MILLISECONDS)
CommonClientConfigKey.ReadTimeout, this.readTimeout), TimeUnit.MILLISECONDS); .readTimeout(ribbon.readTimeout(this.readTimeout), TimeUnit.MILLISECONDS)
builder.followRedirects(config.get( .followRedirects(ribbon.isFollowRedirects(this.followRedirects));
CommonClientConfigKey.FollowRedirects, this.followRedirects));
if (secure) { if (secure) {
builder.followSslRedirects(configOverride.get( builder.followSslRedirects(ribbon.isFollowRedirects(this.followRedirects));
CommonClientConfigKey.FollowRedirects, this.followRedirects));
} }
return builder.build(); return builder.build();
......
...@@ -30,14 +30,13 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFact ...@@ -30,14 +30,13 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFact
import org.springframework.cloud.commons.httpclient.OkHttpClientConnectionPoolFactory; import org.springframework.cloud.commons.httpclient.OkHttpClientConnectionPoolFactory;
import org.springframework.cloud.commons.httpclient.OkHttpClientFactory; import org.springframework.cloud.commons.httpclient.OkHttpClientFactory;
import org.springframework.cloud.netflix.ribbon.RibbonClientName; import org.springframework.cloud.netflix.ribbon.RibbonClientName;
import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.netflix.client.AbstractLoadBalancerAwareClient; import com.netflix.client.AbstractLoadBalancerAwareClient;
import com.netflix.client.RetryHandler; import com.netflix.client.RetryHandler;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.DefaultClientConfigImpl;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.servo.monitor.Monitors; import com.netflix.servo.monitor.Monitors;
...@@ -63,21 +62,10 @@ public class OkHttpRibbonConfiguration { ...@@ -63,21 +62,10 @@ public class OkHttpRibbonConfiguration {
@ConditionalOnMissingBean(ConnectionPool.class) @ConditionalOnMissingBean(ConnectionPool.class)
public ConnectionPool httpClientConnectionPool(IClientConfig config, public ConnectionPool httpClientConnectionPool(IClientConfig config,
OkHttpClientConnectionPoolFactory connectionPoolFactory) { OkHttpClientConnectionPoolFactory connectionPoolFactory) {
Integer maxTotalConnections = config.getPropertyAsInteger( RibbonProperties ribbon = RibbonProperties.from(config);
CommonClientConfigKey.MaxTotalConnections, int maxTotalConnections = ribbon.maxTotalConnections();
DefaultClientConfigImpl.DEFAULT_MAX_TOTAL_CONNECTIONS); long timeToLive = ribbon.poolKeepAliveTime();
Object timeToLiveObj = config TimeUnit ttlUnit = ribbon.getPoolKeepAliveTimeUnits();
.getProperty(CommonClientConfigKey.PoolKeepAliveTime);
Long timeToLive = DefaultClientConfigImpl.DEFAULT_POOL_KEEP_ALIVE_TIME;
Object ttlUnitObj = config
.getProperty(CommonClientConfigKey.PoolKeepAliveTimeUnits);
TimeUnit ttlUnit = DefaultClientConfigImpl.DEFAULT_POOL_KEEP_ALIVE_TIME_UNITS;
if (timeToLiveObj instanceof Long) {
timeToLive = (Long) timeToLiveObj;
}
if (ttlUnitObj instanceof TimeUnit) {
ttlUnit = (TimeUnit) ttlUnitObj;
}
return connectionPoolFactory.create(maxTotalConnections, timeToLive, ttlUnit); return connectionPoolFactory.create(maxTotalConnections, timeToLive, ttlUnit);
} }
...@@ -85,19 +73,13 @@ public class OkHttpRibbonConfiguration { ...@@ -85,19 +73,13 @@ public class OkHttpRibbonConfiguration {
@ConditionalOnMissingBean(OkHttpClient.class) @ConditionalOnMissingBean(OkHttpClient.class)
public OkHttpClient client(OkHttpClientFactory httpClientFactory, public OkHttpClient client(OkHttpClientFactory httpClientFactory,
ConnectionPool connectionPool, IClientConfig config) { ConnectionPool connectionPool, IClientConfig config) {
Boolean followRedirects = config.getPropertyAsBoolean( RibbonProperties ribbon = RibbonProperties.from(config);
CommonClientConfigKey.FollowRedirects, this.httpClient = httpClientFactory.createBuilder(false)
DefaultClientConfigImpl.DEFAULT_FOLLOW_REDIRECTS); .connectTimeout(ribbon.connectTimeout(), TimeUnit.MILLISECONDS)
Integer connectTimeout = config.getPropertyAsInteger( .readTimeout(ribbon.readTimeout(), TimeUnit.MILLISECONDS)
CommonClientConfigKey.ConnectTimeout, .followRedirects(ribbon.isFollowRedirects())
DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT); .connectionPool(connectionPool)
Integer readTimeout = config.getPropertyAsInteger(CommonClientConfigKey.ReadTimeout, .build();
DefaultClientConfigImpl.DEFAULT_READ_TIMEOUT);
this.httpClient = httpClientFactory.createBuilder(false).
connectTimeout(connectTimeout, TimeUnit.MILLISECONDS).
readTimeout(readTimeout, TimeUnit.MILLISECONDS).
followRedirects(followRedirects).
connectionPool(connectionPool).build();
return this.httpClient; return this.httpClient;
} }
......
...@@ -18,18 +18,21 @@ ...@@ -18,18 +18,21 @@
package org.springframework.cloud.netflix.ribbon.support; package org.springframework.cloud.netflix.ribbon.support;
import org.springframework.cloud.netflix.ribbon.DefaultServerIntrospector; import org.springframework.cloud.netflix.ribbon.DefaultServerIntrospector;
import org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonProperties;
import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.ServerIntrospector;
import com.netflix.client.AbstractLoadBalancerAwareClient; import com.netflix.client.AbstractLoadBalancerAwareClient;
import com.netflix.client.IResponse; import com.netflix.client.IResponse;
import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RequestSpecificRetryHandler;
import com.netflix.client.RetryHandler; import com.netflix.client.RetryHandler;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.DefaultClientConfigImpl; import com.netflix.client.config.DefaultClientConfigImpl;
import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.reactive.LoadBalancerCommand; import com.netflix.loadbalancer.reactive.LoadBalancerCommand;
import static org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration.DEFAULT_CONNECT_TIMEOUT;
import static org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration.DEFAULT_READ_TIMEOUT;
/** /**
* @author Spencer Gibb * @author Spencer Gibb
*/ */
...@@ -91,20 +94,12 @@ public abstract class AbstractLoadBalancingClient<S extends ContextAwareRequest, ...@@ -91,20 +94,12 @@ public abstract class AbstractLoadBalancingClient<S extends ContextAwareRequest,
@Override @Override
public void initWithNiwsConfig(IClientConfig clientConfig) { public void initWithNiwsConfig(IClientConfig clientConfig) {
super.initWithNiwsConfig(clientConfig); super.initWithNiwsConfig(clientConfig);
this.connectTimeout = clientConfig.getPropertyAsInteger( RibbonProperties ribbon = RibbonProperties.from(clientConfig);
CommonClientConfigKey.ConnectTimeout, this.connectTimeout = ribbon.connectTimeout(DEFAULT_CONNECT_TIMEOUT);
RibbonClientConfiguration.DEFAULT_CONNECT_TIMEOUT); this.readTimeout = ribbon.readTimeout(DEFAULT_READ_TIMEOUT);
this.readTimeout = clientConfig.getPropertyAsInteger( this.secure = ribbon.isSecure();
CommonClientConfigKey.ReadTimeout, this.followRedirects = ribbon.isFollowRedirects();
RibbonClientConfiguration.DEFAULT_READ_TIMEOUT); this.okToRetryOnAllOperations = ribbon.isOkToRetryOnAllOperations();
this.secure = clientConfig.getPropertyAsBoolean(CommonClientConfigKey.IsSecure,
false);
this.followRedirects = clientConfig.getPropertyAsBoolean(
CommonClientConfigKey.FollowRedirects,
DefaultClientConfigImpl.DEFAULT_FOLLOW_REDIRECTS);
this.okToRetryOnAllOperations = clientConfig.getPropertyAsBoolean(
CommonClientConfigKey.OkToRetryOnAllOperations,
DefaultClientConfigImpl.DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS);
} }
protected abstract D createDelegate(IClientConfig config); protected abstract D createDelegate(IClientConfig config);
...@@ -133,10 +128,7 @@ public abstract class AbstractLoadBalancingClient<S extends ContextAwareRequest, ...@@ -133,10 +128,7 @@ public abstract class AbstractLoadBalancingClient<S extends ContextAwareRequest,
protected boolean isSecure(final IClientConfig config) { protected boolean isSecure(final IClientConfig config) {
if(config != null) { if(config != null) {
Boolean result = config.get(CommonClientConfigKey.IsSecure); return RibbonProperties.from(config).isSecure(this.secure);
if(result != null) {
return result;
}
} }
return this.secure; return this.secure;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment