org.springframework.web.portlet.context

## Class StaticPortletApplicationContext

- java.lang.Object
- - org.springframework.core.io.DefaultResourceLoader
  - - org.springframework.context.support.AbstractApplicationContext
    - - org.springframework.context.support.GenericApplicationContext
      - - org.springframework.context.support.StaticApplicationContext
        - - org.springframework.web.portlet.context.StaticPortletApplicationContext

- All Implemented Interfaces:
    Closeable, AutoCloseable, BeanFactory, DisposableBean, HierarchicalBeanFactory, ListableBeanFactory, BeanDefinitionRegistry, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, AliasRegistry, EnvironmentCapable, ResourceLoader, ResourcePatternResolver, WebApplicationContext, ConfigurablePortletApplicationContext

      public class StaticPortletApplicationContext
      extends StaticApplicationContext
      implements ConfigurablePortletApplicationContext

  Static Portlet-based `ApplicationContext` implementation for testing. Not intended for use in production applications.

  Implements the `ConfigurablePortletApplicationContext` interface to allow for direct replacement of an `XmlPortletApplicationContext`, despite not actually supporting external configuration files.

  Interprets resource paths as portlet context resources, that is, as paths beneath the portlet application root. Absolute paths, for example for files outside the portlet app root, can be accessed via "file:" URLs, as implemented by `DefaultResourceLoader`.

  Since:
    2.0
  Author:
    Juergen Hoeller, Mark Fisher

- - ### Field Summary

    - ### Fields inherited from class org.springframework.context.support.AbstractApplicationContext

      `APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME`

    - ### Fields inherited from interface org.springframework.web.portlet.context.ConfigurablePortletApplicationContext

      `APPLICATION_CONTEXT_ID_PREFIX, PORTLET_CONFIG_BEAN_NAME, PORTLET_CONTEXT_BEAN_NAME`

    - ### Fields inherited from interface org.springframework.web.context.WebApplicationContext

      `CONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAME`

    - ### Fields inherited from interface org.springframework.context.ConfigurableApplicationContext

      `CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME`

    - ### Fields inherited from interface org.springframework.beans.factory.BeanFactory

      `FACTORY_BEAN_PREFIX`

    - ### Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver

      `CLASSPATH_ALL_URL_PREFIX`

    - ### Fields inherited from interface org.springframework.core.io.ResourceLoader

      `CLASSPATH_URL_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StaticPortletApplicationContext()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected ConfigurableEnvironment` | `createEnvironment()` Return a new `StandardPortletEnvironment`
    `String[]` | `getConfigLocations()` Return the config locations for this web application context, or `null` if none specified.
    `String` | `getNamespace()` Return the namespace for this web application context, if any.
    `PortletConfig` | `getPortletConfig()` Return the PortletConfig for this portlet application context, if any.
    `PortletContext` | `getPortletContext()` Return the standard Portlet API PortletContext for this application.
    `protected Resource` | `getResourceByPath(String path)` This implementation supports file paths beneath the root of the PortletContext.
    `protected ResourcePatternResolver` | `getResourcePatternResolver()` This implementation supports pattern matching in unexpanded WARs too.
    `ServletContext` | `getServletContext()` Return the standard Servlet API ServletContext for this application.
    `protected void` | `initPropertySources()` Replace any stub property sources with actual instances.
    `protected void` | `postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)` Register request/session scopes, a `PortletContextAwareProcessor`, etc.
    `void` | `setConfigLocation(String configLocation)` The `StaticPortletApplicationContext` class does not support this method.
    `void` | `setConfigLocations(String[] configLocations)` The `StaticPortletApplicationContext` class does not support this method.
    `void` | `setNamespace(String namespace)` Set the namespace for this portlet application context, to be used for building a default context config location.
    `void` | `setParent(ApplicationContext parent)` Set the parent of this application context, also setting the parent of the internal BeanFactory accordingly.
    `void` | `setPortletConfig(PortletConfig portletConfig)` Set the PortletConfig for this portlet application context.
    `void` | `setPortletContext(PortletContext portletContext)` Set the PortletContext for this portlet application context.

    - ### Methods inherited from class org.springframework.context.support.StaticApplicationContext

      `addMessage, getStaticMessageSource, registerPrototype, registerPrototype, registerSingleton, registerSingleton`

    - ### Methods inherited from class org.springframework.context.support.GenericApplicationContext

      `cancelRefresh, closeBeanFactory, getBeanDefinition, getBeanFactory, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setId, setResourceLoader`

    - ### Methods inherited from class org.springframework.context.support.AbstractApplicationContext

      `addApplicationListener, addBeanFactoryPostProcessor, addListener, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setEnvironment, start, stop, toString`

    - ### Methods inherited from class org.springframework.core.io.DefaultResourceLoader

      `getClassLoader, setClassLoader`

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

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

    - ### Methods inherited from interface org.springframework.context.ConfigurableApplicationContext

      `addApplicationListener, addBeanFactoryPostProcessor, close, getBeanFactory, getEnvironment, isActive, refresh, registerShutdownHook, setEnvironment, setId`

    - ### Methods inherited from interface org.springframework.context.ApplicationContext

      `getApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate`

    - ### Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory

      `containsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation`

    - ### Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory

      `containsLocalBean, getParentBeanFactory`

    - ### Methods inherited from interface org.springframework.beans.factory.BeanFactory

      `containsBean, getAliases, getBean, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch`

    - ### Methods inherited from interface org.springframework.context.MessageSource

      `getMessage, getMessage, getMessage`

    - ### Methods inherited from interface org.springframework.context.ApplicationEventPublisher

      `publishEvent`

    - ### Methods inherited from interface org.springframework.core.io.support.ResourcePatternResolver

      `getResources`

    - ### Methods inherited from interface org.springframework.core.io.ResourceLoader

      `getClassLoader, getResource`

    - ### Methods inherited from interface org.springframework.context.Lifecycle

      `isRunning, start, stop`

    - ### Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry

      `containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames`

    - ### Methods inherited from interface org.springframework.core.AliasRegistry

      `getAliases`

- - ### Constructor Detail

    - #### StaticPortletApplicationContext

          public StaticPortletApplicationContext()

  - ### Method Detail

    - #### createEnvironment

          protected ConfigurableEnvironment createEnvironment()

      Return a new `StandardPortletEnvironment`
      Overrides:
        `createEnvironment` in class `AbstractApplicationContext`

    - #### initPropertySources

          protected void initPropertySources()

      Replace any stub property sources with actual instances.

      Replace `Portlet`- and `Servlet`-related property sources.

      Overrides:
        `initPropertySources` in class `AbstractApplicationContext`
      See Also:
        `PropertySource.StubPropertySource`, `WebApplicationContextUtils.initServletPropertySources(org.springframework.core.env.MutablePropertySources, javax.servlet.ServletContext)`

    - #### setParent

          public void setParent(ApplicationContext parent)

      Set the parent of this application context, also setting the parent of the internal BeanFactory accordingly.

      The parent environment is delegated to this (child) context if the parent is a `ConfigurableApplicationContext` implementation.

      The parent servlet context is delegated to this (child) context if the parent is a `WebApplicationContext` implementation.

      Specified by:
        `setParent` in interface `ConfigurableApplicationContext`
      Overrides:
        `setParent` in class `GenericApplicationContext`
      Parameters:
        `parent` - the parent context
      See Also:
        `ConfigurableBeanFactory.setParentBeanFactory(org.springframework.beans.factory.BeanFactory)`

    - #### getServletContext

          public ServletContext getServletContext()

      Description copied from interface: `WebApplicationContext`
      Return the standard Servlet API ServletContext for this application.

      Also available for a Portlet application, in addition to the PortletContext.

      Specified by:
        `getServletContext` in interface `WebApplicationContext`

    - #### setPortletContext

          public void setPortletContext(PortletContext portletContext)

      Description copied from interface: `ConfigurablePortletApplicationContext`
      Set the PortletContext for this portlet application context.

      Does not cause an initialization of the context: refresh needs to be called after the setting of all configuration properties.

      Specified by:
        `setPortletContext` in interface `ConfigurablePortletApplicationContext`
      See Also:
        `ConfigurableApplicationContext.refresh()`

    - #### getPortletContext

          public PortletContext getPortletContext()

      Description copied from interface: `ConfigurablePortletApplicationContext`
      Return the standard Portlet API PortletContext for this application.
      Specified by:
        `getPortletContext` in interface `ConfigurablePortletApplicationContext`

    - #### setPortletConfig

          public void setPortletConfig(PortletConfig portletConfig)

      Description copied from interface: `ConfigurablePortletApplicationContext`
      Set the PortletConfig for this portlet application context.
      Specified by:
        `setPortletConfig` in interface `ConfigurablePortletApplicationContext`
      See Also:
        `ConfigurableApplicationContext.refresh()`

    - #### getPortletConfig

          public PortletConfig getPortletConfig()

      Description copied from interface: `ConfigurablePortletApplicationContext`
      Return the PortletConfig for this portlet application context, if any.
      Specified by:
        `getPortletConfig` in interface `ConfigurablePortletApplicationContext`

    - #### setNamespace

          public void setNamespace(String namespace)

      Description copied from interface: `ConfigurablePortletApplicationContext`
      Set the namespace for this portlet application context, to be used for building a default context config location.
      Specified by:
        `setNamespace` in interface `ConfigurablePortletApplicationContext`

    - #### getNamespace

          public String getNamespace()

      Description copied from interface: `ConfigurablePortletApplicationContext`
      Return the namespace for this web application context, if any.
      Specified by:
        `getNamespace` in interface `ConfigurablePortletApplicationContext`

    - #### setConfigLocation

          public void setConfigLocation(String configLocation)

      The `StaticPortletApplicationContext` class does not support this method.
      Specified by:
        `setConfigLocation` in interface `ConfigurablePortletApplicationContext`
      Throws:
        `UnsupportedOperationException` - always

    - #### setConfigLocations

          public void setConfigLocations(String[] configLocations)

      The `StaticPortletApplicationContext` class does not support this method.
      Specified by:
        `setConfigLocations` in interface `ConfigurablePortletApplicationContext`
      Throws:
        `UnsupportedOperationException` - always

    - #### getConfigLocations

          public String[] getConfigLocations()

      Description copied from interface: `ConfigurablePortletApplicationContext`
      Return the config locations for this web application context, or `null` if none specified.
      Specified by:
        `getConfigLocations` in interface `ConfigurablePortletApplicationContext`

    - #### postProcessBeanFactory

          protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)

      Register request/session scopes, a `PortletContextAwareProcessor`, etc.
      Overrides:
        `postProcessBeanFactory` in class `AbstractApplicationContext`
      Parameters:
        `beanFactory` - the bean factory used by the application context

    - #### getResourceByPath

          protected Resource getResourceByPath(String path)

      This implementation supports file paths beneath the root of the PortletContext.
      Overrides:
        `getResourceByPath` in class `DefaultResourceLoader`
      Parameters:
        `path` - the path to the resource
      Returns:
        the corresponding Resource handle
      See Also:
        `PortletContextResource`

    - #### getResourcePatternResolver

          protected ResourcePatternResolver getResourcePatternResolver()

      This implementation supports pattern matching in unexpanded WARs too.
      Overrides:
        `getResourcePatternResolver` in class `AbstractApplicationContext`
      Returns:
        the ResourcePatternResolver for this context
      See Also:
        `PortletContextResourcePatternResolver`