Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts2.spring
Class ClassReloadingXMLWebApplicationContext

    java.lang.Object
      org.springframework.core.io.DefaultResourceLoader
          org.springframework.context.support.AbstractApplicationContext
              org.springframework.context.support.AbstractRefreshableApplicationContext
                  org.springframework.context.support.AbstractRefreshableConfigApplicationContext
                      org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
                          org.springframework.web.context.support.XmlWebApplicationContext
                              org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext

All Implemented Interfaces:
  org.apache.commons.jci.monitor.FilesystemAlterationListener, org.springframework.beans.factory.BeanFactory, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.HierarchicalBeanFactory, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.ListableBeanFactory, org.springframework.context.ApplicationContext, org.springframework.context.ApplicationEventPublisher, org.springframework.context.ConfigurableApplicationContext, org.springframework.context.Lifecycle, org.springframework.context.MessageSource, org.springframework.core.io.ResourceLoader, org.springframework.core.io.support.ResourcePatternResolver, org.springframework.ui.context.ThemeSource, org.springframework.web.context.ConfigurableWebApplicationContext, org.springframework.web.context.WebApplicationContext

    public class ClassReloadingXMLWebApplicationContext

extends org.springframework.web.context.support.XmlWebApplicationContext
implements org.apache.commons.jci.monitor.FilesystemAlterationListener

This class can be used instead of XmlWebApplicationContext, and it will watch jar files and directories for changes and reload then changed classes.
To use this class:

- Set "struts.devMode" to "true"
- Set "struts.class.reloading.watchList" to a comma separated list of directories, or jar files (absolute paths)
- Add this to web.xml:

        <context-param>
             <param-name>contextClass</param-name>
             <param-value>org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext</param-value>
         </context-param>

- Add Apache Commons JCI FAM to the classpath. If you are using maven, add this to pom.xml:

        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-jci-fam</artifactId>
             <version>1.0</version>
             <optional>true</optional>
        </dependency>

Field Summary
`protected ClassReloadingBeanFactory` | `beanFactory`
`protected com.opensymphony.xwork2.util.classloader.ReloadingClassLoader` | `classLoader`
`protected org.apache.commons.jci.monitor.FilesystemAlterationMonitor` | `fam`

Fields inherited from class org.springframework.web.context.support.XmlWebApplicationContext
`DEFAULT_CONFIG_LOCATION, DEFAULT_CONFIG_LOCATION_PREFIX, DEFAULT_CONFIG_LOCATION_SUFFIX`

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.context.ConfigurableWebApplicationContext
`APPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_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, 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
`ClassReloadingXMLWebApplicationContext()`

Method Summary
`void` | `close()`
`protected org.springframework.beans.factory.support.DefaultListableBeanFactory` | `createBeanFactory()`
`com.opensymphony.xwork2.util.classloader.ReloadingClassLoader` | `getReloadingClassLoader()`
`void` | `onDirectoryChange(File file)`
`void` | `onDirectoryCreate(File file)`
`void` | `onDirectoryDelete(File file)`
`void` | `onFileChange(File file)`
`void` | `onFileCreate(File file)`
`void` | `onFileDelete(File file)`
`void` | `onStart(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver)`
`void` | `onStop(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver)`
`protected void` | `prepareBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)`
`void` | `refresh()`
`void` | `setupReloading(String[] watchList, String acceptClasses, javax.servlet.ServletContext servletContext, boolean reloadConfig)`

Methods inherited from class org.springframework.web.context.support.XmlWebApplicationContext
`getDefaultConfigLocations, initBeanDefinitionReader, loadBeanDefinitions, loadBeanDefinitions`

Methods inherited from class org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
`getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, getTheme, onRefresh, postProcessBeanFactory, setNamespace, setServletConfig, setServletContext`

Methods inherited from class org.springframework.context.support.AbstractRefreshableConfigApplicationContext
`afterPropertiesSet, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setId`

Methods inherited from class org.springframework.context.support.AbstractRefreshableApplicationContext
`cancelRefresh, closeBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences`

Methods inherited from class org.springframework.context.support.AbstractApplicationContext
`addApplicationListener, addBeanFactoryPostProcessor, addListener, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResources, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, prepareRefresh, publishEvent, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setParent, start, stop, toString`

Methods inherited from class org.springframework.core.io.DefaultResourceLoader
`getClassLoader, getResource, setClassLoader`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.springframework.web.context.ConfigurableWebApplicationContext
`setConfigLocation, setConfigLocations`

Methods inherited from interface org.springframework.context.ConfigurableApplicationContext
`addApplicationListener, addBeanFactoryPostProcessor, getBeanFactory, isActive, registerShutdownHook, setId, setParent`

Methods inherited from interface org.springframework.context.ApplicationContext
`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`

Field Detail

### classLoader

    protected com.opensymphony.xwork2.util.classloader.ReloadingClassLoader classLoader

### fam

    protected org.apache.commons.jci.monitor.FilesystemAlterationMonitor fam

### beanFactory

    protected ClassReloadingBeanFactory beanFactory

Constructor Detail

### ClassReloadingXMLWebApplicationContext

    public ClassReloadingXMLWebApplicationContext()

Method Detail

### setupReloading

    public void setupReloading(String[] watchList,
                               String acceptClasses,
                               javax.servlet.ServletContext servletContext,
                               boolean reloadConfig)

### close

    public void close()

  Specified by:
    `close` in interface `org.springframework.context.ConfigurableApplicationContext`
  Overrides:
    `close` in class `org.springframework.context.support.AbstractApplicationContext`

### refresh

    public void refresh()
                 throws org.springframework.beans.BeansException,
                        IllegalStateException

  Specified by:
    `refresh` in interface `org.springframework.context.ConfigurableApplicationContext`
  Overrides:
    `refresh` in class `org.springframework.context.support.AbstractApplicationContext`
  Throws:
    `org.springframework.beans.BeansException`
    `IllegalStateException`

### createBeanFactory

    protected org.springframework.beans.factory.support.DefaultListableBeanFactory createBeanFactory()

  Overrides:
    `createBeanFactory` in class `org.springframework.context.support.AbstractRefreshableApplicationContext`

### prepareBeanFactory

    protected void prepareBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)

  Overrides:
    `prepareBeanFactory` in class `org.springframework.context.support.AbstractApplicationContext`

### onDirectoryChange

    public void onDirectoryChange(File file)

  Specified by:
    `onDirectoryChange` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### onDirectoryCreate

    public void onDirectoryCreate(File file)

  Specified by:
    `onDirectoryCreate` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### onDirectoryDelete

    public void onDirectoryDelete(File file)

  Specified by:
    `onDirectoryDelete` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### onFileChange

    public void onFileChange(File file)

  Specified by:
    `onFileChange` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### onFileCreate

    public void onFileCreate(File file)

  Specified by:
    `onFileCreate` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### onFileDelete

    public void onFileDelete(File file)

  Specified by:
    `onFileDelete` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### onStart

    public void onStart(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver)

  Specified by:
    `onStart` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### onStop

    public void onStop(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver)

  Specified by:
    `onStop` in interface `org.apache.commons.jci.monitor.FilesystemAlterationListener`

### getReloadingClassLoader

    public com.opensymphony.xwork2.util.classloader.ReloadingClassLoader getReloadingClassLoader()

Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000–2018 Apache Software Foundation. All rights reserved.