Class ResteasyClientBuilderImpl

  • All Implemented Interfaces:
    Configurable<ClientBuilder>

    public class ResteasyClientBuilderImpl
    extends ResteasyClientBuilder
    Abstraction for creating Clients. Allows SSL configuration. Uses Apache Http Client under the covers. If used with other ClientHttpEngines though, all configuration options are ignored.
    Version:
    $Revision: 1 $
    Author:
    Bill Burke
    • Field Detail

      • truststore

        protected KeyStore truststore
      • clientKeyStore

        protected KeyStore clientKeyStore
      • clientPrivateKeyPassword

        protected String clientPrivateKeyPassword
      • disableTrustManager

        protected boolean disableTrustManager
      • cleanupExecutor

        protected boolean cleanupExecutor
      • connectionPoolSize

        protected int connectionPoolSize
      • maxPooledPerRoute

        protected int maxPooledPerRoute
      • connectionTTL

        protected long connectionTTL
      • connectionTTLUnit

        protected TimeUnit connectionTTLUnit
      • socketTimeout

        protected long socketTimeout
      • socketTimeoutUnits

        protected TimeUnit socketTimeoutUnits
      • establishConnectionTimeout

        protected long establishConnectionTimeout
      • establishConnectionTimeoutUnits

        protected TimeUnit establishConnectionTimeoutUnits
      • connectionCheckoutTimeoutMs

        protected int connectionCheckoutTimeoutMs
      • defaultProxy

        protected org.apache.http.HttpHost defaultProxy
      • responseBufferSize

        protected int responseBufferSize
      • sniHostNames

        protected List<String> sniHostNames
      • trustSelfSignedCertificates

        protected boolean trustSelfSignedCertificates
      • cookieManagementEnabled

        protected boolean cookieManagementEnabled
      • disableAutomaticRetries

        protected boolean disableAutomaticRetries
      • followRedirects

        protected boolean followRedirects
    • Constructor Detail

      • ResteasyClientBuilderImpl

        public ResteasyClientBuilderImpl()
    • Method Detail

      • asyncExecutor

        @Deprecated
        public ResteasyClientBuilderImpl asyncExecutor​(ExecutorService asyncExecutor,
                                                       boolean cleanupExecutor)
        Deprecated.
        Executor to use to run AsyncInvoker invocations.
        Parameters:
        asyncExecutor - executor service
        cleanupExecutor - true if the Client should close the executor when it is closed
        Returns:
        the updated client builder instance
      • connectionTTL

        public ResteasyClientBuilderImpl connectionTTL​(long ttl,
                                                       TimeUnit unit)
        If there is a connection pool, set the time to live in the pool.
        Specified by:
        connectionTTL in class ResteasyClientBuilder
        Parameters:
        ttl - time to live
        unit - the time unit of the ttl argument
        Returns:
        the updated client builder instance
      • readTimeout

        public ResteasyClientBuilderImpl readTimeout​(long timeout,
                                                     TimeUnit unit)
        Description copied from class: ClientBuilder
        Set the read timeout.

        The value is the timeout to read a response. If the server doesn't respond within the defined timeframe, ProcessingException is thrown with TimeoutException as a cause.

        Value 0 represents infinity. Negative values are not allowed.

        Specified by:
        readTimeout in class ResteasyClientBuilder
        Parameters:
        timeout - the maximum time to wait.
        unit - the time unit of the timeout argument.
        Returns:
        an updated client builder instance.
      • connectTimeout

        public ResteasyClientBuilderImpl connectTimeout​(long timeout,
                                                        TimeUnit unit)
        Description copied from class: ClientBuilder
        Set the connect timeout.

        Value 0 represents infinity. Negative values are not allowed.

        Specified by:
        connectTimeout in class ResteasyClientBuilder
        Parameters:
        timeout - the maximum time to wait.
        unit - the time unit of the timeout argument.
        Returns:
        an updated client builder instance.
      • maxPooledPerRoute

        public ResteasyClientBuilderImpl maxPooledPerRoute​(int maxPooledPerRoute)
        If connection pooling enabled, how many connections to pool per url?
        Specified by:
        maxPooledPerRoute in class ResteasyClientBuilder
        Parameters:
        maxPooledPerRoute - max pool size per url
        Returns:
        the updated client builder instance
      • responseBufferSize

        public ResteasyClientBuilderImpl responseBufferSize​(int size)
        Response stream is wrapped in a BufferedInputStream. Default is 8192. Value of 0 will not wrap it. Value of -1 will use a SelfExpandingBufferedInputStream.
        Specified by:
        responseBufferSize in class ResteasyClientBuilder
        Parameters:
        size - response buffer size
        Returns:
        the updated client builder instance
      • disableTrustManager

        public ResteasyClientBuilderImpl disableTrustManager()
        Disable trust management and hostname verification. NOTE this is a security hole, so only set this option if you cannot or do not want to verify the identity of the host you are communicating with.
        Specified by:
        disableTrustManager in class ResteasyClientBuilder
        Returns:
        the updated client builder instance
      • property

        public ResteasyClientBuilderImpl property​(String name,
                                                  Object value)
        Description copied from interface: Configurable
        Set the new configuration property, if already set, the existing value of the property will be updated. Setting a null value into a property effectively removes the property from the property bag.
        Parameters:
        name - property name.
        value - (new) property value. null value removes the property with the given name.
        Returns:
        the updated configurable instance.
      • build

        public ResteasyClient build()
        Description copied from class: ClientBuilder
        Build a new client instance using all the configuration previously specified in this client builder.
        Specified by:
        build in class ResteasyClientBuilder
        Returns:
        a new client instance.
      • getConfiguration

        public Configuration getConfiguration()
        Description copied from interface: Configurable
        Get a live view of an internal configuration state of this configurable instance. Any changes made using methods of this Configurable instance will be reflected in the returned Configuration instance.

        The returned Configuration instance and the collection data it provides are not thread-safe wrt. modification made using methods on the parent configurable object.

        Returns:
        configuration live view of the internal configuration state.
      • register

        public ResteasyClientBuilderImpl register​(Class<?> componentClass)
        Description copied from interface: Configurable
        Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component class is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or DynamicFeature.

        As opposed to component instances registered via Configurable.register(Object) method, the lifecycle of components registered using this class-based register(...) method is fully managed by the JAX-RS implementation or any underlying IoC container supported by the implementation.

        Parameters:
        componentClass - JAX-RS component class to be configured in the scope of this configurable context.
        Returns:
        the updated configurable context.
      • register

        public ResteasyClientBuilderImpl register​(Class<?> componentClass,
                                                  int priority)
        Description copied from interface: Configurable
        Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

        This registration method provides the same functionality as Configurable.register(Class) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden with the supplied priority value.

        Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.

        Parameters:
        componentClass - JAX-RS component class to be configured in the scope of this configurable context.
        priority - the overriding priority for the registered component and all the provider contracts the component implements.
        Returns:
        the updated configurable context.
      • register

        public ResteasyClientBuilderImpl register​(Class<?> componentClass,
                                                  Class<?>... contracts)
        Description copied from interface: Configurable
        Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

        This registration method provides the same functionality as Configurable.register(Class) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).

        Parameters:
        componentClass - JAX-RS component class to be configured in the scope of this configurable context.
        contracts - the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty or null collection of contracts via this method and SHOULD raise a warning about such event.
        Returns:
        the updated configurable context.
      • register

        public ResteasyClientBuilderImpl register​(Class<?> componentClass,
                                                  Map<Class<?>,​Integer> contracts)
        Description copied from interface: Configurable
        Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

        This registration method provides same functionality as Configurable.register(Class, Class[]) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.

        Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.

        Parameters:
        componentClass - JAX-RS component class to be configured in the scope of this configurable context.
        contracts - map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
        Returns:
        the updated configurable context.
      • register

        public ResteasyClientBuilderImpl register​(Object component)
        Description copied from interface: Configurable
        Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or DynamicFeature.

        As opposed to components registered via Configurable.register(Class) method, the lifecycle of providers registered using this instance-based register(...) is not managed by JAX-RS runtime. The same registered component instance is used during the whole lifespan of the configurable context. Fields and properties of all registered JAX-RS component instances are injected with their declared dependencies (see Context) by the JAX-RS runtime prior to use.

        Parameters:
        component - JAX-RS component instance to be configured in the scope of this configurable context.
        Returns:
        the updated configurable context.
      • register

        public ResteasyClientBuilderImpl register​(Object component,
                                                  int priority)
        Description copied from interface: Configurable
        Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

        This registration method provides the same functionality as Configurable.register(Object) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden with the supplied priority value.

        Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.

        Parameters:
        component - JAX-RS component instance to be configured in the scope of this configurable context.
        priority - the overriding priority for the registered component and all the provider contracts the component implements.
        Returns:
        the updated configurable context.
      • register

        public ResteasyClientBuilderImpl register​(Object component,
                                                  Class<?>... contracts)
        Description copied from interface: Configurable
        Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

        This registration method provides the same functionality as Configurable.register(Object) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).

        Parameters:
        component - JAX-RS component instance to be configured in the scope of this configurable context.
        contracts - the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty or null collection of contracts via this method and SHOULD raise a warning about such event.
        Returns:
        the updated configurable context.
      • register

        public ResteasyClientBuilderImpl register​(Object component,
                                                  Map<Class<?>,​Integer> contracts)
        Description copied from interface: Configurable
        Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

        This registration method provides same functionality as Configurable.register(Object, Class[]) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.

        Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.

        Parameters:
        component - JAX-RS component instance to be configured in the scope of this configurable context.
        contracts - map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
        Returns:
        the updated configurable context.
      • withConfig

        public ResteasyClientBuilderImpl withConfig​(Configuration config)
        Description copied from class: ClientBuilder
        Set the internal configuration state to an externally provided configuration state.
        Specified by:
        withConfig in class ResteasyClientBuilder
        Parameters:
        config - external configuration state to replace the configuration of this configurable instance.
        Returns:
        the updated client builder instance.
      • setIsTrustSelfSignedCertificates

        public void setIsTrustSelfSignedCertificates​(boolean b)
        Description copied from class: ResteasyClientBuilder
        When the user is not using a TrustManager (see disableTrustManager) and does not define an SSLContext object but they want all defined trustStores to use the TrustSelfSignedCertificates trust strategy set this value to true.
        Specified by:
        setIsTrustSelfSignedCertificates in class ResteasyClientBuilder
        Parameters:
        b - A value of true assigns trust strategy TrustSelfSignedCertificates to the trustStores. A value of false assigns a null to the trust strategy. The default value is true in order to maintain backward compatibility.