Class PortletApplicationContextLocator

java.lang.Object
org.jasig.portlet.newsreader.spring.PortletApplicationContextLocator
All Implemented Interfaces:
EventListener, javax.servlet.ServletContextListener

public class PortletApplicationContextLocator extends Object implements javax.servlet.ServletContextListener
Provides standard access to the portal's ApplicationContext. If running in a web application a WebApplicationContext is available. getApplicationContext(String) should be used by most uPortal code that needs access to the portal's ApplicationContext. It ensures that a single ApplicationContext is used portal-wide both when the portal is running as a web-application and when tools are run from the command line. For legacy portal code that is not yet Spring managed and does not have access to the ServletContext this class provides similar functionality to WebApplicationContextUtils via the getWebApplicationContext() and getRequiredWebApplicationContext(). These methods are deprecated as any code that requires a WebApplicationContext should either be refactored as a Spring managed bean or have access to the ServletContext
Since:
5.1.1
Author:
Eric Dalquist
  • Field Details

    • DATABASE_CONTEXT_LOCATION

      public static final String DATABASE_CONTEXT_LOCATION
      Subset of the main context; used in hbm2dll and importing
      See Also:
  • Constructor Details

    • PortletApplicationContextLocator

      public PortletApplicationContextLocator()
  • Method Details

    • contextInitialized

      public void contextInitialized(javax.servlet.ServletContextEvent sce)
      Specified by:
      contextInitialized in interface javax.servlet.ServletContextListener
    • contextDestroyed

      public void contextDestroyed(javax.servlet.ServletContextEvent sce)
      Specified by:
      contextDestroyed in interface javax.servlet.ServletContextListener
    • isRunningInWebApplication

      @Deprecated public static boolean isRunningInWebApplication()
      Deprecated.

      isRunningInWebApplication.

      Returns:
      true if a WebApplicationContext is available, false if only an ApplicationContext is available
    • getRequiredWebApplicationContext

      @Deprecated public static org.springframework.web.context.WebApplicationContext getRequiredWebApplicationContext()
      Deprecated.
      This method is a work-around for areas in uPortal that do not have the ability to use the WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext) directly.

      getRequiredWebApplicationContext.

      Returns:
      The WebApplicationContext for the portal
      Throws:
      IllegalStateException - if no ServletContext is available to retrieve a WebApplicationContext for or if the root WebApplicationContext could not be found
    • getWebApplicationContext

      @Deprecated public static org.springframework.web.context.WebApplicationContext getWebApplicationContext()
      Deprecated.
      This method is a work-around for areas in uPortal that do not have the ability to use the WebApplicationContextUtils.getWebApplicationContext(ServletContext) directly.

      getWebApplicationContext.

      Returns:
      The WebApplicationContext for the portal, null if no ServletContext is available
    • getApplicationContext

      public static org.springframework.context.ApplicationContext getApplicationContext(String importExportContextFile)
      If running in a web application the existing WebApplicationContext will be returned. if not a singleton ApplicationContext is created if needed and returned. Unless a WebApplicationContext is specifically needed this method should be used as it will work both when running in and out of a web application
      Parameters:
      importExportContextFile - a String object
      Returns:
      The ApplicationContext for the portal.
    • shutdown

      public static void shutdown()
      If the ApplicationContext returned by getApplicationContext(String) is 'portal managed' the shutdown hook for the context is called, closing and cleaning up all spring managed resources. If the ApplicationContext returned by getApplicationContext(String) is actually a WebApplicationContext this method does nothing but log an error message.