Package org.apache.commons.jci
Class ReloadingClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- org.apache.commons.jci.ReloadingClassLoader
-
- All Implemented Interfaces:
ReloadNotificationListener
public class ReloadingClassLoader extends java.lang.ClassLoader implements ReloadNotificationListener
The ReloadingClassLoader uses a delegation mechansim to allow classes to be reloaded. That means that loadClass calls may return different results if the class was changed in the underlying ResourceStore.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ClassLoaderdelegateprivate org.apache.commons.logging.Loglogprivate java.lang.ClassLoaderparentprivate ResourceStore[]stores
-
Constructor Summary
Constructors Constructor Description ReloadingClassLoader(java.lang.ClassLoader pParent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddResourceStore(ResourceStore pStore)voidclearAssertionStatus()java.net.URLgetResource(java.lang.String name)java.io.InputStreamgetResourceAsStream(java.lang.String name)voidhandleNotification()java.lang.Class<?>loadClass(java.lang.String name)booleanremoveResourceStore(ResourceStore pStore)voidsetClassAssertionStatus(java.lang.String className, boolean enabled)voidsetDefaultAssertionStatus(boolean enabled)voidsetPackageAssertionStatus(java.lang.String packageName, boolean enabled)-
Methods inherited from class java.lang.ClassLoader
defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setSigners
-
-
-
-
Field Detail
-
log
private final org.apache.commons.logging.Log log
-
parent
private final java.lang.ClassLoader parent
-
stores
private ResourceStore[] stores
-
delegate
private java.lang.ClassLoader delegate
-
-
Method Detail
-
addResourceStore
public boolean addResourceStore(ResourceStore pStore)
-
removeResourceStore
public boolean removeResourceStore(ResourceStore pStore)
-
handleNotification
public void handleNotification()
- Specified by:
handleNotificationin interfaceReloadNotificationListener
-
clearAssertionStatus
public void clearAssertionStatus()
- Overrides:
clearAssertionStatusin classjava.lang.ClassLoader
-
getResource
public java.net.URL getResource(java.lang.String name)
- Overrides:
getResourcein classjava.lang.ClassLoader
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
- Overrides:
getResourceAsStreamin classjava.lang.ClassLoader
-
loadClass
public java.lang.Class<?> loadClass(java.lang.String name) throws java.lang.ClassNotFoundException- Overrides:
loadClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
setClassAssertionStatus
public void setClassAssertionStatus(java.lang.String className, boolean enabled)- Overrides:
setClassAssertionStatusin classjava.lang.ClassLoader
-
setDefaultAssertionStatus
public void setDefaultAssertionStatus(boolean enabled)
- Overrides:
setDefaultAssertionStatusin classjava.lang.ClassLoader
-
setPackageAssertionStatus
public void setPackageAssertionStatus(java.lang.String packageName, boolean enabled)- Overrides:
setPackageAssertionStatusin classjava.lang.ClassLoader
-
-