Class JerseyClient
- java.lang.Object
-
- org.glassfish.jersey.client.JerseyClient
-
- All Implemented Interfaces:
Client,Configurable<Client>,AutoCloseable,Initializable<JerseyClient>
public class JerseyClient extends Object implements Client, Initializable<JerseyClient>
Jersey implementation ofJAX-RS Clientcontract.- Author:
- Marek Potociar
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedJerseyClient()Create a new Jersey client instance using a default configuration.protectedJerseyClient(Configuration config, SSLContext sslContext, HostnameVerifier verifier)Create a new Jersey client instance.protectedJerseyClient(Configuration config, SSLContext sslContext, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)Create a new Jersey client instance.protectedJerseyClient(Configuration config, org.glassfish.jersey.internal.util.collection.UnsafeValue<SSLContext,IllegalStateException> sslContextProvider, HostnameVerifier verifier)Create a new Jersey client instance.protectedJerseyClient(Configuration config, org.glassfish.jersey.internal.util.collection.UnsafeValue<SSLContext,IllegalStateException> sslContextProvider, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)Create a new Jersey client instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close client instance and all it's associated resources.ClientConfiggetConfiguration()Get a live view of an internal configuration state of this configurable instance.ExecutorServicegetExecutorService()HostnameVerifiergetHostnameVerifier()Get the hostname verifier configured in the client ornullin case no hostname verifier has been configured.ScheduledExecutorServicegetScheduledExecutorService()SSLContextgetSslContext()Get the SSL context configured to be used with the current client run-time.JerseyInvocation.Builderinvocation(Link link)Build an invocation builder from a link.booleanisClosed()Check client state.booleanisDefaultSslContext()Get information about usedSSLContext.JerseyClientpreInitialize()Pre-initializes the runtime and runtimeconfigurationof this component in order to improve performance during the first request.JerseyClientproperty(String name, Object value)Set the new configuration property, if already set, the existing value of the property will be updated.JerseyClientregister(Class<?> providerClass)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyClientregister(Class<?> providerClass, int bindingPriority)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyClientregister(Class<?> providerClass, Class<?>... contracts)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyClientregister(Class<?> providerClass, Map<Class<?>,Integer> contracts)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyClientregister(Object provider)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyClientregister(Object provider, int bindingPriority)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyClientregister(Object provider, Class<?>... contracts)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyClientregister(Object provider, Map<Class<?>,Integer> contracts)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargettarget(Link link)Build a new web resource target.JerseyWebTargettarget(UriBuilder uriBuilder)Build a new web resource target.JerseyWebTargettarget(String uri)Build a new web resource target.JerseyWebTargettarget(URI uri)Build a new web resource target.
-
-
-
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, SSLContext sslContext, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)
Create a new Jersey client instance.- Parameters:
config- jersey client configuration.sslContext- jersey client SSL context.verifier- jersey client host name verifier.defaultSslContextProvider- default SSL context provider.
-
JerseyClient
protected JerseyClient(Configuration config, org.glassfish.jersey.internal.util.collection.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.
-
JerseyClient
protected JerseyClient(Configuration config, org.glassfish.jersey.internal.util.collection.UnsafeValue<SSLContext,IllegalStateException> sslContextProvider, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)
Create a new Jersey client instance.- Parameters:
config- jersey client configuration.sslContextProvider- jersey client SSL context provider. Nonnullprovider is expected to return non-default value.verifier- jersey client host name verifier.defaultSslContextProvider- default SSL context provider.
-
-
Method Detail
-
close
public void close()
Description copied from interface:ClientClose 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
Calling this method effectively invalidates allIllegalStateExceptionbeing thrown.resource targetsproduced by the client instance. Invoking any method on such targets once the client is closed would result in anIllegalStateExceptionbeing thrown.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceClient
-
isClosed
public boolean isClosed()
Check client state.- Returns:
trueif currentJerseyClientinstance is closed, otherwisefalse.- See Also:
close()
-
isDefaultSslContext
public boolean isDefaultSslContext()
Get information about usedSSLContext.- Returns:
truewhen usedSSLContextis acquired fromSslConfigurator.getDefaultContext(),falseotherwise.
-
target
public JerseyWebTarget target(String uri)
Description copied from interface:ClientBuild a new web resource target.
-
target
public JerseyWebTarget target(URI uri)
Description copied from interface:ClientBuild a new web resource target.
-
target
public JerseyWebTarget target(UriBuilder uriBuilder)
Description copied from interface:ClientBuild a new web resource target.
-
target
public JerseyWebTarget target(Link link)
Description copied from interface:ClientBuild a new web resource target.
-
invocation
public JerseyInvocation.Builder invocation(Link link)
Description copied from interface:ClientBuild 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:
invocationin interfaceClient- Parameters:
link- link to build invocation from. Must not benull.- Returns:
- newly created invocation builder.
-
register
public JerseyClient register(Class<?> providerClass)
Description copied from interface:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-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 asFeatureorDynamicFeature.As opposed to component instances registered via
Configurable.register(Object)method, the lifecycle of components registered using this class-basedregister(...)method is fully managed by the JAX-RS implementation or any underlying IoC container supported by the implementation.- Specified by:
registerin interfaceConfigurable<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:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-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 asFeatureorDynamicFeature.As opposed to components registered via
Configurable.register(Class)method, the lifecycle of providers registered using this instance-basedregister(...)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 (seeContext) by the JAX-RS runtime prior to use.- Specified by:
registerin interfaceConfigurable<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:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-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 viajakarta.annotation.Priorityannotation is overridden with the suppliedpriorityvalue.Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied
priorityvalue will be ignored for that contract.- Specified by:
registerin interfaceConfigurable<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:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-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-providercontracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are notassignable fromthe registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).- Specified by:
registerin interfaceConfigurable<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 ornullcollection 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:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-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 viajakarta.annotation.Priorityannotation 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:
registerin interfaceConfigurable<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 notassignable fromthe 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:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-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 viajakarta.annotation.Priorityannotation is overridden with the suppliedpriorityvalue.Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied
priorityvalue will be ignored for that contract.- Specified by:
registerin interfaceConfigurable<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:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-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-providercontracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are notassignable fromthe registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).- Specified by:
registerin interfaceConfigurable<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 ornullcollection 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:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-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 viajakarta.annotation.Priorityannotation 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:
registerin interfaceConfigurable<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 notassignable fromthe 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:ConfigurableSet the new configuration property, if already set, the existing value of the property will be updated. Setting anullvalue into a property effectively removes the property from the property bag.- Specified by:
propertyin interfaceConfigurable<Client>- Parameters:
name- property name.value- (new) property value.nullvalue removes the property with the given name.- Returns:
- the updated configurable instance.
-
getConfiguration
public ClientConfig getConfiguration()
Description copied from interface:ConfigurableGet a live view of an internal configuration state of this configurable instance. Any changes made using methods of thisConfigurableinstance will be reflected in the returnedConfigurationinstance.The returned
Configurationinstance and the collection data it provides are not thread-safe wrt. modification made using methods on the parent configurable object.- Specified by:
getConfigurationin interfaceConfigurable<Client>- Specified by:
getConfigurationin interfaceInitializable<JerseyClient>- Returns:
- configuration live view of the internal configuration state.
-
getSslContext
public SSLContext getSslContext()
Description copied from interface:ClientGet the SSL context configured to be used with the current client run-time.- Specified by:
getSslContextin interfaceClient- Returns:
- SSL context configured to be used with the current client run-time.
-
getHostnameVerifier
public HostnameVerifier getHostnameVerifier()
Description copied from interface:ClientGet the hostname verifier configured in the client ornullin case no hostname verifier has been configured.- Specified by:
getHostnameVerifierin interfaceClient- Returns:
- client hostname verifier or
nullif not set.
-
getExecutorService
public ExecutorService getExecutorService()
-
getScheduledExecutorService
public ScheduledExecutorService getScheduledExecutorService()
-
preInitialize
public JerseyClient preInitialize()
Description copied from interface:InitializablePre-initializes the runtime and runtimeconfigurationof this component in order to improve performance during the first request.Once this method is called no other method implementing
Configurableshould be called on this pre initialized component, otherwise the initialized client runtime will be discarded and the configuration will change back to uninitialized.- Specified by:
preInitializein interfaceInitializable<JerseyClient>- Returns:
- pre-initialized Jersey client component.
-
-