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 Clientcontract.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interfaceJerseyClient.ShutdownHookClient instance shutdown hook.
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicBooleanclosedFlagprivate ClientConfigconfigprivate static DefaultSslContextProviderDEFAULT_SSL_CONTEXT_PROVIDERprivate java.util.concurrent.ExecutorServiceexecutorServiceprivate javax.net.ssl.HostnameVerifierhostnameVerifierprivate booleanisDefaultSslContextprivate static java.util.logging.LoggerLOGprivate java.util.concurrent.ScheduledExecutorServicescheduledExecutorServiceprivate java.lang.ref.ReferenceQueue<JerseyClient.ShutdownHook>shReferenceQueueprivate java.util.concurrent.LinkedBlockingDeque<java.lang.ref.WeakReference<JerseyClient.ShutdownHook>>shutdownHooksprivate UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException>sslContext
-
Constructor Summary
Constructors Modifier Constructor Description protectedJerseyClient()Create a new Jersey client instance using a default configuration.protectedJerseyClient(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.HostnameVerifier verifier)Create a new Jersey client instance.protectedJerseyClient(javax.ws.rs.core.Configuration config, javax.net.ssl.SSLContext sslContext, javax.net.ssl.HostnameVerifier verifier, DefaultSslContextProvider defaultSslContextProvider)Create a new Jersey client instance.protectedJerseyClient(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.protectedJerseyClient(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.protectedJerseyClient(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.protectedJerseyClient(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.protectedJerseyClient(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) voidcheckNotClosed()Check that the client instance has not been closed.private voidcleanUpShutdownHooks()Clean up shutdown hooks that have been garbage collected.voidclose()private UnsafeValue<javax.net.ssl.SSLContext,java.lang.IllegalStateException>createLazySslContext(DefaultSslContextProvider provider)ClientConfiggetConfiguration()Get a live view of an internal client configuration state of this initializable instance.private java.util.concurrent.ScheduledExecutorServicegetDefaultScheduledExecutorService()java.util.concurrent.ExecutorServicegetExecutorService()javax.net.ssl.HostnameVerifiergetHostnameVerifier()java.util.concurrent.ScheduledExecutorServicegetScheduledExecutorService()javax.net.ssl.SSLContextgetSslContext()JerseyInvocation.Builderinvocation(javax.ws.rs.core.Link 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(java.lang.String name, java.lang.Object value)JerseyClientregister(java.lang.Class<?> providerClass)JerseyClientregister(java.lang.Class<?> providerClass, int bindingPriority)JerseyClientregister(java.lang.Class<?> providerClass, java.lang.Class<?>... contracts)JerseyClientregister(java.lang.Class<?> providerClass, java.util.Map<java.lang.Class<?>,java.lang.Integer> contracts)JerseyClientregister(java.lang.Object provider)JerseyClientregister(java.lang.Object provider, int bindingPriority)JerseyClientregister(java.lang.Object provider, java.lang.Class<?>... contracts)JerseyClientregister(java.lang.Object provider, java.util.Map<java.lang.Class<?>,java.lang.Integer> contracts)(package private) voidregisterShutdownHook(JerseyClient.ShutdownHook shutdownHook)Register a new client shutdown hook.private voidrelease()JerseyWebTargettarget(java.lang.String uri)JerseyWebTargettarget(java.net.URI uri)JerseyWebTargettarget(javax.ws.rs.core.Link link)JerseyWebTargettarget(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. Nonnullprovider 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:
closein 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:
trueif currentJerseyClientinstance 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:
truewhen usedSSLContextis acquired fromSslConfigurator.getDefaultContext(),falseotherwise.
-
target
public JerseyWebTarget target(java.lang.String uri)
- Specified by:
targetin interfacejavax.ws.rs.client.Client
-
target
public JerseyWebTarget target(java.net.URI uri)
- Specified by:
targetin interfacejavax.ws.rs.client.Client
-
target
public JerseyWebTarget target(javax.ws.rs.core.UriBuilder uriBuilder)
- Specified by:
targetin interfacejavax.ws.rs.client.Client
-
target
public JerseyWebTarget target(javax.ws.rs.core.Link link)
- Specified by:
targetin interfacejavax.ws.rs.client.Client
-
invocation
public JerseyInvocation.Builder invocation(javax.ws.rs.core.Link link)
- Specified by:
invocationin interfacejavax.ws.rs.client.Client
-
register
public JerseyClient register(java.lang.Class<?> providerClass)
- Specified by:
registerin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Object provider)
- Specified by:
registerin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Class<?> providerClass, int bindingPriority)
- Specified by:
registerin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Class<?> providerClass, java.lang.Class<?>... contracts)
- Specified by:
registerin 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:
registerin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Object provider, int bindingPriority)
- Specified by:
registerin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
register
public JerseyClient register(java.lang.Object provider, java.lang.Class<?>... contracts)
- Specified by:
registerin 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:
registerin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
property
public JerseyClient property(java.lang.String name, java.lang.Object value)
- Specified by:
propertyin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
-
getConfiguration
public ClientConfig getConfiguration()
Description copied from interface:InitializableGet a live view of an internal client configuration state of this initializable instance.- Specified by:
getConfigurationin interfacejavax.ws.rs.core.Configurable<javax.ws.rs.client.Client>- Specified by:
getConfigurationin interfaceInitializable<JerseyClient>- Returns:
- configuration live view of the internal configuration state.
-
getSslContext
public javax.net.ssl.SSLContext getSslContext()
- Specified by:
getSslContextin interfacejavax.ws.rs.client.Client
-
getHostnameVerifier
public javax.net.ssl.HostnameVerifier getHostnameVerifier()
- Specified by:
getHostnameVerifierin 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: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.
-
-