Package aQute.bnd.osgi
Class ActivelyClosingClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- aQute.bnd.osgi.ActivelyClosingClassLoader
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
Processor.CL
class ActivelyClosingClassLoader extends java.net.URLClassLoader implements java.io.CloseableThis class loader can load classes from JAR files.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classActivelyClosingClassLoader.Wrapper
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.concurrent.atomic.AtomicBooleanopen(package private) Processorprocessor(package private) java.util.concurrent.ScheduledFuture<?>schedule(package private) java.util.concurrent.atomic.AtomicReference<java.util.Map<java.io.File,ActivelyClosingClassLoader.Wrapper>>wrappers
-
Constructor Summary
Constructors Constructor Description ActivelyClosingClassLoader(Processor processor, java.lang.ClassLoader parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidadd(java.io.File file)(package private) voidautopurge(long freshPeriod)voidclose()private java.net.URLcreateURL(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.URLfindResource(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) voidpurge(long purgeTime)This method will close any open files that have not been accessed since purgeTime-
Methods inherited from class java.net.URLClassLoader
addURL, definePackage, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Field Detail
-
wrappers
final java.util.concurrent.atomic.AtomicReference<java.util.Map<java.io.File,ActivelyClosingClassLoader.Wrapper>> wrappers
-
open
final java.util.concurrent.atomic.AtomicBoolean open
-
processor
final Processor processor
-
schedule
java.util.concurrent.ScheduledFuture<?> schedule
-
-
Constructor Detail
-
ActivelyClosingClassLoader
ActivelyClosingClassLoader(Processor processor, java.lang.ClassLoader parent)
-
-
Method Detail
-
add
void add(java.io.File file)
-
findClass
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException- Overrides:
findClassin classjava.net.URLClassLoader- Throws:
java.lang.ClassNotFoundException
-
findResource
public java.net.URL findResource(java.lang.String name)
- Overrides:
findResourcein classjava.net.URLClassLoader
-
dataStream
private java.util.stream.Stream<byte[]> dataStream(java.lang.String name)
-
createURL
private java.net.URL createURL(java.lang.String name, byte[] data)
-
findResources
public java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
- Overrides:
findResourcesin classjava.net.URLClassLoader
-
purge
void purge(long purgeTime)
This method will close any open files that have not been accessed since purgeTime- Parameters:
purgeTime- the absolute cutoff time
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.net.URLClassLoader
-
getFiles
java.util.List<java.io.File> getFiles()
-
loadClass
public java.lang.Class<?> loadClass(java.lang.String name) throws java.lang.ClassNotFoundException- Overrides:
loadClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
autopurge
void autopurge(long freshPeriod)
-
-