@Contract(threading=SAFE) public class BasicHttpClientConnectionManager extends Object implements HttpClientConnectionManager
This connection manager will make an effort to reuse the connection for subsequent requests
with the same route
. It will, however, close the existing connection and
open it for the given route, if the route of the persistent connection does not match that
of the connection request. If the connection has been already been allocated
IllegalStateException
is thrown.
This connection manager implementation should be used inside an EJB container instead of
PoolingHttpClientConnectionManager
.
Constructor and Description |
---|
BasicHttpClientConnectionManager() |
BasicHttpClientConnectionManager(HttpClientConnectionOperator httpClientConnectionOperator,
org.apache.hc.core5.http.io.HttpConnectionFactory<ManagedHttpClientConnection> connFactory) |
BasicHttpClientConnectionManager(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry) |
BasicHttpClientConnectionManager(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry,
org.apache.hc.core5.http.io.HttpConnectionFactory<ManagedHttpClientConnection> connFactory) |
BasicHttpClientConnectionManager(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry,
org.apache.hc.core5.http.io.HttpConnectionFactory<ManagedHttpClientConnection> connFactory,
SchemePortResolver schemePortResolver,
DnsResolver dnsResolver) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
close(org.apache.hc.core5.io.CloseMode closeMode) |
void |
closeExpired() |
void |
closeIdle(org.apache.hc.core5.util.TimeValue idleTime) |
void |
connect(ConnectionEndpoint endpoint,
org.apache.hc.core5.util.TimeValue timeout,
org.apache.hc.core5.http.protocol.HttpContext context)
Connects the endpoint to the initial hop (connection target in case
of a direct route or to the first proxy hop in case of a route via a proxy
or multiple proxies).
|
ConnectionConfig |
getConnectionConfig() |
org.apache.hc.core5.http.io.SocketConfig |
getSocketConfig() |
TlsConfig |
getTlsConfig() |
org.apache.hc.core5.util.TimeValue |
getValidateAfterInactivity()
Deprecated.
|
LeaseRequest |
lease(String id,
HttpRoute route,
Object state) |
LeaseRequest |
lease(String id,
HttpRoute route,
org.apache.hc.core5.util.Timeout requestTimeout,
Object state)
Returns a
LeaseRequest object which can be used to obtain
a ConnectionEndpoint to cancel the request by calling
Cancellable.cancel() . |
void |
release(ConnectionEndpoint endpoint,
Object state,
org.apache.hc.core5.util.TimeValue keepAlive)
Releases the endpoint back to the manager making it potentially
re-usable by other consumers.
|
void |
setConnectionConfig(ConnectionConfig connectionConfig) |
void |
setSocketConfig(org.apache.hc.core5.http.io.SocketConfig socketConfig) |
void |
setTlsConfig(TlsConfig tlsConfig) |
void |
setValidateAfterInactivity(org.apache.hc.core5.util.TimeValue validateAfterInactivity)
Deprecated.
|
void |
upgrade(ConnectionEndpoint endpoint,
org.apache.hc.core5.http.protocol.HttpContext context)
Upgrades transport security of the given endpoint by using the TLS security protocol.
|
public BasicHttpClientConnectionManager(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry, org.apache.hc.core5.http.io.HttpConnectionFactory<ManagedHttpClientConnection> connFactory, SchemePortResolver schemePortResolver, DnsResolver dnsResolver)
public BasicHttpClientConnectionManager(HttpClientConnectionOperator httpClientConnectionOperator, org.apache.hc.core5.http.io.HttpConnectionFactory<ManagedHttpClientConnection> connFactory)
public BasicHttpClientConnectionManager(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry, org.apache.hc.core5.http.io.HttpConnectionFactory<ManagedHttpClientConnection> connFactory)
public BasicHttpClientConnectionManager(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry)
public BasicHttpClientConnectionManager()
public void close()
close
in interface Closeable
close
in interface AutoCloseable
public void close(org.apache.hc.core5.io.CloseMode closeMode)
close
in interface org.apache.hc.core5.io.ModalCloseable
public org.apache.hc.core5.http.io.SocketConfig getSocketConfig()
public void setSocketConfig(org.apache.hc.core5.http.io.SocketConfig socketConfig)
public ConnectionConfig getConnectionConfig()
public void setConnectionConfig(ConnectionConfig connectionConfig)
public TlsConfig getTlsConfig()
public void setTlsConfig(TlsConfig tlsConfig)
public LeaseRequest lease(String id, HttpRoute route, Object state)
public LeaseRequest lease(String id, HttpRoute route, org.apache.hc.core5.util.Timeout requestTimeout, Object state)
HttpClientConnectionManager
LeaseRequest
object which can be used to obtain
a ConnectionEndpoint
to cancel the request by calling
Cancellable.cancel()
.
Please note that newly allocated endpoints can be leased
disconnected
. The consumer of the endpoint
is responsible for fully establishing the route to the endpoint target
by calling HttpClientConnectionManager.connect(ConnectionEndpoint, TimeValue, HttpContext)
in order to connect directly to the target or to the first proxy hop,
and optionally calling HttpClientConnectionManager.upgrade(ConnectionEndpoint, HttpContext)
method
to upgrade the underlying transport to Transport Layer Security after having
executed a CONNECT
method to all intermediate proxy hops.
lease
in interface HttpClientConnectionManager
id
- unique operation ID or null
.route
- HTTP route of the requested connection.requestTimeout
- lease request timeout.state
- expected state of the connection or null
if the connection is not expected to carry any state.public void release(ConnectionEndpoint endpoint, Object state, org.apache.hc.core5.util.TimeValue keepAlive)
HttpClientConnectionManager
validDuration
and timeUnit
parameters.release
in interface HttpClientConnectionManager
endpoint
- the managed endpoint.state
- the new connection state of null
if state-less.keepAlive
- the duration of time this connection is valid for reuse.public void connect(ConnectionEndpoint endpoint, org.apache.hc.core5.util.TimeValue timeout, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
HttpClientConnectionManager
connect
in interface HttpClientConnectionManager
endpoint
- the managed endpoint.timeout
- connect timeout.context
- the actual HTTP context.IOException
public void upgrade(ConnectionEndpoint endpoint, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
HttpClientConnectionManager
upgrade
in interface HttpClientConnectionManager
endpoint
- the managed endpoint.context
- the actual HTTP context.IOException
public void closeExpired()
public void closeIdle(org.apache.hc.core5.util.TimeValue idleTime)
@Deprecated public org.apache.hc.core5.util.TimeValue getValidateAfterInactivity()
getConnectionConfig()
setValidateAfterInactivity(TimeValue)
@Deprecated public void setValidateAfterInactivity(org.apache.hc.core5.util.TimeValue validateAfterInactivity)
setConnectionConfig(ConnectionConfig)
lease(String, HttpRoute, Object)
leased} to the consumer.
Negative values passed to this method disable connection validation. This check helps
detect connections that have become stale (half-closed) while kept inactive in the pool.Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.