@Component(value="core_JavaClassLoader")
public class JavaClassLoader
extends java.net.URLClassLoader
Modifier and Type | Class and Description |
---|---|
protected static class |
JavaClassLoader.FileClassLoader
Class loader is used for building class instances from ".class" files.
|
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.String,ClassFilesProvider> |
classFilesProviders |
protected java.util.Map<java.lang.String,TimestampClass> |
loaded |
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.locks.Lock> |
locks |
protected io.micrometer.core.instrument.MeterRegistry |
meterRegistry |
protected ProxyClassLoader |
proxyClassLoader |
protected java.util.Set<java.lang.String> |
rootDirs |
protected SpringBeanLoader |
springBeanLoader |
protected TimeSource |
timeSource |
Constructor and Description |
---|
JavaClassLoader(CoreProperties coreProperties) |
Modifier and Type | Method and Description |
---|---|
void |
clearCache() |
protected java.util.Set<java.lang.String> |
collectModifiedClassFiles(java.lang.String rootDir)
Collects class files that were modified or not loaded yet from the directory
|
java.net.URL |
findResource(java.lang.String name) |
java.util.Collection<java.lang.String> |
getClassDependencies(java.lang.String className) |
java.util.Collection<java.lang.String> |
getClassDependent(java.lang.String className) |
protected java.util.Date |
getCurrentTimestamp() |
java.net.URL |
getResource(java.lang.String name) |
protected java.util.Set<java.lang.String> |
getRootPaths() |
boolean |
isLoadedClass(java.lang.String className) |
java.lang.Class |
loadClass(java.lang.String fullClassName,
boolean resolve) |
protected java.lang.Class |
loadClassFromClassFile(java.lang.String fullClassName,
java.lang.String containerClassName,
java.io.File classFile) |
boolean |
removeClass(java.lang.String className) |
addURL, close, definePackage, findClass, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
protected final java.util.Set<java.lang.String> rootDirs
protected final java.util.Map<java.lang.String,TimestampClass> loaded
protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.locks.Lock> locks
protected final ProxyClassLoader proxyClassLoader
protected final java.util.Map<java.lang.String,ClassFilesProvider> classFilesProviders
@Autowired protected TimeSource timeSource
@Autowired protected SpringBeanLoader springBeanLoader
@Autowired protected io.micrometer.core.instrument.MeterRegistry meterRegistry
@Autowired public JavaClassLoader(CoreProperties coreProperties)
public void clearCache()
public java.lang.Class loadClass(java.lang.String fullClassName, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
protected java.lang.Class loadClassFromClassFile(java.lang.String fullClassName, java.lang.String containerClassName, java.io.File classFile)
protected java.util.Set<java.lang.String> collectModifiedClassFiles(java.lang.String rootDir)
public boolean removeClass(java.lang.String className)
public boolean isLoadedClass(java.lang.String className)
public java.util.Collection<java.lang.String> getClassDependencies(java.lang.String className)
public java.util.Collection<java.lang.String> getClassDependent(java.lang.String className)
public java.net.URL findResource(java.lang.String name)
findResource
in class java.net.URLClassLoader
public java.net.URL getResource(java.lang.String name)
getResource
in class java.lang.ClassLoader
protected java.util.Set<java.lang.String> getRootPaths()
protected java.util.Date getCurrentTimestamp()