org.jboss.resteasy.client.jaxrs

## Class ResteasyClient

- java.lang.Object
- - org.jboss.resteasy.client.jaxrs.ResteasyClient

- All Implemented Interfaces:
    Client, Configurable<Client>

      public class ResteasyClient
      extends Object
      implements Client

  Version:
    $Revision: 1 $
  Author:
    Bill Burke

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ExecutorService` | `asyncInvocationExecutor`
    `protected boolean` | `cleanupExecutor`
    `protected boolean` | `closed`
    `protected ClientConfiguration` | `configuration`
    `protected ClientHttpEngine` | `httpEngine`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `abortIfClosed()`
    `ExecutorService` | `asyncInvocationExecutor()`
    `void` | `close()` Close client instance and all it's associated resources.
    `Configuration` | `getConfiguration()` Get a live view of an internal configuration state of this configurable instance.
    `HostnameVerifier` | `getHostnameVerifier()` Get the hostname verifier configured in the client or `null` in case no hostname verifier has been configured.
    `SSLContext` | `getSslContext()` Get the SSL context configured to be used with the current client run-time.
    `ClientHttpEngine` | `httpEngine()`
    `Invocation.Builder` | `invocation(Link link)` Build an invocation builder from a link.
    `boolean` | `isClosed()`
    `ResteasyClient` | `property(String name, Object value)` Set the new configuration property, if already set, the existing value of the property will be updated.
    `ResteasyClient` | `register(Class<?> componentClass)` 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.
    `ResteasyClient` | `register(Class<?> componentClass, Class<?>... contracts)` 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.
    `ResteasyClient` | `register(Class<?> componentClass, int priority)` 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.
    `ResteasyClient` | `register(Class<?> componentClass, Map<Class<?>,Integer> contracts)` 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.
    `ResteasyClient` | `register(Object component)` 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.
    `ResteasyClient` | `register(Object component, Class<?>... contracts)` 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.
    `ResteasyClient` | `register(Object component, int priority)` 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.
    `ResteasyClient` | `register(Object component, Map<Class<?>,Integer> contracts)` 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.
    `ResteasyWebTarget` | `target(Link link)` Build a new web resource target.
    `ResteasyWebTarget` | `target(String uri)` Build a new web resource target.
    `ResteasyWebTarget` | `target(URI uri)` Build a new web resource target.
    `ResteasyWebTarget` | `target(UriBuilder uriBuilder)` Build a new web resource target.

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

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

- - ### Field Detail

    - #### httpEngine

          protected volatile ClientHttpEngine httpEngine

    - #### asyncInvocationExecutor

          protected volatile ExecutorService asyncInvocationExecutor

    - #### configuration

          protected ClientConfiguration configuration

    - #### closed

          protected boolean closed

    - #### cleanupExecutor

          protected boolean cleanupExecutor

  - ### Method Detail

    - #### httpEngine

          public ClientHttpEngine httpEngine()

    - #### asyncInvocationExecutor

          public ExecutorService asyncInvocationExecutor()

    - #### abortIfClosed

          public void abortIfClosed()

    - #### isClosed

          public boolean isClosed()

    - #### close

          public void close()

      Description copied from interface: `Client`
      Close client instance and all it's associated resources. Subsequent calls have no effect and are ignored. Once the client is closed, invoking any other method on the client instance would result in an `IllegalStateException` being thrown.

      Calling this method effectively invalidates all `resource targets` produced by the client instance. Invoking any method on such targets once the client is closed would result in an `IllegalStateException` being thrown.
      Specified by:
        `close` in interface `Client`

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

      Specified by:
        `getConfiguration` in interface `Configurable<Client>`
      Returns:
        configuration live view of the internal configuration state.

    - #### getSslContext

          public SSLContext getSslContext()

      Description copied from interface: `Client`
      Get the SSL context configured to be used with the current client run-time.
      Specified by:
        `getSslContext` in interface `Client`
      Returns:
        SSL context configured to be used with the current client run-time.

    - #### getHostnameVerifier

          public HostnameVerifier getHostnameVerifier()

      Description copied from interface: `Client`
      Get the hostname verifier configured in the client or `null` in case no hostname verifier has been configured.
      Specified by:
        `getHostnameVerifier` in interface `Client`
      Returns:
        client hostname verifier or `null` if not set.

    - #### property

          public ResteasyClient 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.
      Specified by:
        `property` in interface `Configurable<Client>`
      Parameters:
        `name` - property name.
        `value` - (new) property value. `null` value removes the property with the given name.
      Returns:
        the updated configurable instance.

    - #### register

          public ResteasyClient 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.

      Specified by:
        `register` in interface `Configurable<Client>`
      Parameters:
        `componentClass` - JAX-RS component class to be configured in the scope of this configurable context.
      Returns:
        the updated configurable context.

    - #### register

          public ResteasyClient 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 `javax.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.

      Specified by:
        `register` in interface `Configurable<Client>`
      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 ResteasyClient 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).

      Specified by:
        `register` in interface `Configurable<Client>`
      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 ResteasyClient 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 `javax.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.

      Specified by:
        `register` in interface `Configurable<Client>`
      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 ResteasyClient 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.

      Specified by:
        `register` in interface `Configurable<Client>`
      Parameters:
        `component` - JAX-RS component instance to be configured in the scope of this configurable context.
      Returns:
        the updated configurable context.

    - #### register

          public ResteasyClient 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 `javax.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.

      Specified by:
        `register` in interface `Configurable<Client>`
      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 ResteasyClient 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).

      Specified by:
        `register` in interface `Configurable<Client>`
      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 ResteasyClient 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 `javax.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.

      Specified by:
        `register` in interface `Configurable<Client>`
      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.

    - #### target

          public ResteasyWebTarget target(String uri)
                                   throws IllegalArgumentException,
                                          NullPointerException

      Description copied from interface: `Client`
      Build a new web resource target.
      Specified by:
        `target` in interface `Client`
      Parameters:
        `uri` - web resource URI. May contain template parameters. Must not be `null`.
      Returns:
        web resource target bound to the provided URI.
      Throws:
        `IllegalArgumentException` - in case the supplied string is not a valid URI template.
        `NullPointerException` - in case the supplied argument is `null`.

    - #### target

          public ResteasyWebTarget target(URI uri)
                                   throws NullPointerException

      Description copied from interface: `Client`
      Build a new web resource target.
      Specified by:
        `target` in interface `Client`
      Parameters:
        `uri` - web resource URI. Must not be `null`.
      Returns:
        web resource target bound to the provided URI.
      Throws:
        `NullPointerException` - in case the supplied argument is `null`.

    - #### target

          public ResteasyWebTarget target(UriBuilder uriBuilder)
                                   throws NullPointerException

      Description copied from interface: `Client`
      Build a new web resource target.
      Specified by:
        `target` in interface `Client`
      Parameters:
        `uriBuilder` - web resource URI represented as URI builder. Must not be `null`.
      Returns:
        web resource target bound to the provided URI.
      Throws:
        `NullPointerException` - in case the supplied argument is `null`.

    - #### target

          public ResteasyWebTarget target(Link link)
                                   throws NullPointerException

      Description copied from interface: `Client`
      Build a new web resource target.
      Specified by:
        `target` in interface `Client`
      Parameters:
        `link` - link to a web resource. Must not be `null`.
      Returns:
        web resource target bound to the linked web resource.
      Throws:
        `NullPointerException` - in case the supplied argument is `null`.

    - #### invocation

          public Invocation.Builder invocation(Link link)
                                        throws NullPointerException,
                                               IllegalArgumentException

      Description copied from interface: `Client`

      Build an invocation builder from a link. It uses the URI and the type of the link to initialize the invocation builder. The type is used as the initial value for the HTTP Accept header, if present.

      Specified by:
        `invocation` in interface `Client`
      Parameters:
        `link` - link to build invocation from. Must not be `null`.
      Returns:
        newly created invocation builder.
      Throws:
        `NullPointerException` - in case link is `null`.
        `IllegalArgumentException`

Copyright © 2014. All Rights Reserved.