org.springframework.web.portlet.context

## Class PortletApplicationContextUtils

- java.lang.Object
- - org.springframework.web.portlet.context.PortletApplicationContextUtils

    public abstract class PortletApplicationContextUtils
    extends Object

Convenience methods for retrieving the root WebApplicationContext for a given PortletContext. This is e.g. useful for accessing a Spring context from within custom Portlet implementations.

Since:
  2.0
Author:
  Juergen Hoeller, John A. Lewis
See Also:
  `ContextLoader`, `WebApplicationContextUtils`, `FrameworkPortlet`, `DispatcherPortlet`

### Constructor Summary

Constructors
Constructor and Description
`PortletApplicationContextUtils()`

### Method Summary

Methods
`static ApplicationContext` `getRequiredWebApplicationContext(PortletContext pc)` Find the root WebApplicationContext for this portlet application, which is typically loaded via ContextLoaderListener or ContextLoaderServlet.
`static ApplicationContext` `getWebApplicationContext(PortletContext pc)` Find the root WebApplicationContext for this portlet application, which is typically loaded via ContextLoaderListener or ContextLoaderServlet.
`static void` `initPortletPropertySources(MutablePropertySources propertySources, ServletContext servletContext, PortletContext portletContext, PortletConfig portletConfig)` Replace `Servlet`- and `Portlet`-based `stub property sources` with actual instances populated with the given `servletContext`, `portletContext` and `portletConfig` objects.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PortletApplicationContextUtils

    public PortletApplicationContextUtils()

### Method Detail

#### getWebApplicationContext

    public static ApplicationContext getWebApplicationContext(PortletContext pc)

Find the root WebApplicationContext for this portlet application, which is typically loaded via ContextLoaderListener or ContextLoaderServlet.

Will rethrow an exception that happened on root context startup, to differentiate between a failed context startup and no context at all.

Parameters:
  `pc` - PortletContext to find the web application context for
Returns:
  the root WebApplicationContext for this web app, or `null` if none (typed to ApplicationContext to avoid a Servlet API dependency; can usually be casted to WebApplicationContext, but there shouldn't be a need to)
See Also:
  `WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE`

#### getRequiredWebApplicationContext

    public static ApplicationContext getRequiredWebApplicationContext(PortletContext pc)
                                                               throws IllegalStateException

Find the root WebApplicationContext for this portlet application, which is typically loaded via ContextLoaderListener or ContextLoaderServlet.

Will rethrow an exception that happened on root context startup, to differentiate between a failed context startup and no context at all.

Parameters:
  `pc` - PortletContext to find the web application context for
Returns:
  the root WebApplicationContext for this web app (typed to ApplicationContext to avoid a Servlet API dependency; can usually be casted to WebApplicationContext, but there shouldn't be a need to)
Throws:
  `IllegalStateException` - if the root WebApplicationContext could not be found
See Also:
  `WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE`

#### initPortletPropertySources

    public static void initPortletPropertySources(MutablePropertySources propertySources,
                                  ServletContext servletContext,
                                  PortletContext portletContext,
                                  PortletConfig portletConfig)

Replace `Servlet`- and `Portlet`-based `stub property sources` with actual instances populated with the given `servletContext`, `portletContext` and `portletConfig` objects.

This method is idempotent with respect to the fact it may be called any number of times but will perform replacement of stub property sources with their corresponding actual property sources once and only once.

Parameters:
  `propertySources` - the `MutablePropertySources` to initialize (must not be `null`)
  `servletContext` - the current `ServletContext` (ignored if `null` or if the `servlet context property source` has already been initialized)
  `portletContext` - the current `PortletContext` (ignored if `null` or if the `portlet context property source` has already been initialized)
  `portletConfig` - the current `PortletConfig` (ignored if `null` or if the `portlet config property source` has already been initialized)
See Also:
  `PropertySource.StubPropertySource`, `WebApplicationContextUtils.initServletPropertySources(MutablePropertySources, ServletContext)`, `ConfigurableEnvironment.getPropertySources()`