org.apache.struts2.spring
Class ClassReloadingXMLWebApplicationContext

java.lang.Object
  extended by org.springframework.core.io.DefaultResourceLoader
      extended by org.springframework.context.support.AbstractApplicationContext
          extended by org.springframework.context.support.AbstractRefreshableApplicationContext
              extended by org.springframework.context.support.AbstractRefreshableConfigApplicationContext
                  extended by org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
                      extended by org.springframework.web.context.support.XmlWebApplicationContext
                          extended by 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:


Field Summary
protected  ClassReloadingBeanFactory beanFactory
           
protected  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, logger, MESSAGE_SOURCE_BEAN_NAME
 
Fields inherited from interface org.springframework.web.context.WebApplicationContext
ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION
 
Fields inherited from interface org.springframework.context.ConfigurableApplicationContext
CONFIG_LOCATION_DELIMITERS, LOAD_TIME_WEAVER_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()
           
 ReloadingClassLoader getReloadingClassLoader()
           
 void onDirectoryChange(java.io.File file)
           
 void onDirectoryCreate(java.io.File file)
           
 void onDirectoryDelete(java.io.File file)
           
 void onFileChange(java.io.File file)
           
 void onFileCreate(java.io.File file)
           
 void onFileDelete(java.io.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(java.lang.String[] watchList, java.lang.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
closeBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences
 
Methods inherited from class org.springframework.context.support.AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addListener, cancelRefresh, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getDisplayName, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResources, getStartupDate, getType, initApplicationEventMulticaster, 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, setParent
 
Methods inherited from interface org.springframework.context.ApplicationContext
getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate
 
Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory
containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType
 
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, 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 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(java.lang.String[] watchList,
                           java.lang.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,
                    java.lang.IllegalStateException
Specified by:
refresh in interface org.springframework.context.ConfigurableApplicationContext
Overrides:
refresh in class org.springframework.context.support.AbstractApplicationContext
Throws:
org.springframework.beans.BeansException
java.lang.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(java.io.File file)
Specified by:
onDirectoryChange in interface org.apache.commons.jci.monitor.FilesystemAlterationListener

onDirectoryCreate

public void onDirectoryCreate(java.io.File file)
Specified by:
onDirectoryCreate in interface org.apache.commons.jci.monitor.FilesystemAlterationListener

onDirectoryDelete

public void onDirectoryDelete(java.io.File file)
Specified by:
onDirectoryDelete in interface org.apache.commons.jci.monitor.FilesystemAlterationListener

onFileChange

public void onFileChange(java.io.File file)
Specified by:
onFileChange in interface org.apache.commons.jci.monitor.FilesystemAlterationListener

onFileCreate

public void onFileCreate(java.io.File file)
Specified by:
onFileCreate in interface org.apache.commons.jci.monitor.FilesystemAlterationListener

onFileDelete

public void onFileDelete(java.io.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 ReloadingClassLoader getReloadingClassLoader()


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.