ClassLoaderHandler
public class JBossClassLoaderHandler extends Object implements ClassLoaderHandler
https://github.com/jboss-modules/jboss-modules/blob/master/src/main/java/org/jboss/modules/ModuleClassLoader.java
ClassLoaderHandler.DelegationOrder
Constructor | Description |
---|---|
JBossClassLoaderHandler() |
Modifier and Type | Method | Description |
---|---|---|
ClassLoaderHandler.DelegationOrder |
getDelegationOrder(ClassLoader classLoaderInstance) |
The delegation order configuration for a given ClassLoader instance (this is usually PARENT_FIRST for most
ClassLoaders, since you don't generally want to be able to override system classes with user classes, but
this can be overridden by some ClassLoaders, e.g.
|
ClassLoader |
getEmbeddedClassLoader(ClassLoader outerClassLoaderInstance) |
If this ClassLoader delegates directly to an embedded classloader instance, return it here, otherwise return
null.
|
void |
handle(ScanSpec scanSpec,
ClassLoader classLoader,
ClasspathOrder classpathOrderOut,
LogNode log) |
Determine if a given ClassLoader can be handled (meaning that its classpath elements can be extracted from
it), and if it can, extract the classpath elements from the ClassLoader and register them with the
ClasspathFinder using classpathFinder.addClasspathElement(pathElement) or
classpathFinder.addClasspathElements(path).
|
String[] |
handledClassLoaders() |
The fully-qualified names of handled classloader classes.
|
public String[] handledClassLoaders()
ClassLoaderHandler
handledClassLoaders
in interface ClassLoaderHandler
public ClassLoader getEmbeddedClassLoader(ClassLoader outerClassLoaderInstance)
ClassLoaderHandler
getEmbeddedClassLoader
in interface ClassLoaderHandler
outerClassLoaderInstance
- The outer ClassLoader instance to check for an embedded ClassLoader.public ClassLoaderHandler.DelegationOrder getDelegationOrder(ClassLoader classLoaderInstance)
ClassLoaderHandler
getDelegationOrder
in interface ClassLoaderHandler
classLoaderInstance
- The ClassLoader to get the delegation order for.public void handle(ScanSpec scanSpec, ClassLoader classLoader, ClasspathOrder classpathOrderOut, LogNode log)
ClassLoaderHandler
handle
in interface ClassLoaderHandler
scanSpec
- the scanning specification, in case it is needed, e.g. this could be used to reduce the number of
classpath elements returned in cases where it is very costly for a given classloader to return the
entire classpath. (The ScanSpec can be safely ignored, however, and the returned paths will be
filtered by ClassGraph.)classLoader
- The ClassLoader class to attempt to handle. If you can't directly use instanceof (because you are
using introspection so that your ClassLoaderHandler implementation can be added to the upstream
ClassGraph project), you should iterate through the ClassLoader's superclass lineage to ensure
subclasses of the target ClassLoader are correctly detected.classpathOrderOut
- The ClasspathOrder to register any discovered classpath elements with.log
- A logger instance -- if this is non-null, write debug information using log.log("message").Copyright © 2018. All rights reserved.