Package org.apache.catalina.loader
Class WebappLoader
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.loader.WebappLoader
- All Implemented Interfaces:
- MBeanRegistration,- JmxEnabled,- Lifecycle,- Loader
Classloader implementation which is specialized for handling web applications in the most efficient way, while being
 Catalina aware (all accesses to resources are made through 
WebResourceRoot). This class
 loader supports detection of modified Java classes, which can be used to implement auto-reload support.
 
 This class loader is configured via the Resources children of its Context prior to calling start(). When
 a new class is required, these Resources will be consulted first to locate the class. If it is not present, the
 system class loader will be used instead.
- Author:
- Craig R. McClanahan, Remy Maucherat
- 
Nested Class SummaryNested classes/interfaces inherited from interface org.apache.catalina.LifecycleLifecycle.SingleUse
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected static final StringManagerThe string manager for this package.protected final PropertyChangeSupportThe property change support for this component.Fields inherited from interface org.apache.catalina.LifecycleAFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidAdd a property change listener to this component.voidExecute a periodic task, such as reloading, etc.Return the Java class loader to be used by this Container.Classpath, as set in org.apache.catalina.jsp_classpath context propertybooleanReturn the "follow standard delegation model" flag used to configure our ClassLoader.protected StringMethod implemented by sub-classes to identify the domain in which MBeans should be registered.String[]protected StringAllow sub-classes to specify the key properties component of theObjectNamethat will be used to register this component.booleanmodified()Has the internal repository associated with this Loader been modified, such that the loaded classes should be reloaded?voidRemove a property change listener from this component.voidsetContext(Context context) Set the Context with which this Loader has been associated.voidsetDelegate(boolean delegate) Set the "follow standard delegation model" flag used to configure our ClassLoader.voidsetJakartaConverter(String jakartaConverter) Set the Jakarta converter.voidsetLoaderClass(String loaderClass) Set the ClassLoader class name.voidsetLoaderInstance(WebappClassLoaderBase loaderInstance) Set the ClassLoader instance, without relying on reflection This method will also invokesetLoaderClass(String)withloaderInstance.getClass().getName()as an argumentprotected voidStart associatedClassLoaderand implement the requirements ofLifecycleBase.startInternal().protected voidStop associatedClassLoaderand implement the requirements ofLifecycleBase.stopInternal().toString()Return a String representation of this component.Methods inherited from class org.apache.catalina.util.LifecycleMBeanBasedestroyInternal, getDomain, getObjectName, initInternal, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregisterMethods inherited from class org.apache.catalina.util.LifecycleBaseaddLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
- 
Field Details- 
smThe string manager for this package.
- 
supportThe property change support for this component.
 
- 
- 
Constructor Details- 
WebappLoaderpublic WebappLoader()
 
- 
- 
Method Details- 
getClassLoaderReturn the Java class loader to be used by this Container.- Specified by:
- getClassLoaderin interface- Loader
- Returns:
- the Java class loader to be used by this Container.
 
- 
getContext- Specified by:
- getContextin interface- Loader
- Returns:
- the Context with which this Loader has been associated.
 
- 
setContextDescription copied from interface:LoaderSet the Context with which this Loader has been associated.- Specified by:
- setContextin interface- Loader
- Parameters:
- context- The associated Context
 
- 
getDelegatepublic boolean getDelegate()Return the "follow standard delegation model" flag used to configure our ClassLoader.- Specified by:
- getDelegatein interface- Loader
- Returns:
- the "follow standard delegation model" flag used to configure our ClassLoader.
 
- 
setDelegatepublic void setDelegate(boolean delegate) Set the "follow standard delegation model" flag used to configure our ClassLoader.- Specified by:
- setDelegatein interface- Loader
- Parameters:
- delegate- The new flag
 
- 
getJakartaConverter- Returns:
- a non null String if the loader will attempt to use the Jakarta converter. The String is the name of the profile used for conversion.
 
- 
setJakartaConverterSet the Jakarta converter.- Parameters:
- jakartaConverter- The profile name which will be used by the converter Any invalid profile value will default to the TOMCAT profile, which converts all packages used by Tomcat.
 
- 
getLoaderClass- Returns:
- the ClassLoader class name.
 
- 
setLoaderClassSet the ClassLoader class name.- Parameters:
- loaderClass- The new ClassLoader class name
 
- 
setLoaderInstanceSet the ClassLoader instance, without relying on reflection This method will also invokesetLoaderClass(String)withloaderInstance.getClass().getName()as an argument- Parameters:
- loaderInstance- The new ClassLoader instance to use
 
- 
addPropertyChangeListenerAdd a property change listener to this component.- Specified by:
- addPropertyChangeListenerin interface- Loader
- Parameters:
- listener- The listener to add
 
- 
backgroundProcesspublic void backgroundProcess()Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.- Specified by:
- backgroundProcessin interface- Loader
 
- 
getLoaderRepositories
- 
getLoaderRepositoriesString
- 
getClasspathClasspath, as set in org.apache.catalina.jsp_classpath context property- Returns:
- The classpath
 
- 
modifiedpublic boolean modified()Has the internal repository associated with this Loader been modified, such that the loaded classes should be reloaded?
- 
removePropertyChangeListenerRemove a property change listener from this component.- Specified by:
- removePropertyChangeListenerin interface- Loader
- Parameters:
- listener- The listener to remove
 
- 
toStringReturn a String representation of this component.
- 
startInternalStart associatedClassLoaderand implement the requirements ofLifecycleBase.startInternal().- Specified by:
- startInternalin class- LifecycleBase
- Throws:
- LifecycleException- if this component detects a fatal error that prevents this component from being used
 
- 
stopInternalStop associatedClassLoaderand implement the requirements ofLifecycleBase.stopInternal().- Specified by:
- stopInternalin class- LifecycleBase
- Throws:
- LifecycleException- if this component detects a fatal error that prevents this component from being used
 
- 
getDomainInternalDescription copied from class:LifecycleMBeanBaseMethod implemented by sub-classes to identify the domain in which MBeans should be registered.- Specified by:
- getDomainInternalin class- LifecycleMBeanBase
- Returns:
- The name of the domain to use to register MBeans.
 
- 
getObjectNameKeyPropertiesDescription copied from class:LifecycleMBeanBaseAllow sub-classes to specify the key properties component of theObjectNamethat will be used to register this component.- Specified by:
- getObjectNameKeyPropertiesin class- LifecycleMBeanBase
- Returns:
- The string representation of the key properties component of the
          desired ObjectName
 
 
-