in src/main/java/com/spotify/ffwd/http/HttpClient.java [100:130]
public HttpClient build() {
final HttpDiscovery discovery =
this.discovery == null ? HttpDiscovery.Static.supplyDefault() : this.discovery;
final OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new GzipRequestInterceptor());
final ObjectMapper objectMapper = setupApplicationJson();
final RawHttpClientFactory httpClientFactory =
new RawHttpClientFactory(objectMapper, builder.build());
final HttpPing httpPing = new HttpPing(httpClientFactory);
final ILoadBalancer loadBalancer = discovery
.apply(LoadBalancerBuilder.newBuilder(), searchDomain)
.withPing(httpPing)
.withRule(new RetryRule(new AvailabilityFilteringRule()))
.buildDynamicServerListLoadBalancer();
final int retries = this.retries == null ? DEFAULT_RETRIES : this.retries;
;
final long baseDelayMillis =
this.baseDelayMillis == null ? DEFAULT_BASE_DELAY_MILLIS : this.baseDelayMillis;
;
final long maxDelayMillis =
this.maxDelayMillis == null ? DEFAULT_MAX_DELAY_MILLIS : this.maxDelayMillis;
;
return new HttpClient(httpClientFactory, loadBalancer, retries, baseDelayMillis,
maxDelayMillis);
}