Example usage for org.apache.http.impl.client DefaultBackoffStrategy DefaultBackoffStrategy

List of usage examples for org.apache.http.impl.client DefaultBackoffStrategy DefaultBackoffStrategy

Introduction

In this page you can find the example usage for org.apache.http.impl.client DefaultBackoffStrategy DefaultBackoffStrategy.

Prototype

DefaultBackoffStrategy

Source Link

Usage

From source file:com.joyent.manta.http.MantaConnectionFactory.java

/**
 * Configures the builder class with all of the settings needed to connect to
 * Manta./*from   w w  w  .  jav  a 2 s.com*/
 *
 * @param metricConfig nullable configuration for client metrics tracking
 * @return configured instance
 */
protected HttpClientBuilder createStandardBuilder(final MantaClientMetricConfiguration metricConfig) {
    final int maxConns = ObjectUtils.firstNonNull(config.getMaximumConnections(),
            DefaultsConfigContext.DEFAULT_MAX_CONNS);

    final int timeout = ObjectUtils.firstNonNull(config.getTimeout(),
            DefaultsConfigContext.DEFAULT_HTTP_TIMEOUT);

    final int connectionRequestTimeout = ObjectUtils.firstNonNull(config.getConnectionRequestTimeout(),
            DefaultsConfigContext.DEFAULT_CONNECTION_REQUEST_TIMEOUT);

    final Integer expectContinueTimeout = config.getExpectContinueTimeout();
    final boolean expectContinueEnabled = expectContinueTimeout != null;

    final RequestConfig requestConfig = RequestConfig.custom().setAuthenticationEnabled(false)
            .setSocketTimeout(timeout).setConnectionRequestTimeout(connectionRequestTimeout)
            .setContentCompressionEnabled(true).setExpectContinueEnabled(expectContinueEnabled).build();

    final MantaHttpRequestExecutor requestExecutor = MantaHttpRequestExecutor.Builder.create()
            .setMetricConfiguration(metricConfig).setWaitForContinue(expectContinueTimeout).build();

    final HttpClientBuilder builder = HttpClients.custom().disableAuthCaching().disableCookieManagement()
            .setUserAgent(USER_AGENT).setConnectionReuseStrategy(new DefaultConnectionReuseStrategy())
            .setMaxConnTotal(maxConns).setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy())
            .setDefaultRequestConfig(requestConfig).setConnectionManagerShared(false)
            .setRequestExecutor(requestExecutor).setConnectionBackoffStrategy(new DefaultBackoffStrategy());

    final HttpHost proxyHost = findProxyServer();

    if (proxyHost != null) {
        builder.setProxy(proxyHost);
    }

    return builder;
}