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 Object
      implements HttpClientSessionManager, HttpClientDependent

  A Manager for HTTP sessions that uses a shared `HttpClient` to manage HTTP connections.
  Author:
    James Leigh

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `CORE_POOL_SIZE_PROPERTY` | Configurable system property `org.eclipse.rdf4j.client.executors.corePoolSize` for specifying the background executor core thread pool size.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SharedHttpClientSessionManager()` |
    `SharedHttpClientSessionManager​(org.apache.http.impl.client.CloseableHttpClient dependentClient, ScheduledExecutorService dependentExecutorService)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `RDF4JProtocolSession` | `createRDF4JProtocolSession​(String serverURL)` | Creates a new session to the remote RDF4J REST API.
    `SPARQLProtocolSession` | `createSPARQLProtocolSession​(String queryEndpointUrl, String updateEndpointUrl)` | Creates a new SPARQL Protocol session to the remote SPARQL endpoint.
    `protected ExecutorService` | `getExecutorService()` | Get the `ExecutorService` 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 an `HttpClient` that this object should use.
    `void` | `setHttpClientBuilder​(org.apache.http.impl.client.HttpClientBuilder httpClientBuilder)` | Set an optional `HttpClientBuilder` to create the inner `httpClient` (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.

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

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

- - ### Field Detail

    - #### CORE_POOL_SIZE_PROPERTY

          public static final String CORE_POOL_SIZE_PROPERTY

      Configurable system property `org.eclipse.rdf4j.client.executors.corePoolSize` for specifying the background executor core thread pool size.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SharedHttpClientSessionManager

          public SharedHttpClientSessionManager()

    - #### SharedHttpClientSessionManager

          public SharedHttpClientSessionManager​(org.apache.http.impl.client.CloseableHttpClient dependentClient,
                                                ScheduledExecutorService dependentExecutorService)

  - ### 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 whether `HttpClient` was passed to or created by this object respectively.
      Specified by:
        `getHttpClient` in interface `HttpClientDependent`
      Specified by:
        `getHttpClient` in interface `HttpClientSessionManager`
      Returns:
        Returns the httpClient.

    - #### setHttpClient

          public void setHttpClient​(org.apache.http.client.HttpClient httpClient)

      Description copied from interface: `HttpClientDependent`
      Assign an `HttpClient` that this object should use. The life cycle of the given `HttpClient` 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 interface `HttpClientDependent`
      Parameters:
        `httpClient` - The httpClient to use for remote/service calls.

    - #### setHttpClientBuilder

          public void setHttpClientBuilder​(org.apache.http.impl.client.HttpClientBuilder httpClientBuilder)

      Set an optional `HttpClientBuilder` to create the inner `httpClient` (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​(String queryEndpointUrl,
                                                                   String updateEndpointUrl)

      Description copied from interface: `HttpClientSessionManager`
      Creates a new SPARQL Protocol session to the remote SPARQL endpoint.
      Specified by:
        `createSPARQLProtocolSession` in interface `HttpClientSessionManager`

    - #### createRDF4JProtocolSession

          public RDF4JProtocolSession createRDF4JProtocolSession​(String serverURL)

      Description copied from interface: `HttpClientSessionManager`
      Creates a new session to the remote RDF4J REST API.
      Specified by:
        `createRDF4JProtocolSession` in interface `HttpClientSessionManager`

    - #### 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 interface `HttpClientSessionManager`

    - #### initialize

          @Deprecated
          public void initialize()

      Deprecated.
      Create a new instance instead of trying to reactivate an old instance.
      No-op

    - #### getExecutorService

          protected final ExecutorService getExecutorService()

      Get the `ExecutorService` used by this session manager.
      Returns:
        a `ExecutorService` used by all `SPARQLProtocolSession` and `RDF4JProtocolSession` instances created by this session manager.