public HttpClient build()

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);
    }