public class ChainedClassLoader
extends java.lang.ClassLoader
ClassCastExceptions.| Modifier and Type | Field and Description |
|---|---|
private java.util.List<java.lang.ClassLoader> |
loaders
list of loaders
|
private java.util.List<java.lang.ClassLoader> |
nonOsgiLoaders
list of special, non-osgi loaders, added by the user
|
private java.lang.ClassLoader |
parent
parent class loader
|
| Constructor and Description |
|---|
ChainedClassLoader(java.lang.ClassLoader[] loaders)
Constructs a new
ChainedClassLoader instance. |
ChainedClassLoader(java.lang.ClassLoader[] loaders,
java.lang.ClassLoader parent)
Constructs a new
ChainedClassLoader instance. |
| Modifier and Type | Method and Description |
|---|---|
void |
addClassLoader(java.lang.Class<?> clazz)
Adds a class loader defining the given class, to the chained class loader space.
|
void |
addClassLoader(java.lang.ClassLoader classLoader)
Adds the given class loader to the existing list.
|
private boolean |
addNonOsgiLoader(java.lang.ClassLoader classLoader)
Checks if the given classloader is a known, non-OSGi loader.
|
private void |
addOsgiLoader(java.lang.ClassLoader classLoader) |
private java.net.URL |
doGetResource(java.lang.String name) |
private java.net.URL |
doGetResource(java.lang.String name,
java.util.List<java.lang.ClassLoader> classLoaders) |
private java.lang.Class<?> |
doLoadClass(java.lang.String name) |
private java.lang.Class<?> |
doLoadClass(java.lang.String name,
java.util.List<java.lang.ClassLoader> classLoaders) |
java.net.URL |
getResource(java.lang.String name) |
java.lang.Class<?> |
loadClass(java.lang.String name) |
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignersprivate final java.util.List<java.lang.ClassLoader> loaders
private final java.util.List<java.lang.ClassLoader> nonOsgiLoaders
private final java.lang.ClassLoader parent
public ChainedClassLoader(java.lang.ClassLoader[] loaders)
ChainedClassLoader instance.
Equivalent to ChainedClassLoader(ClassLoader[], ClassLoader) with the parent class loader initialized to
the AppClassLoader (practically the system bundle class loader).
Note that the AppClassLoader can be different then the ClassLoader.getSystemClassLoader(), used by
ChainedClassLoader(ClassLoader[], ClassLoader) if no parent is specified.loaders - array of non-null class loaderspublic ChainedClassLoader(java.lang.ClassLoader[] loaders,
java.lang.ClassLoader parent)
ChainedClassLoader instance.loaders - array of non-null class loadersparent - parent class loader (can be null)public java.net.URL getResource(java.lang.String name)
getResource in class java.lang.ClassLoaderprivate java.net.URL doGetResource(java.lang.String name)
private java.net.URL doGetResource(java.lang.String name,
java.util.List<java.lang.ClassLoader> classLoaders)
public java.lang.Class<?> loadClass(java.lang.String name)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionprivate java.lang.Class<?> doLoadClass(java.lang.String name)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionprivate java.lang.Class<?> doLoadClass(java.lang.String name,
java.util.List<java.lang.ClassLoader> classLoaders)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionpublic void addClassLoader(java.lang.Class<?> clazz)
clazz - public void addClassLoader(java.lang.ClassLoader classLoader)
classLoader - class loader to load classes fromprivate boolean addNonOsgiLoader(java.lang.ClassLoader classLoader)
classLoader - private void addOsgiLoader(java.lang.ClassLoader classLoader)