org.apache.hc.client5.http.impl.io

## Class PoolingHttpClientConnectionManagerBuilder

- java.lang.Object
- - org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder

    public class PoolingHttpClientConnectionManagerBuilder
    extends Object

Builder for `PoolingHttpClientConnectionManager` instances.

When a particular component is not explicitly set this class will use its default implementation. System properties will be taken into account when configuring the default implementations when `useSystemProperties()` method is called prior to calling `build()`.

- ssl.TrustManagerFactory.algorithm
- javax.net.ssl.trustStoreType
- javax.net.ssl.trustStore
- javax.net.ssl.trustStoreProvider
- javax.net.ssl.trustStorePassword
- ssl.KeyManagerFactory.algorithm
- javax.net.ssl.keyStoreType
- javax.net.ssl.keyStore
- javax.net.ssl.keyStoreProvider
- javax.net.ssl.keyStorePassword
- https.protocols
- https.cipherSuites

Since:
  5.0

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`PoolingHttpClientConnectionManager` `build()`
`static PoolingHttpClientConnectionManagerBuilder` `create()`
`PoolingHttpClientConnectionManagerBuilder` `setConnectionConfigResolver(Resolver<HttpRoute,ConnectionConfig> connectionConfigResolver)` Assigns `Resolver` of `ConnectionConfig` on a per route basis.
`PoolingHttpClientConnectionManagerBuilder` `setConnectionFactory(HttpConnectionFactory<ManagedHttpClientConnection> connectionFactory)` Assigns `HttpConnectionFactory` instance.
`PoolingHttpClientConnectionManagerBuilder` `setConnectionTimeToLive(TimeValue timeToLive)` Deprecated. Use `setDefaultConnectionConfig(ConnectionConfig)`.
`PoolingHttpClientConnectionManagerBuilder` `setConnPoolPolicy(PoolReusePolicy poolReusePolicy)` Assigns `PoolReusePolicy` value.
`PoolingHttpClientConnectionManagerBuilder` `setDefaultConnectionConfig(ConnectionConfig config)` Assigns the same `ConnectionConfig` for all routes.
`PoolingHttpClientConnectionManagerBuilder` `setDefaultSocketConfig(SocketConfig config)` Assigns the same `SocketConfig` for all routes.
`PoolingHttpClientConnectionManagerBuilder` `setDefaultTlsConfig(TlsConfig config)` Assigns the same `TlsConfig` for all hosts.
`PoolingHttpClientConnectionManagerBuilder` `setDnsResolver(DnsResolver dnsResolver)` Assigns `DnsResolver` instance.
`PoolingHttpClientConnectionManagerBuilder` `setMaxConnPerRoute(int maxConnPerRoute)` Assigns maximum connection per route value.
`PoolingHttpClientConnectionManagerBuilder` `setMaxConnTotal(int maxConnTotal)` Assigns maximum total connection value.
`PoolingHttpClientConnectionManagerBuilder` `setPoolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy)` Assigns `PoolConcurrencyPolicy` value.
`PoolingHttpClientConnectionManagerBuilder` `setSchemePortResolver(SchemePortResolver schemePortResolver)` Assigns `SchemePortResolver` instance.
`PoolingHttpClientConnectionManagerBuilder` `setSocketConfigResolver(Resolver<HttpRoute,SocketConfig> socketConfigResolver)` Assigns `Resolver` of `SocketConfig` on a per route basis.
`PoolingHttpClientConnectionManagerBuilder` `setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)` Assigns `LayeredConnectionSocketFactory` instance.
`PoolingHttpClientConnectionManagerBuilder` `setTlsConfigResolver(Resolver<HttpHost,TlsConfig> tlsConfigResolver)` Assigns `Resolver` of `TlsConfig` on a per host basis.
`PoolingHttpClientConnectionManagerBuilder` `setValidateAfterInactivity(TimeValue validateAfterInactivity)` Deprecated. Use `setDefaultConnectionConfig(ConnectionConfig)`.
`PoolingHttpClientConnectionManagerBuilder` `useSystemProperties()` Use system properties when creating and configuring default implementations.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### create

    public static PoolingHttpClientConnectionManagerBuilder create()

#### setConnectionFactory

    public final PoolingHttpClientConnectionManagerBuilder setConnectionFactory(HttpConnectionFactory<ManagedHttpClientConnection> connectionFactory)

Assigns `HttpConnectionFactory` instance.

#### setSSLSocketFactory

    public final PoolingHttpClientConnectionManagerBuilder setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)

Assigns `LayeredConnectionSocketFactory` instance.

#### setDnsResolver

    public final PoolingHttpClientConnectionManagerBuilder setDnsResolver(DnsResolver dnsResolver)

Assigns `DnsResolver` instance.

#### setSchemePortResolver

    public final PoolingHttpClientConnectionManagerBuilder setSchemePortResolver(SchemePortResolver schemePortResolver)

Assigns `SchemePortResolver` instance.

#### setPoolConcurrencyPolicy

    public final PoolingHttpClientConnectionManagerBuilder setPoolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy)

Assigns `PoolConcurrencyPolicy` value.

#### setConnPoolPolicy

    public final PoolingHttpClientConnectionManagerBuilder setConnPoolPolicy(PoolReusePolicy poolReusePolicy)

Assigns `PoolReusePolicy` value.

#### setMaxConnTotal

    public final PoolingHttpClientConnectionManagerBuilder setMaxConnTotal(int maxConnTotal)

Assigns maximum total connection value.

#### setMaxConnPerRoute

    public final PoolingHttpClientConnectionManagerBuilder setMaxConnPerRoute(int maxConnPerRoute)

Assigns maximum connection per route value.

#### setDefaultSocketConfig

    public final PoolingHttpClientConnectionManagerBuilder setDefaultSocketConfig(SocketConfig config)

Assigns the same `SocketConfig` for all routes.

#### setSocketConfigResolver

    public final PoolingHttpClientConnectionManagerBuilder setSocketConfigResolver(Resolver<HttpRoute,SocketConfig> socketConfigResolver)

Assigns `Resolver` of `SocketConfig` on a per route basis.

Since:
  5.2

#### setDefaultConnectionConfig

    public final PoolingHttpClientConnectionManagerBuilder setDefaultConnectionConfig(ConnectionConfig config)

Assigns the same `ConnectionConfig` for all routes.

Since:
  5.2

#### setConnectionConfigResolver

    public final PoolingHttpClientConnectionManagerBuilder setConnectionConfigResolver(Resolver<HttpRoute,ConnectionConfig> connectionConfigResolver)

Assigns `Resolver` of `ConnectionConfig` on a per route basis.

Since:
  5.2

#### setDefaultTlsConfig

    public final PoolingHttpClientConnectionManagerBuilder setDefaultTlsConfig(TlsConfig config)

Assigns the same `TlsConfig` for all hosts.

Since:
  5.2

#### setTlsConfigResolver

    public final PoolingHttpClientConnectionManagerBuilder setTlsConfigResolver(Resolver<HttpHost,TlsConfig> tlsConfigResolver)

Assigns `Resolver` of `TlsConfig` on a per host basis.

Since:
  5.2

#### setConnectionTimeToLive

    @Deprecated
    public final PoolingHttpClientConnectionManagerBuilder setConnectionTimeToLive(TimeValue timeToLive)

Deprecated. Use `setDefaultConnectionConfig(ConnectionConfig)`.
Sets maximum time to live for persistent connections

#### setValidateAfterInactivity

    @Deprecated
    public final PoolingHttpClientConnectionManagerBuilder setValidateAfterInactivity(TimeValue validateAfterInactivity)

Deprecated. Use `setDefaultConnectionConfig(ConnectionConfig)`.
Sets period after inactivity after which persistent connections must be checked to ensure they are still valid.

#### useSystemProperties

    public final PoolingHttpClientConnectionManagerBuilder useSystemProperties()

Use system properties when creating and configuring default implementations.

#### build

    public PoolingHttpClientConnectionManager build()