Package org.glassfish.jersey.client
Class ClientRuntime
java.lang.Object
org.glassfish.jersey.client.ClientRuntime
- All Implemented Interfaces:
ClientExecutor
,JerseyClient.ShutdownHook
Client-side request processing runtime.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final LazyValue
<ExecutorService> private final LazyValue
<ScheduledExecutorService> private final AtomicBoolean
private final ClientConfig
private final Connector
private final InjectionManager
private final Iterable
<ClientLifecycleListener> private static final Logger
private final ManagedObjectsFinalizer
private final Stage
<ClientRequest> private final RequestScope
private final Stage
<ClientResponse> -
Constructor Summary
ConstructorsConstructorDescriptionClientRuntime
(ClientConfig config, Connector connector, InjectionManager injectionManager, BootstrapBag bootstrapBag) Create new client request processing runtime. -
Method Summary
Modifier and TypeMethodDescriptionprivate ClientRequest
addUserAgent
(ClientRequest clientRequest, String connectorName) private void
close()
(package private) Runnable
createRunnableForAsyncProcessing
(ClientRequest request, ResponseCallback callback) Prepare aRunnable
to be used to submit aclient request
for asynchronous processing.protected void
finalize()
This will be used as the last resort to clean things up in the case that this instance gets garbage collected before the client itself gets released.Get runtime configuration.Runtime connector.(package private) InjectionManager
Get injection manager.Get the request scope instance configured for the runtime.invoke
(ClientRequest request) Invoke a request processing synchronously in the context of the caller's thread.void
Invoked when the client instance is closed.void
Pre-initialize the client runtime.private void
processFailure
(Throwable failure, ResponseCallback callback) private void
processResponse
(ClientResponse response, ResponseCallback callback) Creates and executes a one-shot action that becomes enabled after the given delay.<T> ScheduledFuture
<T> Creates and executes aScheduledFuture
that becomes enabled after the given delay.Future
<?> <T> Future
<T> <T> Future
<T> Submits a value-returning task for execution and returns aFuture
representing the pending results of the task.private Future
<?> submit
(ExecutorService executor, Runnable task)
-
Field Details
-
LOG
-
requestProcessingRoot
-
responseProcessingRoot
-
connector
-
config
-
requestScope
-
asyncRequestExecutor
-
backgroundScheduler
-
lifecycleListeners
-
closed
-
managedObjectsFinalizer
-
injectionManager
-
-
Constructor Details
-
ClientRuntime
public ClientRuntime(ClientConfig config, Connector connector, InjectionManager injectionManager, BootstrapBag bootstrapBag) Create new client request processing runtime.- Parameters:
config
- client runtime configuration.connector
- client transport connector.injectionManager
- injection manager.
-
-
Method Details
-
createRunnableForAsyncProcessing
Prepare aRunnable
to be used to submit aclient request
for asynchronous processing.- Parameters:
request
- client request to be sent.callback
- asynchronous response callback.- Returns:
Runnable
to be submitted for async processing usingsubmit(Runnable)
.
-
submit
Description copied from interface:ClientExecutor
Submits a value-returning task for execution and returns aFuture
representing the pending results of the task. The Future'sget()
method will return the task's result upon successful completion.- Specified by:
submit
in interfaceClientExecutor
- Type Parameters:
T
- task's return type- Parameters:
task
- task to submit- Returns:
- a
Future
representing pending completion of the task
-
submit
Description copied from interface:ClientExecutor
Submits aRunnable
task for execution and returns aFuture
representing that task. The Future'sget()
method will return the given result upon successful completion.- Specified by:
submit
in interfaceClientExecutor
- Parameters:
task
- the task to submit- Returns:
- a
Future
representing pending completion of the task
-
submit
Description copied from interface:ClientExecutor
Submits aRunnable
task for execution and returns aFuture
representing that task. The Future'sget()
method will return the given result upon successful completion.- Specified by:
submit
in interfaceClientExecutor
- Type Parameters:
T
- result type- Parameters:
task
- the task to submitresult
- the result to return- Returns:
- a
Future
representing pending completion of the task
-
schedule
Description copied from interface:ClientExecutor
Creates and executes aScheduledFuture
that becomes enabled after the given delay.- Specified by:
schedule
in interfaceClientExecutor
- Type Parameters:
T
- return type of the function- Parameters:
callable
- the function to executedelay
- the time from now to delay executionunit
- the time unit of the delay parameter- Returns:
- a
ScheduledFuture
that can be used to extract result or cancel
-
schedule
Description copied from interface:ClientExecutor
Creates and executes a one-shot action that becomes enabled after the given delay.- Specified by:
schedule
in interfaceClientExecutor
- Parameters:
command
- the task to executedelay
- the time from now to delay executionunit
- the time unit of the daly parameter- Returns:
- a scheduledFuture representing pending completion of the task and whose
get()
method will returnnull
upon completion
-
processResponse
-
processFailure
-
submit
-
addUserAgent
-
invoke
Invoke a request processing synchronously in the context of the caller's thread.NOTE: the method does not explicitly start a new request scope context. Instead it is assumed that the method is invoked from within a context of a proper, running
request context
. A caller may use thegetRequestScope()
method to retrieve the request scope instance and use it to initialize the proper request scope context prior the method invocation.- Parameters:
request
- client request to be invoked.- Returns:
- client response.
- Throws:
javax.ws.rs.ProcessingException
- in case of an invocation failure.
-
getRequestScope
Get the request scope instance configured for the runtime.- Returns:
- request scope instance.
-
getConfig
Get runtime configuration.- Returns:
- runtime configuration.
-
finalize
This will be used as the last resort to clean things up in the case that this instance gets garbage collected before the client itself gets released.Close will be invoked either via finalizer or via JerseyClient onShutdown hook, whatever comes first.
-
onShutdown
public void onShutdown()Description copied from interface:JerseyClient.ShutdownHook
Invoked when the client instance is closed.- Specified by:
onShutdown
in interfaceJerseyClient.ShutdownHook
-
close
private void close() -
preInitialize
public void preInitialize()Pre-initialize the client runtime. -
getConnector
Runtime connector.- Returns:
- runtime connector.
-
getInjectionManager
InjectionManager getInjectionManager()Get injection manager.- Returns:
- injection manager.
-