Class RestClientBuilder

java.lang.Object
org.opensearch.client.RestClientBuilder

public final class RestClientBuilder extends Object
Helps creating a new RestClient. Allows to set the most common http client configuration options when internally creating the underlying HttpAsyncClient. Also allows to provide an externally created HttpAsyncClient in case additional customization is needed.
  • Field Details

    • DEFAULT_CONNECT_TIMEOUT_MILLIS

      public static final int DEFAULT_CONNECT_TIMEOUT_MILLIS
      The default connection timout in milliseconds.
      See Also:
    • DEFAULT_SOCKET_TIMEOUT_MILLIS

      public static final int DEFAULT_SOCKET_TIMEOUT_MILLIS
      The default socket timeout in milliseconds.
      See Also:
    • DEFAULT_MAX_CONN_PER_ROUTE

      public static final int DEFAULT_MAX_CONN_PER_ROUTE
      The default maximum of connections per route.
      See Also:
    • DEFAULT_MAX_CONN_TOTAL

      public static final int DEFAULT_MAX_CONN_TOTAL
      The default maximum total connections.
      See Also:
  • Method Details

    • setDefaultHeaders

      public RestClientBuilder setDefaultHeaders(org.apache.http.Header[] defaultHeaders)
      Sets the default request headers, which will be sent along with each request.

      Request-time headers will always overwrite any default headers.

      Parameters:
      defaultHeaders - array of default header
      Throws:
      NullPointerException - if defaultHeaders or any header is null.
    • setFailureListener

      public RestClientBuilder setFailureListener(RestClient.FailureListener failureListener)
      Sets the RestClient.FailureListener to be notified for each request failure
      Parameters:
      failureListener - the RestClient.FailureListener for each failure
      Throws:
      NullPointerException - if failureListener is null.
    • setHttpClientConfigCallback

      public RestClientBuilder setHttpClientConfigCallback(RestClientBuilder.HttpClientConfigCallback httpClientConfigCallback)
      Sets the RestClientBuilder.HttpClientConfigCallback to be used to customize http client configuration
      Parameters:
      httpClientConfigCallback - the RestClientBuilder.HttpClientConfigCallback to be used
      Throws:
      NullPointerException - if httpClientConfigCallback is null.
    • setRequestConfigCallback

      public RestClientBuilder setRequestConfigCallback(RestClientBuilder.RequestConfigCallback requestConfigCallback)
      Sets the RestClientBuilder.RequestConfigCallback to be used to customize http client configuration
      Parameters:
      requestConfigCallback - the RestClientBuilder.RequestConfigCallback to be used
      Throws:
      NullPointerException - if requestConfigCallback is null.
    • setPathPrefix

      public RestClientBuilder setPathPrefix(String pathPrefix)
      Sets the path's prefix for every request used by the http client.

      For example, if this is set to "/my/path", then any client request will become "/my/path/" + endpoint.

      In essence, every request's endpoint is prefixed by this pathPrefix. The path prefix is useful for when OpenSearch is behind a proxy that provides a base path or a proxy that requires all paths to start with '/'; it is not intended for other purposes and it should not be supplied in other scenarios.

      Parameters:
      pathPrefix - the path prefix for every request.
      Throws:
      NullPointerException - if pathPrefix is null.
      IllegalArgumentException - if pathPrefix is empty, or ends with more than one '/'.
    • cleanPathPrefix

      public static String cleanPathPrefix(String pathPrefix)
      Cleans up the given path prefix to ensure that looks like "/base/path".
      Parameters:
      pathPrefix - the path prefix to be cleaned up.
      Returns:
      the cleaned up path prefix.
      Throws:
      NullPointerException - if pathPrefix is null.
      IllegalArgumentException - if pathPrefix is empty, or ends with more than one '/'.
    • setNodeSelector

      public RestClientBuilder setNodeSelector(NodeSelector nodeSelector)
      Sets the NodeSelector to be used for all requests.
      Parameters:
      nodeSelector - the NodeSelector to be used
      Throws:
      NullPointerException - if the provided nodeSelector is null
    • setStrictDeprecationMode

      public RestClientBuilder setStrictDeprecationMode(boolean strictDeprecationMode)
      Whether the REST client should return any response containing at least one warning header as a failure.
      Parameters:
      strictDeprecationMode - flag for enabling strict deprecation mode
    • setCompressionEnabled

      public RestClientBuilder setCompressionEnabled(boolean compressionEnabled)
      Whether the REST client should compress requests using gzip content encoding and add the "Accept-Encoding: gzip" header to receive compressed responses.
      Parameters:
      compressionEnabled - flag for enabling compression
    • setChunkedEnabled

      public RestClientBuilder setChunkedEnabled(boolean chunkedEnabled)
      Whether the REST client should use Transfer-Encoding: chunked for requests or not"
      Parameters:
      chunkedEnabled - force enable/disable chunked transfer-encoding.
    • build

      public RestClient build()
      Creates a new RestClient based on the provided configuration.