Package org.apache.catalina
Interface Loader
-
- All Known Implementing Classes:
WebappLoader
public interface LoaderA Loader represents a Java ClassLoader implementation that can be used by a Container to load class files (within a repository associated with the Loader) that are designed to be reloaded upon request, as well as a mechanism to detect whether changes have occurred in the underlying repository.In order for a
Loaderimplementation to successfully operate with aContextimplementation that implements reloading, it must obey the following constraints:- Must implement
Lifecycleso that the Context can indicate that a new class loader is required. - The
start()method must unconditionally create a newClassLoaderimplementation. - The
stop()method must throw away its reference to theClassLoaderpreviously utilized, so that the class loader, all classes loaded by it, and all objects of those classes, can be garbage collected. - Must allow a call to
stop()to be followed by a call tostart()on the sameLoaderinstance. - Based on a policy chosen by the implementation, must call the
Context.reload()method on the owningContextwhen a change to one or more of the class files loaded by this class loader is detected.
- Author:
- Craig R. McClanahan
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description voidaddPropertyChangeListener(PropertyChangeListener listener)Add a property change listener to this component.voidbackgroundProcess()Execute a periodic task, such as reloading, etc.ClassLoadergetClassLoader()ContextgetContext()booleangetDelegate()booleangetReloadable()Deprecated.booleanmodified()Has the internal repository associated with this Loader been modified, such that the loaded classes should be reloaded?voidremovePropertyChangeListener(PropertyChangeListener listener)Remove 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.voidsetReloadable(boolean reloadable)Deprecated.
-
-
-
Method Detail
-
backgroundProcess
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.
-
getClassLoader
ClassLoader getClassLoader()
- Returns:
- the Java class loader to be used by this Container.
-
getContext
Context getContext()
- Returns:
- the Context with which this Loader has been associated.
-
setContext
void setContext(Context context)
Set the Context with which this Loader has been associated.- Parameters:
context- The associated Context
-
getDelegate
boolean getDelegate()
- Returns:
- the "follow standard delegation model" flag used to configure our ClassLoader.
-
setDelegate
void setDelegate(boolean delegate)
Set the "follow standard delegation model" flag used to configure our ClassLoader.- Parameters:
delegate- The new flag
-
getReloadable
@Deprecated boolean getReloadable()
Deprecated.UseContext.getReloadable(). This method will be removed in Tomcat 10.- Returns:
- the reloadable flag for this Loader.
-
setReloadable
@Deprecated void setReloadable(boolean reloadable)
Deprecated.UseContext.setReloadable(boolean). This method will be removed in Tomcat 10.Set the reloadable flag for this Loader.- Parameters:
reloadable- The new reloadable flag
-
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener)
Add a property change listener to this component.- Parameters:
listener- The listener to add
-
modified
boolean modified()
Has the internal repository associated with this Loader been modified, such that the loaded classes should be reloaded?- Returns:
truewhen the repository has been modified,falseotherwise
-
removePropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener)
Remove a property change listener from this component.- Parameters:
listener- The listener to remove
-
-