Package edu.mit.simile.butterfly
Class ButterflyClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
edu.mit.simile.butterfly.ButterflyClassLoader
- All Implemented Interfaces:
Closeable,AutoCloseable
This is Butterfly's own classloader that allows it to load classes and libraries
from modules directly, instead of forcing them to be in the container's classpath or
in the WEB-INF/(classes|lib) folders. This allows modules to be developed in
isolation.
Also, this classloader is capable of monitoring changes to the loaded classes
(or to special files that we want watched for changes) and it's capable of
executing a given Runnable action when such changes occur.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRepository(File repository)getClassLoaderWatcher(Runnable trigger)voidMethods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstanceMethods inherited from class java.security.SecureClassLoader
defineClass, defineClassMethods 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, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
ButterflyClassLoader
-
-
Method Details
-
getClassLoaderWatcher
-
addRepository
-
watch
-