public class ServletScopes extends Object
Modifier and Type | Field and Description |
---|---|
static Scope |
REQUEST
HTTP servlet request scope.
|
static Scope |
SESSION
HTTP session scope.
|
Modifier and Type | Method and Description |
---|---|
static <T> Callable<T> |
continueRequest(Callable<T> callable,
Map<Key<?>,Object> seedMap)
Wraps the given callable in a contextual callable that "continues" the
HTTP request in another thread.
|
static boolean |
isRequestScoped(Binding<?> binding)
Returns true if
binding is request-scoped. |
static <T> Callable<T> |
scopeRequest(Callable<T> callable,
Map<Key<?>,Object> seedMap)
Scopes the given callable inside a request scope.
|
static <T> Callable<T> |
transferRequest(Callable<T> callable)
Wraps the given callable in a contextual callable that "transfers" the
request to another thread.
|
public static final Scope REQUEST
public static final Scope SESSION
public static <T> Callable<T> continueRequest(Callable<T> callable, Map<Key<?>,Object> seedMap)
There are some limitations:
callable
- code to be executed in another thread, which depends on
the request scope.seedMap
- the initial set of scoped instances for Guice to seed the
request scope with. To seed a key with null, use null
as
the value.OutOfScopeException
- if this method is called from a non-request
thread, or if the request has completed.public static <T> Callable<T> transferRequest(Callable<T> callable)
As opposed to continueRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)
, this method propagates all
existing scoped objects. The primary use case is in server implementations
where you can detach the request processing thread while waiting for data,
and reattach to a different thread to finish processing at a later time.
Because HttpServletRequest
objects are not typically
thread-safe, the callable returned by this method must not be run on a
different thread until the current request scope has terminated. In other
words, do not use this method to propagate the current request scope to
worker threads that may run concurrently with the current thread.
callable
- code to be executed in another thread, which depends on
the request scope.OutOfScopeException
- if this method is called from a non-request
thread, or if the request has completed.public static boolean isRequestScoped(Binding<?> binding)
binding
is request-scoped. If the binding is a
linked key binding
and
belongs to an injector (i. e. it was retrieved via
Injector.getBinding()
), then this method will
also return true if the target binding is request-scoped.public static <T> Callable<T> scopeRequest(Callable<T> callable, Map<Key<?>,Object> seedMap)
callable
- code to be executed which depends on the request scope.
Typically in another thread, but not necessarily so.seedMap
- the initial set of scoped instances for Guice to seed the
request scope with. To seed a key with null, use null
as
the value.seedMap
as scoped keys.Copyright © 2006-2013 Google, Inc.. All Rights Reserved.