org.glassfish.jersey.client
Class JerseyClient

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

public class JerseyClient
extends Object
implements Client

Jersey implementation of JAX-RS JerseyClient contract.

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

Constructor Summary
protected JerseyClient()
          Create a new Jersey client instance using a default configuration.
protected JerseyClient(Configuration config, SSLContext sslContext, HostnameVerifier verifier)
          Create a new Jersey client instance.
protected JerseyClient(Configuration config, UnsafeValue<SSLContext,IllegalStateException> sslContextProvider, HostnameVerifier verifier)
          Create a new Jersey client instance.
 
Method Summary
 void addListener(org.glassfish.jersey.client.JerseyClient.LifecycleListener listener)
          Add a new client lifecycle listener.
 void close()
          Close client instance and all it's associated resources.
 ClientConfig getConfiguration()
          Get a live view of an internal configuration state of this configurable instance.
 HostnameVerifier getHostnameVerifier()
          Get the hostname verifier.
 SSLContext getSslContext()
          Get the SSL context configured to be used with the current client run-time.
 JerseyInvocation.Builder invocation(Link link)
          Build an invocation builder from a link.
 boolean isClosed()
          Check client state.
 JerseyClient preInitialize()
          Pre initializes the configuration of this client in order to improve performance during the first request.
 JerseyClient property(String name, Object value)
          Set the new configuration property, if already set, the existing value of the property will be updated.
 JerseyClient 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.
 JerseyClient 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.
 JerseyClient 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.
 JerseyClient 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.
 JerseyClient 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.
 JerseyClient 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.
 JerseyClient 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.
 JerseyClient 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.
 JerseyWebTarget target(Link link)
          Build a new web resource target.
 JerseyWebTarget target(String uri)
          Build a new web resource target.
 JerseyWebTarget target(URI uri)
          Build a new web resource target.
 JerseyWebTarget 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
 

Constructor Detail

JerseyClient

protected JerseyClient()
Create a new Jersey client instance using a default configuration.


JerseyClient

protected JerseyClient(Configuration config,
                       SSLContext sslContext,
                       HostnameVerifier verifier)
Create a new Jersey client instance.

Parameters:
config - jersey client configuration.
sslContext - jersey client SSL context.
verifier - jersey client host name verifier.

JerseyClient

protected JerseyClient(Configuration config,
                       UnsafeValue<SSLContext,IllegalStateException> sslContextProvider,
                       HostnameVerifier verifier)
Create a new Jersey client instance.

Parameters:
config - jersey client configuration.
sslContextProvider - jersey client SSL context provider.
verifier - jersey client host name verifier.
Method Detail

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

addListener

public void addListener(org.glassfish.jersey.client.JerseyClient.LifecycleListener listener)
Add a new client lifecycle listener.

Parameters:
listener - client lifecycle listener.

isClosed

public boolean isClosed()
Check client state.

Returns:
true if current JerseyClient instance is closed, otherwise false.
See Also:
close()

target

public JerseyWebTarget 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 JerseyWebTarget 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 JerseyWebTarget 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 JerseyWebTarget 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 JerseyInvocation.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

register

public JerseyClient 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<Client>
Parameters:
providerClass - JAX-RS component class to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public JerseyClient 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<Client>
Parameters:
provider - JAX-RS component instance to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public JerseyClient 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 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:
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 JerseyClient 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<Client>
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 JerseyClient 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 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:
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 JerseyClient 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 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:
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 JerseyClient 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<Client>
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 JerseyClient 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 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:
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.

property

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

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<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()
Get the hostname verifier.

Specified by:
getHostnameVerifier in interface Client
Returns:
the configured hostname verifier, or null if not set.

preInitialize

public JerseyClient preInitialize()
Pre initializes the configuration of this client 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 JerseyClient instance, otherwise configuration will change back to uninitialized.

Returns:
Jersey client.


Copyright © 2007-2014, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.