Package org.eclipse.rdf4j.http.client
Class SharedHttpClientSessionManager
- java.lang.Object
-
- org.eclipse.rdf4j.http.client.SharedHttpClientSessionManager
-
- All Implemented Interfaces:
HttpClientDependent
,HttpClientSessionManager
public class SharedHttpClientSessionManager extends java.lang.Object implements HttpClientSessionManager, HttpClientDependent
A Manager for HTTP sessions that uses a sharedHttpClient
to manage HTTP connections.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
SharedHttpClientSessionManager.RetryHandlerStale
Retry handler: closes stale connections and suggests to simply retry the HTTP request once.private static class
SharedHttpClientSessionManager.ServiceUnavailableRetryHandler
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CORE_POOL_SIZE_PROPERTY
Configurable system propertyorg.eclipse.rdf4j.client.executors.corePoolSize
for specifying the background executor core thread pool size.private org.apache.http.impl.client.CloseableHttpClient
dependentClient
dependent life cycleprivate java.util.concurrent.ExecutorService
executor
private org.apache.http.client.HttpClient
httpClient
independent life cycleprivate org.apache.http.impl.client.HttpClientBuilder
httpClientBuilder
OptionalHttpClientBuilder
to create the innerhttpClient
(if not provided externally)private org.slf4j.Logger
logger
private java.util.Map<SPARQLProtocolSession,java.lang.Boolean>
openSessions
private static org.apache.http.client.HttpRequestRetryHandler
retryHandlerStale
private static org.apache.http.client.ServiceUnavailableRetryStrategy
serviceUnavailableRetryHandler
private static java.util.concurrent.atomic.AtomicLong
threadCount
-
Constructor Summary
Constructors Constructor Description SharedHttpClientSessionManager()
SharedHttpClientSessionManager(org.apache.http.impl.client.CloseableHttpClient dependentClient, java.util.concurrent.ScheduledExecutorService dependentExecutorService)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private org.apache.http.impl.client.CloseableHttpClient
createHttpClient()
RDF4JProtocolSession
createRDF4JProtocolSession(java.lang.String serverURL)
Creates a new session to the remote RDF4J REST API.SPARQLProtocolSession
createSPARQLProtocolSession(java.lang.String queryEndpointUrl, java.lang.String updateEndpointUrl)
Creates a new SPARQL Protocol session to the remote SPARQL endpoint.protected java.util.concurrent.ExecutorService
getExecutorService()
Get theExecutorService
used by this session manager.org.apache.http.client.HttpClient
getHttpClient()
HttpClient
that has been assigned or has been used by this object.void
initialize()
Deprecated.Create a new instance instead of trying to reactivate an old instance.void
setHttpClient(org.apache.http.client.HttpClient httpClient)
Assign anHttpClient
that this object should use.void
setHttpClientBuilder(org.apache.http.impl.client.HttpClientBuilder httpClientBuilder)
Set an optionalHttpClientBuilder
to create the innerhttpClient
(if the latter is not provided externally as dependent client).void
shutDown()
Closes any remaining connections and threads used by the sessions created by this object.
-
-
-
Field Detail
-
CORE_POOL_SIZE_PROPERTY
public static final java.lang.String CORE_POOL_SIZE_PROPERTY
Configurable system propertyorg.eclipse.rdf4j.client.executors.corePoolSize
for specifying the background executor core thread pool size.- See Also:
- Constant Field Values
-
threadCount
private static final java.util.concurrent.atomic.AtomicLong threadCount
-
logger
private final org.slf4j.Logger logger
-
httpClient
private volatile org.apache.http.client.HttpClient httpClient
independent life cycle
-
dependentClient
private volatile org.apache.http.impl.client.CloseableHttpClient dependentClient
dependent life cycle
-
executor
private final java.util.concurrent.ExecutorService executor
-
httpClientBuilder
private volatile org.apache.http.impl.client.HttpClientBuilder httpClientBuilder
OptionalHttpClientBuilder
to create the innerhttpClient
(if not provided externally)
-
openSessions
private final java.util.Map<SPARQLProtocolSession,java.lang.Boolean> openSessions
-
retryHandlerStale
private static final org.apache.http.client.HttpRequestRetryHandler retryHandlerStale
-
serviceUnavailableRetryHandler
private static final org.apache.http.client.ServiceUnavailableRetryStrategy serviceUnavailableRetryHandler
-
-
Method Detail
-
getHttpClient
public org.apache.http.client.HttpClient getHttpClient()
Description copied from interface:HttpClientDependent
HttpClient
that has been assigned or has been used by this object. The life cycle might not be or might be tied to this object, depending on whetherHttpClient
was passed to or created by this object respectively.- Specified by:
getHttpClient
in interfaceHttpClientDependent
- Specified by:
getHttpClient
in interfaceHttpClientSessionManager
- Returns:
- Returns the httpClient.
-
setHttpClient
public void setHttpClient(org.apache.http.client.HttpClient httpClient)
Description copied from interface:HttpClientDependent
Assign anHttpClient
that this object should use. The life cycle of the givenHttpClient
is independent of this object. Closing or shutting down this object does not have any impact on the given client. Callers must ensure that the given client is properly closed elsewhere.- Specified by:
setHttpClient
in interfaceHttpClientDependent
- Parameters:
httpClient
- The httpClient to use for remote/service calls.
-
setHttpClientBuilder
public void setHttpClientBuilder(org.apache.http.impl.client.HttpClientBuilder httpClientBuilder)
Set an optionalHttpClientBuilder
to create the innerhttpClient
(if the latter is not provided externally as dependent client).- Parameters:
httpClientBuilder
- the builder for the managed HttpClient- See Also:
HttpClientBuilders
-
createSPARQLProtocolSession
public SPARQLProtocolSession createSPARQLProtocolSession(java.lang.String queryEndpointUrl, java.lang.String updateEndpointUrl)
Description copied from interface:HttpClientSessionManager
Creates a new SPARQL Protocol session to the remote SPARQL endpoint.- Specified by:
createSPARQLProtocolSession
in interfaceHttpClientSessionManager
-
createRDF4JProtocolSession
public RDF4JProtocolSession createRDF4JProtocolSession(java.lang.String serverURL)
Description copied from interface:HttpClientSessionManager
Creates a new session to the remote RDF4J REST API.- Specified by:
createRDF4JProtocolSession
in interfaceHttpClientSessionManager
-
shutDown
public void shutDown()
Description copied from interface:HttpClientSessionManager
Closes any remaining connections and threads used by the sessions created by this object.- Specified by:
shutDown
in interfaceHttpClientSessionManager
-
initialize
@Deprecated public void initialize()
Deprecated.Create a new instance instead of trying to reactivate an old instance.No-op
-
getExecutorService
protected final java.util.concurrent.ExecutorService getExecutorService()
Get theExecutorService
used by this session manager.- Returns:
- a
ExecutorService
used by allSPARQLProtocolSession
andRDF4JProtocolSession
instances created by this session manager.
-
createHttpClient
private org.apache.http.impl.client.CloseableHttpClient createHttpClient()
-
-