public abstract class FacesContextUtils
extends java.lang.Object
WebApplicationContext
for a given JSF FacesContext
. This is useful for accessing a
Spring application context from custom JSF-based code.
Analogous to Spring's WebApplicationContextUtils for the ServletContext.
ContextLoader
,
WebApplicationContextUtils
Constructor and Description |
---|
FacesContextUtils() |
Modifier and Type | Method and Description |
---|---|
static WebApplicationContext |
getRequiredWebApplicationContext(FacesContext fc)
Find the root
WebApplicationContext for this web app, typically
loaded via ContextLoaderListener . |
static java.lang.Object |
getSessionMutex(FacesContext fc)
Return the best available mutex for the given session:
that is, an object to synchronize on for the given session.
|
static WebApplicationContext |
getWebApplicationContext(FacesContext fc)
Find the root
WebApplicationContext for this web app, typically
loaded via ContextLoaderListener . |
@Nullable public static WebApplicationContext getWebApplicationContext(FacesContext fc)
WebApplicationContext
for this web app, typically
loaded via ContextLoaderListener
.
Will rethrow an exception that happened on root context startup, to differentiate between a failed context startup and no context at all.
fc
- the FacesContext to find the web application context fornull
if noneWebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
public static WebApplicationContext getRequiredWebApplicationContext(FacesContext fc) throws java.lang.IllegalStateException
WebApplicationContext
for this web app, typically
loaded via ContextLoaderListener
.
Will rethrow an exception that happened on root context startup, to differentiate between a failed context startup and no context at all.
fc
- the FacesContext to find the web application context forjava.lang.IllegalStateException
- if the root WebApplicationContext could not be foundWebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
@Nullable public static java.lang.Object getSessionMutex(FacesContext fc)
Returns the session mutex attribute if available; usually,
this means that the HttpSessionMutexListener needs to be defined
in web.xml
. Falls back to the Session reference itself
if no mutex attribute found.
The session mutex is guaranteed to be the same object during
the entire lifetime of the session, available under the key defined
by the SESSION_MUTEX_ATTRIBUTE
constant. It serves as a
safe reference to synchronize on for locking on the current session.
In many cases, the Session reference itself is a safe mutex as well, since it will always be the same object reference for the same active logical session. However, this is not guaranteed across different servlet containers; the only 100% safe way is a session mutex.
fc
- the FacesContext to find the session mutex fornull
)WebUtils.SESSION_MUTEX_ATTRIBUTE
,
HttpSessionMutexListener