org.glassfish.jersey.client
Class JerseyInvocation

java.lang.Object
  extended by org.glassfish.jersey.client.JerseyInvocation
All Implemented Interfaces:
Invocation, Configurable<Invocation>

public class JerseyInvocation
extends Object
implements Invocation

Jersey implementation of JAX-RS client-side request invocation contract.

Author:
Marek Potociar (marek.potociar at oracle.com)

Nested Class Summary
static class JerseyInvocation.Builder
          Jersey-specific client invocation builder.
 
Method Summary
 ClientConfig getConfiguration()
          Get a live view of an internal configuration state of this configurable instance.
 Response invoke()
          Synchronously invoke the request and receive a response back.
<T> T
invoke(Class<T> responseType)
          Synchronously invoke the request and receive a response of the specified type back.
<T> T
invoke(GenericType<T> responseType)
          Synchronously invoke the request and receive a response of the specified generic type back.
 JerseyInvocation preInitialize()
          Pre initializes the configuration of this invocation in order to improve performance during the first request.
 JerseyInvocation property(String name, Object value)
          Set the new configuration property, if already set, the existing value of the property will be updated.
 JerseyInvocation register(Class<?> providerClass)
          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.
 JerseyInvocation register(Class<?> providerClass, 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.
 JerseyInvocation register(Class<?> providerClass, int bindingPriority)
          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.
 JerseyInvocation register(Class<?> providerClass, 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.
 JerseyInvocation register(Object provider)
          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.
 JerseyInvocation register(Object provider, 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.
 JerseyInvocation register(Object provider, int bindingPriority)
          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.
 JerseyInvocation register(Object provider, 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.
 JerseyInvocation replaceWith(Configuration config)
          Replace the existing configuration state with an externally provided configuration state.
 Future<Response> submit()
          Submit the request for an asynchronous invocation and receive a future response back.
<T> Future<T>
submit(Class<T> responseType)
          Submit the request for an asynchronous invocation and receive a future response of the specified type back.
<T> Future<T>
submit(GenericType<T> responseType)
          Submit the request for an asynchronous invocation and receive a future response of the specified generic type back.
<T> Future<T>
submit(InvocationCallback<T> callback)
          Submit the request for an asynchronous invocation and register an InvocationCallback to process the future result of the invocation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

invoke

public Response invoke()
                throws ProcessingException,
                       WebApplicationException
Description copied from interface: Invocation
Synchronously invoke the request and receive a response back.

Specified by:
invoke in interface Invocation
Returns:
response object as a result of the request invocation.
Throws:
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during conversion of the response entity data to an instance of a particular Java type).
ProcessingException - in case the request processing or subsequent I/O operation fails.
WebApplicationException

invoke

public <T> T invoke(Class<T> responseType)
         throws ProcessingException,
                WebApplicationException
Description copied from interface: Invocation
Synchronously invoke the request and receive a response of the specified type back.

Specified by:
invoke in interface Invocation
Type Parameters:
T - response type
Parameters:
responseType - Java type the response should be converted into.
Returns:
response object of the specified type as a result of the request invocation.
Throws:
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during conversion of the response entity data to an instance of a particular Java type).
ProcessingException - in case the request processing or subsequent I/O operation fails.
WebApplicationException - in case the response status code of the response returned by the server is not successful.

invoke

public <T> T invoke(GenericType<T> responseType)
         throws ProcessingException,
                WebApplicationException
Description copied from interface: Invocation
Synchronously invoke the request and receive a response of the specified generic type back.

Specified by:
invoke in interface Invocation
Type Parameters:
T - generic response type
Parameters:
responseType - type literal representing a generic Java type the response should be converted into.
Returns:
response object of the specified generic type as a result of the request invocation.
Throws:
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during conversion of the response entity data to an instance of a particular Java type).
ProcessingException - in case the request processing or subsequent I/O operation fails.
WebApplicationException - in case the response status code of the response returned by the server is not successful.

submit

public Future<Response> submit()
Description copied from interface: Invocation
Submit the request for an asynchronous invocation and receive a future response back.

Note that calling the Future.get() method on the returned Future instance may throw an ExecutionException that wraps a ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.

Specified by:
submit in interface Invocation
Returns:
future response object as a result of the request invocation.

submit

public <T> Future<T> submit(Class<T> responseType)
Description copied from interface: Invocation
Submit the request for an asynchronous invocation and receive a future response of the specified type back.

Note that calling the Future.get() method on the returned Future instance may throw an ExecutionException that wraps either a ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.

Specified by:
submit in interface Invocation
Type Parameters:
T - response type
Parameters:
responseType - Java type the response should be converted into.
Returns:
future response object of the specified type as a result of the request invocation.

submit

public <T> Future<T> submit(GenericType<T> responseType)
Description copied from interface: Invocation
Submit the request for an asynchronous invocation and receive a future response of the specified generic type back.

Note that calling the Future.get() method on the returned Future instance may throw an ExecutionException that wraps either a ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.

Specified by:
submit in interface Invocation
Type Parameters:
T - generic response type
Parameters:
responseType - type literal representing a generic Java type the response should be converted into.
Returns:
future response object of the specified generic type as a result of the request invocation.

submit

public <T> Future<T> submit(InvocationCallback<T> callback)
Description copied from interface: Invocation
Submit the request for an asynchronous invocation and register an InvocationCallback to process the future result of the invocation.

Note that calling the Future.get() method on the returned Future instance may throw an ExecutionException that wraps either a ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.

Specified by:
submit in interface Invocation
Type Parameters:
T - response type
Parameters:
callback - invocation callback for asynchronous processing of the request invocation result.
Returns:
future response object of the specified type as a result of the request invocation.

property

public JerseyInvocation 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<Invocation>
Parameters:
name - property name.
value - (new) property value. null value removes the property with the given name.
Returns:
the updated configurable instance.

register

public JerseyInvocation register(Class<?> providerClass)
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<Invocation>
Parameters:
providerClass - JAX-RS component class to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public JerseyInvocation register(Class<?> providerClass,
                                 int bindingPriority)
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 @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<Invocation>
Parameters:
providerClass - JAX-RS component class to be configured in the scope of this configurable context.
bindingPriority - the overriding priority for the registered component and all the provider contracts the component implements.
Returns:
the updated configurable context.

register

public JerseyInvocation register(Class<?> providerClass,
                                 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<Invocation>
Parameters:
providerClass - 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 JerseyInvocation register(Class<?> providerClass,
                                 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 using @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<Invocation>
Parameters:
providerClass - 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 JerseyInvocation register(Object provider)
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<Invocation>
Parameters:
provider - JAX-RS component instance to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public JerseyInvocation register(Object provider,
                                 int bindingPriority)
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 @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<Invocation>
Parameters:
provider - JAX-RS component instance to be configured in the scope of this configurable context.
bindingPriority - the overriding priority for the registered component and all the provider contracts the component implements.
Returns:
the updated configurable context.

register

public JerseyInvocation register(Object provider,
                                 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<Invocation>
Parameters:
provider - 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 JerseyInvocation register(Object provider,
                                 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 using @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<Invocation>
Parameters:
provider - 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.

replaceWith

public JerseyInvocation replaceWith(Configuration config)
Description copied from interface: Configurable
Replace the existing configuration state with an externally provided configuration state.

Specified by:
replaceWith in interface Configurable<Invocation>
Parameters:
config - external configuration state to replace the configuration of this configurable instance.
Returns:
the updated configurable context.

getConfiguration

public ClientConfig 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<Invocation>
Returns:
configuration live view of the internal configuration state.

preInitialize

public JerseyInvocation preInitialize()
Pre initializes the configuration of this invocation in order to improve performance during the first request.

Once this method is called no other method implementing Configurable should be called on this pre initialized invocation builder otherwise invocation will change back to uninitialized.

Returns:
Jersey invocation.


Copyright © 2007-2013 Oracle Corporation. All Rights Reserved. Use is subject to license terms.