public class DelegationURLClassLoader
extends java.net.URLClassLoader
Modifier and Type | Field and Description |
---|---|
protected java.lang.ClassLoader |
basecl
The base class loader.
|
protected java.util.List<DelegationURLClassLoader> |
delegates
The delegation classloader.
|
protected java.util.Set<DelegationURLClassLoader> |
dependencies
The flattened transitive dependencies without duplicates
(created lazy from delegates list).
|
protected java.util.List<DelegationURLClassLoader> |
parents
The parent classloaders (i.e.
|
protected jadex.bridge.IResourceIdentifier |
rid
The resource identifier.
|
Constructor and Description |
---|
DelegationURLClassLoader(java.lang.ClassLoader basecl,
DelegationURLClassLoader[] delegates)
Create a new classloader.
|
DelegationURLClassLoader(jadex.bridge.IResourceIdentifier rid,
java.net.URL url,
java.lang.ClassLoader basecl,
DelegationURLClassLoader[] delegates)
Create a new classloader.
|
Modifier and Type | Method and Description |
---|---|
boolean |
addDelegateClassLoader(DelegationURLClassLoader classloader)
Add a new delegate loader.
|
boolean |
addParentClassLoader(DelegationURLClassLoader parent)
Add a parent loader.
|
static java.util.Set<DelegationURLClassLoader> |
computeFlattenedDependencies(java.util.List<DelegationURLClassLoader> deps)
Get transitive dependencies as flattened set (without duplicates).
|
protected java.net.URL |
findDirectResource(java.lang.String name)
Find the resource.
|
protected java.util.Enumeration<java.net.URL> |
findDirectResources(java.lang.String name)
Find the resource.
|
java.net.URL |
findResource(java.lang.String name)
Find the resource.
|
java.util.Enumeration<java.net.URL> |
findResources(java.lang.String name)
Find the resource.
|
static void |
getAllParentLoaders(java.lang.ClassLoader cl,
java.util.Set<java.lang.ClassLoader> cls) |
java.util.Set<jadex.bridge.IResourceIdentifier> |
getAllResourceIdentifiers()
Get all managed resource identifiers inlcuding all subdependencies.
|
protected java.lang.ClassLoader |
getBaseClassLoader() |
DelegationURLClassLoader[] |
getDelegateClassLoaders()
Get the delegates.
|
java.util.List<jadex.bridge.IResourceIdentifier> |
getDelegateResourceIdentifiers()
Get the delegates.
|
java.util.List<DelegationURLClassLoader> |
getDelegates()
Get the delegates.
|
java.util.Set<DelegationURLClassLoader> |
getFlattenedDependencies()
Get transitive dependencies as flattened set (without duplicates).
|
java.util.List<DelegationURLClassLoader> |
getParentClassLoaders()
Get the parent class loaders.
|
jadex.bridge.IResourceIdentifier |
getResourceIdentifier()
Get the resource identifier.
|
java.net.URL |
getURL()
Get the own url.
|
boolean |
hasParentClassLoader()
Test if has parent classloader.
|
boolean |
isClassLoaderCompatible(java.lang.Class<?> clazz) |
protected java.lang.Class<?> |
loadClass(java.lang.String name,
boolean resolve)
Load class.
|
protected java.lang.Class<?> |
loadDirectClass(java.lang.String name,
boolean resolve)
Load a class directly, without delegation to dependencies or base class loader
|
boolean |
removeDelegateClassLoader(DelegationURLClassLoader classloader)
Remove a new delegate loader.
|
boolean |
removeParentClassLoader(DelegationURLClassLoader parent)
Remove a parent classloader.
|
void |
setResourceIdentifier(jadex.bridge.IResourceIdentifier rid)
Set the rid.
|
java.lang.String |
toString()
Get a string representation.
|
addURL, close, definePackage, findClass, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
protected jadex.bridge.IResourceIdentifier rid
protected java.lang.ClassLoader basecl
protected java.util.List<DelegationURLClassLoader> delegates
protected java.util.List<DelegationURLClassLoader> parents
protected volatile java.util.Set<DelegationURLClassLoader> dependencies
public DelegationURLClassLoader(java.lang.ClassLoader basecl, DelegationURLClassLoader[] delegates)
public DelegationURLClassLoader(jadex.bridge.IResourceIdentifier rid, java.net.URL url, java.lang.ClassLoader basecl, DelegationURLClassLoader[] delegates)
public java.util.List<jadex.bridge.IResourceIdentifier> getDelegateResourceIdentifiers()
public DelegationURLClassLoader[] getDelegateClassLoaders()
public boolean addDelegateClassLoader(DelegationURLClassLoader classloader)
classloader
- The delegate classloader.public boolean removeDelegateClassLoader(DelegationURLClassLoader classloader)
classloader
- The delegate classloader.public boolean addParentClassLoader(DelegationURLClassLoader parent)
classloader
- The parent loader.public boolean removeParentClassLoader(DelegationURLClassLoader parent)
public boolean hasParentClassLoader()
public java.util.List<DelegationURLClassLoader> getParentClassLoaders()
public java.util.Set<DelegationURLClassLoader> getFlattenedDependencies()
public static java.util.Set<DelegationURLClassLoader> computeFlattenedDependencies(java.util.List<DelegationURLClassLoader> deps)
public java.util.List<DelegationURLClassLoader> getDelegates()
public java.net.URL getURL()
public jadex.bridge.IResourceIdentifier getResourceIdentifier()
public void setResourceIdentifier(jadex.bridge.IResourceIdentifier rid)
rid
- The rid to set.public java.util.Set<jadex.bridge.IResourceIdentifier> getAllResourceIdentifiers()
protected java.lang.Class<?> loadDirectClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
protected java.net.URL findDirectResource(java.lang.String name)
name
- The name.public java.net.URL findResource(java.lang.String name)
findResource
in class java.net.URLClassLoader
name
- The name.protected java.lang.ClassLoader getBaseClassLoader()
protected java.util.Enumeration<java.net.URL> findDirectResources(java.lang.String name) throws java.io.IOException
name
- The name.java.io.IOException
public java.util.Enumeration<java.net.URL> findResources(java.lang.String name) throws java.io.IOException
findResources
in class java.net.URLClassLoader
name
- The name.java.io.IOException
public boolean isClassLoaderCompatible(java.lang.Class<?> clazz)
public static void getAllParentLoaders(java.lang.ClassLoader cl, java.util.Set<java.lang.ClassLoader> cls)
public java.lang.String toString()
toString
in class java.lang.Object