Class RestClientBuilder


  • public final class RestClientBuilder
    extends java.lang.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 Detail

      • DEFAULT_CONNECT_TIMEOUT_MILLIS

        public static final int DEFAULT_CONNECT_TIMEOUT_MILLIS
        See Also:
        Constant Field Values
      • DEFAULT_SOCKET_TIMEOUT_MILLIS

        public static final int DEFAULT_SOCKET_TIMEOUT_MILLIS
        See Also:
        Constant Field Values
      • DEFAULT_MAX_RETRY_TIMEOUT_MILLIS

        public static final int DEFAULT_MAX_RETRY_TIMEOUT_MILLIS
        See Also:
        Constant Field Values
      • DEFAULT_MAX_CONN_PER_ROUTE

        public static final int DEFAULT_MAX_CONN_PER_ROUTE
        See Also:
        Constant Field Values
    • Method Detail

      • 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.

        Throws:
        java.lang.NullPointerException - if defaultHeaders or any header is null.
      • setMaxRetryTimeoutMillis

        public RestClientBuilder setMaxRetryTimeoutMillis​(int maxRetryTimeoutMillis)
        Sets the maximum timeout (in milliseconds) to honour in case of multiple retries of the same request. DEFAULT_MAX_RETRY_TIMEOUT_MILLIS if not specified.
        Throws:
        java.lang.IllegalArgumentException - if maxRetryTimeoutMillis is not greater than 0
      • setPathPrefix

        public RestClientBuilder setPathPrefix​(java.lang.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 Elasticsearch 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.

        Throws:
        java.lang.NullPointerException - if pathPrefix is null.
        java.lang.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.
        Throws:
        java.lang.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.