Package org.glassfish.jersey.client
Class JerseyClient
- java.lang.Object
-
- org.glassfish.jersey.client.JerseyClient
-
- All Implemented Interfaces:
javax.ws.rs.client.Client
,javax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
,Initializable<JerseyClient>
public class JerseyClient extends java.lang.Object implements javax.ws.rs.client.Client, Initializable<JerseyClient>
Jersey implementation ofJAX-RS Client
contract.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
JerseyClient.ShutdownHook
Client instance shutdown hook.
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicBoolean
closedFlag
private ClientConfig
config
private static DefaultSslContextProvider
DEFAULT_SSL_CONTEXT_PROVIDER
private java.util.concurrent.ExecutorService
executorService
private javax.net.ssl.HostnameVerifier
hostnameVerifier
private boolean
isDefaultSslContext
private static java.util.logging.Logger
LOG
private java.util.concurrent.ScheduledExecutorService
scheduledExecutorService
private java.lang.ref.ReferenceQueue<JerseyClient.ShutdownHook>
shReferenceQueue
private java.util.concurrent.LinkedBlockingDeque<java.lang.ref.WeakReference<JerseyClient.ShutdownHook>>
shutdownHooks
private UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException>
sslContext
-
Constructor Summary
Constructors Modifier Constructor Description protected
JerseyClient()
Create a new Jersey client instance using a default configuration.protected
JerseyClient(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.HostnameVerifier verifier)
Create a new Jersey client instance.protected
JerseyClient(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)
Create a new Jersey client instance.protected
JerseyClient(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, java.util.concurrent.ExecutorService executorService, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
Create a new Jersey client instance.protected
JerseyClient(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.HostnameVerifier verifier)
Create a new Jersey client instance.protected
JerseyClient(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.HostnameVerifier verifier, java.util.concurrent.ExecutorService executorService, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
Create a new Jersey client instance.protected
JerseyClient(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)
Create a new Jersey client instance.protected
JerseyClient(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, java.util.concurrent.ExecutorService executorService, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
checkNotClosed()
Check that the client instance has not been closed.private void
cleanUpShutdownHooks()
Clean up shutdown hooks that have been garbage collected.void
close()
private UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException>
createLazySslContext(DefaultSslContextProvider provider)
ClientConfig
getConfiguration()
Get a live view of an internal client configuration state of this initializable instance.private java.util.concurrent.ScheduledExecutorService
getDefaultScheduledExecutorService()
java.util.concurrent.ExecutorService
getExecutorService()
javax.net.ssl.HostnameVerifier
getHostnameVerifier()
java.util.concurrent.ScheduledExecutorService
getScheduledExecutorService()
javax.net.ssl.SSLContext
getSslContext()
JerseyInvocation.Builder
invocation(javax.ws.rs.core.Link link)
boolean
isClosed()
Check client state.boolean
isDefaultSslContext()
Get information about usedSSLContext
.JerseyClient
preInitialize()
Pre-initializes the runtime and runtimeconfiguration
of this component in order to improve performance during the first request.JerseyClient
property(java.lang.String name, java.lang.Object value)
JerseyClient
register(java.lang.Class<?> providerClass)
JerseyClient
register(java.lang.Class<?> providerClass, int bindingPriority)
JerseyClient
register(java.lang.Class<?> providerClass, java.lang.Class<?>... contracts)
JerseyClient
register(java.lang.Class<?> providerClass, java.util.Map<java.lang.Class<?>,java.lang.Integer> contracts)
JerseyClient
register(java.lang.Object provider)
JerseyClient
register(java.lang.Object provider, int bindingPriority)
JerseyClient
register(java.lang.Object provider, java.lang.Class<?>... contracts)
JerseyClient
register(java.lang.Object provider, java.util.Map<java.lang.Class<?>,java.lang.Integer> contracts)
(package private) void
registerShutdownHook(JerseyClient.ShutdownHook shutdownHook)
Register a new client shutdown hook.private void
release()
JerseyWebTarget
target(java.lang.String uri)
JerseyWebTarget
target(java.net.URI uri)
JerseyWebTarget
target(javax.ws.rs.core.Link link)
JerseyWebTarget
target(javax.ws.rs.core.UriBuilder uriBuilder)
-
-
-
Field Detail
-
LOG
private static final java.util.logging.Logger LOG
-
DEFAULT_SSL_CONTEXT_PROVIDER
private static final DefaultSslContextProvider DEFAULT_SSL_CONTEXT_PROVIDER
-
closedFlag
private final java.util.concurrent.atomic.AtomicBoolean closedFlag
-
isDefaultSslContext
private final boolean isDefaultSslContext
-
config
private final ClientConfig config
-
hostnameVerifier
private final javax.net.ssl.HostnameVerifier hostnameVerifier
-
sslContext
private final UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContext
-
shutdownHooks
private final java.util.concurrent.LinkedBlockingDeque<java.lang.ref.WeakReference<JerseyClient.ShutdownHook>> shutdownHooks
-
shReferenceQueue
private final java.lang.ref.ReferenceQueue<JerseyClient.ShutdownHook> shReferenceQueue
-
executorService
private final java.util.concurrent.ExecutorService executorService
-
scheduledExecutorService
private final java.util.concurrent.ScheduledExecutorService scheduledExecutorService
-
-
Constructor Detail
-
JerseyClient
protected JerseyClient()
Create a new Jersey client instance using a default configuration.
-
JerseyClient
protected JerseyClient(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.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(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.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(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.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(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, java.util.concurrent.ExecutorService executorService, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
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(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.HostnameVerifier verifier, java.util.concurrent.ExecutorService executorService, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
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(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)
Create a new Jersey client instance.- Parameters:
config
- jersey client configuration.sslContextProvider
- jersey client SSL context provider. Nonnull
provider is expected to return non-default value.verifier
- jersey client host name verifier.defaultSslContextProvider
- default SSL context provider.
-
JerseyClient
protected JerseyClient(javax.ws.rs.core.Configuration config, UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> sslContextProvider, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, java.util.concurrent.ExecutorService executorService, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
-
-
Method Detail
-
close
public void close()
- Specified by:
close
in interfacejavax.ws.rs.client.Client
-
release
private void release()
-
createLazySslContext
private UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException> createLazySslContext(DefaultSslContextProvider provider)
-
registerShutdownHook
void registerShutdownHook(JerseyClient.ShutdownHook shutdownHook)
Register a new client shutdown hook.- Parameters:
shutdownHook
- client shutdown hook.
-
cleanUpShutdownHooks
private void cleanUpShutdownHooks()
Clean up shutdown hooks that have been garbage collected.
-
getDefaultScheduledExecutorService
private java.util.concurrent.ScheduledExecutorService getDefaultScheduledExecutorService()
-
isClosed
public boolean isClosed()
Check client state.- Returns:
true
if currentJerseyClient
instance is closed, otherwisefalse
.- See Also:
close()
-
checkNotClosed
void checkNotClosed()
Check that the client instance has not been closed.- Throws:
java.lang.IllegalStateException
- in case the client instance has been closed already.
-
isDefaultSslContext
public boolean isDefaultSslContext()
Get information about usedSSLContext
.- Returns:
true
when usedSSLContext
is acquired fromSslConfigurator.getDefaultContext()
,false
otherwise.
-
target
public JerseyWebTarget target(java.lang.String uri)
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
target
public JerseyWebTarget target(java.net.URI uri)
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
target
public JerseyWebTarget target(javax.ws.rs.core.UriBuilder uriBuilder)
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
target
public JerseyWebTarget target(javax.ws.rs.core.Link link)
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
invocation
public JerseyInvocation.Builder invocation(javax.ws.rs.core.Link link)
- Specified by:
invocation
in interfacejavax.ws.rs.client.Client
-
register
public JerseyClient register(java.lang.Class<?> providerClass)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Object provider)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Class<?> providerClass, int bindingPriority)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Class<?> providerClass, java.lang.Class<?>... contracts)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Class<?> providerClass, java.util.Map<java.lang.Class<?>,java.lang.Integer> contracts)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Object provider, int bindingPriority)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Object provider, java.lang.Class<?>... contracts)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Object provider, java.util.Map<java.lang.Class<?>,java.lang.Integer> contracts)
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
property
public JerseyClient property(java.lang.String name, java.lang.Object value)
- Specified by:
property
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
getConfiguration
public ClientConfig getConfiguration()
Description copied from interface:Initializable
Get a live view of an internal client configuration state of this initializable instance.- Specified by:
getConfiguration
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
- Specified by:
getConfiguration
in interfaceInitializable<JerseyClient>
- Returns:
- configuration live view of the internal configuration state.
-
getSslContext
public javax.net.ssl.SSLContext getSslContext()
- Specified by:
getSslContext
in interfacejavax.ws.rs.client.Client
-
getHostnameVerifier
public javax.net.ssl.HostnameVerifier getHostnameVerifier()
- Specified by:
getHostnameVerifier
in interfacejavax.ws.rs.client.Client
-
getExecutorService
public java.util.concurrent.ExecutorService getExecutorService()
-
getScheduledExecutorService
public java.util.concurrent.ScheduledExecutorService getScheduledExecutorService()
-
preInitialize
public JerseyClient preInitialize()
Description copied from interface:Initializable
Pre-initializes the runtime and runtimeconfiguration
of this component 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 component, otherwise the initialized client runtime will be discarded and the configuration will change back to uninitialized.- Specified by:
preInitialize
in interfaceInitializable<JerseyClient>
- Returns:
- pre-initialized Jersey client component.
-
-