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
    Modifier and Type | Method and Description
    --- | ---
    `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()`