org.outerj.xreporter.resource
Class RefreshingResourceClassLoader
java.lang.Object
java.lang.ClassLoader
org.outerj.xreporter.resource.RefreshingResourceClassLoader
- public class RefreshingResourceClassLoader
- extends java.lang.ClassLoader
A very limited ClassLoader, only meant to be used for loading ResourceBundles from
a specified directory. The purpose is to be able to invalidate Java's ResourceBundle
cache when the resource bundle changes on disk.
The Java ResourceBundle includes the ClassLoader it loaded
a resource bundle from in its cachekey, and so if the classloader changes, it will
invalidate that cache entry.
This classloader exploits that technique: when calling checkUpToDate()
,
all files loaded from this classloader will be checked to see if they are still up to
date. If not, the method will return a new ClassLoader, or else it will return itself.
Method Summary |
RefreshingResourceClassLoader |
checkUpToDate()
|
void |
clearAssertionStatus()
|
protected java.lang.Package |
definePackage(java.lang.String name,
java.lang.String specTitle,
java.lang.String specVersion,
java.lang.String specVendor,
java.lang.String implTitle,
java.lang.String implVersion,
java.lang.String implVendor,
java.net.URL sealBase)
|
protected java.lang.Class |
findClass(java.lang.String name)
|
protected java.lang.String |
findLibrary(java.lang.String libname)
|
protected java.net.URL |
findResource(java.lang.String name)
|
protected java.util.Enumeration |
findResources(java.lang.String name)
|
protected java.lang.Package |
getPackage(java.lang.String name)
|
protected java.lang.Package[] |
getPackages()
|
java.net.URL |
getResource(java.lang.String name)
|
java.io.InputStream |
getResourceAsStream(java.lang.String name)
|
java.lang.Class |
loadClass(java.lang.String name)
|
protected java.lang.Class |
loadClass(java.lang.String name,
boolean resolve)
|
void |
setClassAssertionStatus(java.lang.String className,
boolean enabled)
|
void |
setDefaultAssertionStatus(boolean enabled)
|
void |
setPackageAssertionStatus(java.lang.String packageName,
boolean enabled)
|
Methods inherited from class java.lang.ClassLoader |
defineClass, defineClass, defineClass, findLoadedClass, findSystemClass, getParent, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, resolveClass, setSigners |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RefreshingResourceClassLoader
public RefreshingResourceClassLoader(java.io.File dir)
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
checkUpToDate
public RefreshingResourceClassLoader checkUpToDate()
getResource
public java.net.URL getResource(java.lang.String name)
findResources
protected java.util.Enumeration findResources(java.lang.String name)
throws java.io.IOException
- Throws:
java.io.IOException
findResource
protected java.net.URL findResource(java.lang.String name)
loadClass
public java.lang.Class loadClass(java.lang.String name)
throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
loadClass
protected java.lang.Class loadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
findClass
protected java.lang.Class findClass(java.lang.String name)
throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
definePackage
protected java.lang.Package definePackage(java.lang.String name,
java.lang.String specTitle,
java.lang.String specVersion,
java.lang.String specVendor,
java.lang.String implTitle,
java.lang.String implVersion,
java.lang.String implVendor,
java.net.URL sealBase)
throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
getPackage
protected java.lang.Package getPackage(java.lang.String name)
getPackages
protected java.lang.Package[] getPackages()
findLibrary
protected java.lang.String findLibrary(java.lang.String libname)
setDefaultAssertionStatus
public void setDefaultAssertionStatus(boolean enabled)
setPackageAssertionStatus
public void setPackageAssertionStatus(java.lang.String packageName,
boolean enabled)
setClassAssertionStatus
public void setClassAssertionStatus(java.lang.String className,
boolean enabled)
clearAssertionStatus
public void clearAssertionStatus()