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 Object
implements javax.ws.rs.client.Client, Initializable<JerseyClient>
Jersey implementation of
JAX-RS Client
contract.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static interface
Client instance shutdown hook. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicBoolean
private final ClientConfig
private static final DefaultSslContextProvider
private final ExecutorService
private final HostnameVerifier
private final boolean
private static final Logger
private final ScheduledExecutorService
private final ReferenceQueue
<JerseyClient.ShutdownHook> private final LinkedBlockingDeque
<WeakReference<JerseyClient.ShutdownHook>> private final UnsafeValue
<SSLContext, IllegalStateException> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Create a new Jersey client instance using a default configuration.protected
JerseyClient
(javax.ws.rs.core.Configuration config, SSLContext sslContext, HostnameVerifier verifier) Create a new Jersey client instance.protected
JerseyClient
(javax.ws.rs.core.Configuration config, SSLContext sslContext, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider) Create a new Jersey client instance.protected
JerseyClient
(javax.ws.rs.core.Configuration config, SSLContext sslContext, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, ExecutorService executorService, ScheduledExecutorService scheduledExecutorService) Create a new Jersey client instance.protected
JerseyClient
(javax.ws.rs.core.Configuration config, UnsafeValue<SSLContext, IllegalStateException> sslContextProvider, HostnameVerifier verifier) Create a new Jersey client instance.protected
JerseyClient
(javax.ws.rs.core.Configuration config, UnsafeValue<SSLContext, IllegalStateException> sslContextProvider, HostnameVerifier verifier, ExecutorService executorService, ScheduledExecutorService scheduledExecutorService) Create a new Jersey client instance.protected
JerseyClient
(javax.ws.rs.core.Configuration config, UnsafeValue<SSLContext, IllegalStateException> sslContextProvider, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider) Create a new Jersey client instance.protected
JerseyClient
(javax.ws.rs.core.Configuration config, UnsafeValue<SSLContext, IllegalStateException> sslContextProvider, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, ExecutorService executorService, ScheduledExecutorService scheduledExecutorService) -
Method Summary
Modifier and TypeMethodDescription(package private) void
Check that the client instance has not been closed.private void
Clean up shutdown hooks that have been garbage collected.void
close()
private UnsafeValue
<SSLContext, IllegalStateException> Get a live view of an internal client configuration state of this initializable instance.private ScheduledExecutorService
invocation
(javax.ws.rs.core.Link link) boolean
isClosed()
Check client state.boolean
Get information about usedSSLContext
.Pre-initializes the runtime and runtimeconfiguration
of this component in order to improve performance during the first request.(package private) void
registerShutdownHook
(JerseyClient.ShutdownHook shutdownHook) Register a new client shutdown hook.private void
release()
target
(javax.ws.rs.core.Link link) target
(javax.ws.rs.core.UriBuilder uriBuilder)
-
Field Details
-
LOG
-
DEFAULT_SSL_CONTEXT_PROVIDER
-
closedFlag
-
isDefaultSslContext
private final boolean isDefaultSslContext -
config
-
hostnameVerifier
-
sslContext
-
shutdownHooks
-
shReferenceQueue
-
executorService
-
scheduledExecutorService
-
-
Constructor Details
-
JerseyClient
protected JerseyClient()Create a new Jersey client instance using a default configuration. -
JerseyClient
protected JerseyClient(javax.ws.rs.core.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(javax.ws.rs.core.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(javax.ws.rs.core.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.
-
JerseyClient
protected JerseyClient(javax.ws.rs.core.Configuration config, SSLContext sslContext, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, ExecutorService executorService, 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<SSLContext, IllegalStateException> sslContextProvider, HostnameVerifier verifier, ExecutorService executorService, 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<SSLContext, IllegalStateException> sslContextProvider, 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<SSLContext, IllegalStateException> sslContextProvider, HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider, ExecutorService executorService, ScheduledExecutorService scheduledExecutorService)
-
-
Method Details
-
close
public void close()- Specified by:
close
in interfacejavax.ws.rs.client.Client
-
release
private void release() -
createLazySslContext
private UnsafeValue<SSLContext,IllegalStateException> createLazySslContext(DefaultSslContextProvider provider) -
registerShutdownHook
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
-
isClosed
public boolean isClosed()Check client state.- Returns:
true
if currentJerseyClient
instance is closed, otherwisefalse
.- See Also:
-
checkNotClosed
void checkNotClosed()Check that the client instance has not been closed.- Throws:
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
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
target
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
target
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
target
- Specified by:
target
in interfacejavax.ws.rs.client.Client
-
invocation
- Specified by:
invocation
in interfacejavax.ws.rs.client.Client
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
- Specified by:
register
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
property
- Specified by:
property
in interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
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
- Specified by:
getSslContext
in interfacejavax.ws.rs.client.Client
-
getHostnameVerifier
- Specified by:
getHostnameVerifier
in interfacejavax.ws.rs.client.Client
-
getExecutorService
-
getScheduledExecutorService
-
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.
-