Class 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 of JAX-RS Client contract.
    • Field Detail

      • LOG

        private static final java.util.logging.Logger LOG
      • closedFlag

        private final java.util.concurrent.atomic.AtomicBoolean closedFlag
      • isDefaultSslContext

        private final boolean isDefaultSslContext
      • 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
      • 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. Non null 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 interface javax.ws.rs.client.Client
      • release

        private void release()
      • 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 current JerseyClient instance is closed, otherwise false.
        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 used SSLContext.
        Returns:
        true when used SSLContext is acquired from SslConfigurator.getDefaultContext(), false otherwise.
      • target

        public JerseyWebTarget target​(java.lang.String uri)
        Specified by:
        target in interface javax.ws.rs.client.Client
      • target

        public JerseyWebTarget target​(java.net.URI uri)
        Specified by:
        target in interface javax.ws.rs.client.Client
      • target

        public JerseyWebTarget target​(javax.ws.rs.core.UriBuilder uriBuilder)
        Specified by:
        target in interface javax.ws.rs.client.Client
      • target

        public JerseyWebTarget target​(javax.ws.rs.core.Link link)
        Specified by:
        target in interface javax.ws.rs.client.Client
      • invocation

        public JerseyInvocation.Builder invocation​(javax.ws.rs.core.Link link)
        Specified by:
        invocation in interface javax.ws.rs.client.Client
      • register

        public JerseyClient register​(java.lang.Class<?> providerClass)
        Specified by:
        register in interface javax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
      • register

        public JerseyClient register​(java.lang.Object provider)
        Specified by:
        register in interface javax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
      • register

        public JerseyClient register​(java.lang.Class<?> providerClass,
                                     int bindingPriority)
        Specified by:
        register in interface javax.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 interface javax.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 interface javax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
      • register

        public JerseyClient register​(java.lang.Object provider,
                                     int bindingPriority)
        Specified by:
        register in interface javax.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 interface javax.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 interface javax.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 interface javax.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 interface javax.ws.rs.core.Configurable<javax.ws.rs.client.Client>
        Specified by:
        getConfiguration in interface Initializable<JerseyClient>
        Returns:
        configuration live view of the internal configuration state.
      • getSslContext

        public javax.net.ssl.SSLContext getSslContext()
        Specified by:
        getSslContext in interface javax.ws.rs.client.Client
      • getHostnameVerifier

        public javax.net.ssl.HostnameVerifier getHostnameVerifier()
        Specified by:
        getHostnameVerifier in interface javax.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 runtime configuration 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 interface Initializable<JerseyClient>
        Returns:
        pre-initialized Jersey client component.