class ActivelyClosingClassLoader
extends java.net.URLClassLoader
implements java.io.Closeable
Modifier and Type | Class and Description |
---|---|
(package private) class |
ActivelyClosingClassLoader.Wrapper |
Modifier and Type | Field and Description |
---|---|
(package private) java.util.concurrent.atomic.AtomicBoolean |
open |
(package private) Processor |
processor |
(package private) java.util.concurrent.ScheduledFuture<?> |
schedule |
(package private) java.util.concurrent.atomic.AtomicReference<java.util.Map<java.io.File,ActivelyClosingClassLoader.Wrapper>> |
wrappers |
Constructor and Description |
---|
ActivelyClosingClassLoader(Processor processor,
java.lang.ClassLoader parent) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
add(java.io.File file) |
(package private) void |
autopurge(long freshPeriod) |
void |
close() |
private java.net.URL |
createURL(java.lang.String name,
byte[] data) |
private java.util.stream.Stream<byte[]> |
dataStream(java.lang.String name) |
protected java.lang.Class<?> |
findClass(java.lang.String name) |
java.net.URL |
findResource(java.lang.String name) |
java.util.Enumeration<java.net.URL> |
findResources(java.lang.String name) |
(package private) java.util.List<java.io.File> |
getFiles() |
java.lang.Class<?> |
loadClass(java.lang.String name) |
(package private) void |
purge(long purgeTime)
This method will close any open files that have not been accessed since
purgeTime
|
addURL, definePackage, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
final java.util.concurrent.atomic.AtomicReference<java.util.Map<java.io.File,ActivelyClosingClassLoader.Wrapper>> wrappers
final java.util.concurrent.atomic.AtomicBoolean open
final Processor processor
java.util.concurrent.ScheduledFuture<?> schedule
ActivelyClosingClassLoader(Processor processor, java.lang.ClassLoader parent)
void add(java.io.File file)
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException
findClass
in class java.net.URLClassLoader
java.lang.ClassNotFoundException
public java.net.URL findResource(java.lang.String name)
findResource
in class java.net.URLClassLoader
private java.util.stream.Stream<byte[]> dataStream(java.lang.String name)
private java.net.URL createURL(java.lang.String name, byte[] data)
public java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
findResources
in class java.net.URLClassLoader
void purge(long purgeTime)
purgeTime
- the absolute cutoff timepublic void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.net.URLClassLoader
java.util.List<java.io.File> getFiles()
public java.lang.Class<?> loadClass(java.lang.String name) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
void autopurge(long freshPeriod)