Package jadex.platform.service.library
Class DelegationURLClassLoader
- java.lang.Object
- 
- java.lang.ClassLoader
- 
- java.security.SecureClassLoader
- 
- java.net.URLClassLoader
- 
- jadex.platform.service.library.DelegationURLClassLoader
 
 
 
 
- 
- All Implemented Interfaces:
- java.io.Closeable,- java.lang.AutoCloseable
 
 public class DelegationURLClassLoader extends java.net.URLClassLoaderThe delegation url classloader is responsible for managing a own resource plus a set of fixed delegate loaders.
- 
- 
Field SummaryFields Modifier and Type Field Description protected java.lang.ClassLoaderbaseclThe base class loader.protected java.util.List<DelegationURLClassLoader>delegatesThe delegation classloader.protected java.util.Set<DelegationURLClassLoader>dependenciesThe flattened transitive dependencies without duplicates (created lazy from delegates list).protected java.util.List<DelegationURLClassLoader>parentsThe parent classloaders (i.e.protected IResourceIdentifierridThe resource identifier.
 - 
Constructor SummaryConstructors Constructor Description DelegationURLClassLoader(IResourceIdentifier rid, java.net.URL url, java.lang.ClassLoader basecl, DelegationURLClassLoader[] delegates)Create a new classloader.DelegationURLClassLoader(java.lang.ClassLoader basecl, DelegationURLClassLoader[] delegates)Create a new classloader.
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddDelegateClassLoader(DelegationURLClassLoader classloader)Add a new delegate loader.booleanaddParentClassLoader(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.URLfindDirectResource(java.lang.String name)Find the resource.protected java.util.Enumeration<java.net.URL>findDirectResources(java.lang.String name)Find the resource.java.net.URLfindResource(java.lang.String name)Find the resource.java.util.Enumeration<java.net.URL>findResources(java.lang.String name)Find the resource.static voidgetAllParentLoaders(java.lang.ClassLoader cl, java.util.Set<java.lang.ClassLoader> cls)java.util.Set<IResourceIdentifier>getAllResourceIdentifiers()Get all managed resource identifiers inlcuding all subdependencies.java.util.Set<java.net.URL>getALLURLs()Get transitive dependencies as flattened set (without duplicates).protected java.lang.ClassLoadergetBaseClassLoader()DelegationURLClassLoader[]getDelegateClassLoaders()Get the delegates.java.util.List<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.IResourceIdentifiergetResourceIdentifier()Get the resource identifier.java.net.URLgetURL()Get the own url.booleanhasParentClassLoader()Test if has parent classloader.booleanisClassLoaderCompatible(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 loaderbooleanremoveDelegateClassLoader(DelegationURLClassLoader classloader)Remove a new delegate loader.booleanremoveParentClassLoader(DelegationURLClassLoader parent)Remove a parent classloader.voidsetResourceIdentifier(IResourceIdentifier rid)Set the rid.java.lang.StringtoString()Get a string representation.- 
Methods inherited from class java.net.URLClassLoaderaddURL, close, definePackage, findClass, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
 - 
Methods inherited from class java.lang.ClassLoaderclearAssertionStatus, 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, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
- 
 
- 
- 
- 
Field Detail- 
ridprotected IResourceIdentifier rid The resource identifier.
 - 
baseclprotected java.lang.ClassLoader basecl The base class loader.
 - 
delegatesprotected java.util.List<DelegationURLClassLoader> delegates The delegation classloader.
 - 
parentsprotected java.util.List<DelegationURLClassLoader> parents The parent classloaders (i.e. the support).
 - 
dependenciesprotected volatile java.util.Set<DelegationURLClassLoader> dependencies The flattened transitive dependencies without duplicates (created lazy from delegates list).
 
- 
 - 
Constructor Detail- 
DelegationURLClassLoaderpublic DelegationURLClassLoader(java.lang.ClassLoader basecl, DelegationURLClassLoader[] delegates)Create a new classloader.
 - 
DelegationURLClassLoaderpublic DelegationURLClassLoader(IResourceIdentifier rid, java.net.URL url, java.lang.ClassLoader basecl, DelegationURLClassLoader[] delegates) Create a new classloader.
 
- 
 - 
Method Detail- 
getDelegateResourceIdentifierspublic java.util.List<IResourceIdentifier> getDelegateResourceIdentifiers() Get the delegates.- Returns:
- The delegates.
 
 - 
getDelegateClassLoaderspublic DelegationURLClassLoader[] getDelegateClassLoaders() Get the delegates.- Returns:
- The delegates.
 
 - 
addDelegateClassLoaderpublic boolean addDelegateClassLoader(DelegationURLClassLoader classloader) Add a new delegate loader.- Parameters:
- classloader- The delegate classloader.
 
 - 
removeDelegateClassLoaderpublic boolean removeDelegateClassLoader(DelegationURLClassLoader classloader) Remove a new delegate loader.- Parameters:
- classloader- The delegate classloader.
- Returns:
- True, if classloader was removed.
 
 - 
addParentClassLoaderpublic boolean addParentClassLoader(DelegationURLClassLoader parent) Add a parent loader.- Parameters:
- classloader- The parent loader.
 
 - 
removeParentClassLoaderpublic boolean removeParentClassLoader(DelegationURLClassLoader parent) Remove a parent classloader.
 - 
hasParentClassLoaderpublic boolean hasParentClassLoader() Test if has parent classloader.
 - 
getParentClassLoaderspublic java.util.List<DelegationURLClassLoader> getParentClassLoaders() Get the parent class loaders.
 - 
getFlattenedDependenciespublic java.util.Set<DelegationURLClassLoader> getFlattenedDependencies() Get transitive dependencies as flattened set (without duplicates).
 - 
getALLURLspublic java.util.Set<java.net.URL> getALLURLs() Get transitive dependencies as flattened set (without duplicates).
 - 
computeFlattenedDependenciespublic static java.util.Set<DelegationURLClassLoader> computeFlattenedDependencies(java.util.List<DelegationURLClassLoader> deps) Get transitive dependencies as flattened set (without duplicates).
 - 
getDelegatespublic java.util.List<DelegationURLClassLoader> getDelegates() Get the delegates.
 - 
getURLpublic java.net.URL getURL() Get the own url.
 - 
getResourceIdentifierpublic IResourceIdentifier getResourceIdentifier() Get the resource identifier.- Returns:
- The resource identifier.
 
 - 
setResourceIdentifierpublic void setResourceIdentifier(IResourceIdentifier rid) Set the rid.- Parameters:
- rid- The rid to set.
 
 - 
getAllResourceIdentifierspublic java.util.Set<IResourceIdentifier> getAllResourceIdentifiers() Get all managed resource identifiers inlcuding all subdependencies.- Returns:
- The resource identifiers.
 
 - 
loadDirectClassprotected java.lang.Class<?> loadDirectClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundExceptionLoad a class directly, without delegation to dependencies or base class loader- Throws:
- java.lang.ClassNotFoundException
 
 - 
loadClassprotected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundExceptionLoad class. Overridden to delegate to dependencies, if not found.- Overrides:
- loadClassin class- java.lang.ClassLoader
- Throws:
- java.lang.ClassNotFoundException
 
 - 
findDirectResourceprotected java.net.URL findDirectResource(java.lang.String name) Find the resource.- Parameters:
- name- The name.
- Returns:
- The url.
 
 - 
findResourcepublic java.net.URL findResource(java.lang.String name) Find the resource.- Overrides:
- findResourcein class- java.net.URLClassLoader
- Parameters:
- name- The name.
- Returns:
- The url.
 
 - 
getBaseClassLoaderprotected java.lang.ClassLoader getBaseClassLoader() 
 - 
findDirectResourcesprotected java.util.Enumeration<java.net.URL> findDirectResources(java.lang.String name) throws java.io.IOExceptionFind the resource.- Parameters:
- name- The name.
- Returns:
- The url.
- Throws:
- java.io.IOException
 
 - 
findResourcespublic java.util.Enumeration<java.net.URL> findResources(java.lang.String name) throws java.io.IOExceptionFind the resource.- Overrides:
- findResourcesin class- java.net.URLClassLoader
- Parameters:
- name- The name.
- Returns:
- The url.
- Throws:
- java.io.IOException
 
 - 
isClassLoaderCompatiblepublic boolean isClassLoaderCompatible(java.lang.Class<?> clazz) 
 - 
getAllParentLoaderspublic static void getAllParentLoaders(java.lang.ClassLoader cl, java.util.Set<java.lang.ClassLoader> cls)
 - 
toStringpublic java.lang.String toString() Get a string representation.- Overrides:
- toStringin class- java.lang.Object
 
 
- 
 
-