Class JerseyClientBuilder


  • public class JerseyClientBuilder
    extends Object
    A convenience class for building Client instances.

    Among other things,

    • Backed by Apache HttpClient
    • Disables stale connection checks
    • Disables Nagle's algorithm
    • Disables cookie management by default
    • Compress requests and decompress responses using GZIP
    • Supports parsing and generating JSON data using Jackson

    See Also:
    HttpClientBuilder
    • Constructor Detail

      • JerseyClientBuilder

        public JerseyClientBuilder​(Environment environment)
      • JerseyClientBuilder

        public JerseyClientBuilder​(com.codahale.metrics.MetricRegistry metricRegistry)
    • Method Detail

      • setApacheHttpClientBuilder

        public void setApacheHttpClientBuilder​(HttpClientBuilder apacheHttpClientBuilder)
      • withProvider

        public JerseyClientBuilder withProvider​(Object provider)
        Adds the given object as a Jersey provider.
        Parameters:
        provider - a Jersey provider
        Returns:
        this
      • withProvider

        public JerseyClientBuilder withProvider​(Class<?> klass)
        Adds the given class as a Jersey provider.

        N.B.: This class must either have a no-args constructor or use Jersey's built-in dependency injection.

        Parameters:
        klass - a Jersey provider class
        Returns:
        this
      • withProperty

        public JerseyClientBuilder withProperty​(String propertyName,
                                                Object propertyValue)
        Sets the state of the given Jersey property.

        WARNING: The default connector ignores Jersey properties. Use JerseyClientConfiguration instead.

        Parameters:
        propertyName - the name of the Jersey property
        propertyValue - the state of the Jersey property
        Returns:
        this
      • using

        public JerseyClientBuilder using​(javax.validation.Validator validator)
        Use the given Validator instance.
        Parameters:
        validator - a Validator instance
        Returns:
        this
      • using

        public JerseyClientBuilder using​(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
        Uses the given ObjectMapper.
        Parameters:
        objectMapper - an object mapper
        Returns:
        this
        See Also:
        using(Environment)
      • using

        public JerseyClientBuilder using​(org.glassfish.jersey.client.spi.ConnectorProvider connectorProvider)
        Use the given ConnectorProvider instance.

        WARNING: Use it with a caution. Most of features will not work in a custom connection provider.

        Parameters:
        connectorProvider - a ConnectorProvider instance
        Returns:
        this
      • using

        public JerseyClientBuilder using​(org.apache.hc.client5.http.HttpRequestRetryStrategy httpRequestRetryStrategy)
        Uses the HttpRequestRetryStrategy for handling request retries.
        Parameters:
        httpRequestRetryStrategy - a HttpRequestRetryStrategy
        Returns:
        this
      • using

        public JerseyClientBuilder using​(org.apache.hc.client5.http.DnsResolver resolver)
        Use the given DnsResolver instance.
        Parameters:
        resolver - a DnsResolver instance
        Returns:
        this
      • using

        public JerseyClientBuilder using​(org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.socket.ConnectionSocketFactory> registry)
        Use the given Registry instance of connection socket factories.
        Parameters:
        registry - a Registry instance of connection socket factories
        Returns:
        this
      • using

        public JerseyClientBuilder using​(com.codahale.metrics.httpclient5.HttpClientMetricNameStrategy metricNameStrategy)
        Use the given HttpClientMetricNameStrategy instance.
        Parameters:
        metricNameStrategy - a HttpClientMetricNameStrategy instance
        Returns:
        this
      • name

        public JerseyClientBuilder name​(String environmentName)
        Use the given environment name. This is used in the user agent.
        Parameters:
        environmentName - an environment name to use in the user agent.
        Returns:
        this
      • using

        public JerseyClientBuilder using​(org.apache.hc.client5.http.routing.HttpRoutePlanner routePlanner)
        Use the given HttpRoutePlanner instance.
        Parameters:
        routePlanner - a HttpRoutePlanner instance
        Returns:
        this
      • using

        public JerseyClientBuilder using​(org.apache.hc.client5.http.auth.CredentialsStore credentialsStore)
        Use the given CredentialsStore instance.
        Parameters:
        credentialsStore - a CredentialsStore instance
        Returns:
        this
      • buildRx

        public <RX extends javax.ws.rs.client.RxInvokerProvider<?>> javax.ws.rs.client.Client buildRx​(String name,
                                                                                                      Class<RX> invokerType)
        Builds the Client instance with a custom reactive client provider.
        Returns:
        a fully-configured Client
      • build

        public javax.ws.rs.client.Client build​(String name)
        Builds the Client instance.
        Returns:
        a fully-configured Client