Package com.sun.enterprise.module.impl
Class ClassLoaderProxy
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- com.sun.enterprise.module.impl.ClassLoaderProxy
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
ModuleClassLoader
public class ClassLoaderProxy extends java.net.URLClassLoader
ClassLoaderProxy capable of loading classes from itself but also from other class loaders
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<ClassLoaderFacade>
facadeSurrogates
private java.util.List<java.lang.ClassLoader>
surrogates
-
Constructor Summary
Constructors Constructor Description ClassLoaderProxy(java.net.URL[] shared, java.lang.ClassLoader parent)
Creates a new instance of ClassLoader
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDelegate(java.lang.ClassLoader cl)
void
addURL(java.net.URL url)
Appends the specified URL to the list of URLs to search for classes and resources.protected void
finalize()
protected java.lang.Class<?>
findClass(java.lang.String name)
protected java.lang.Class<?>
findClass(java.lang.String name, boolean followImports)
(package private) java.lang.Class
findClassDirect(java.lang.String name)
findClass(String)
except the classloader punch-in hack.java.net.URL
findResource(java.lang.String name)
java.net.URL
findResourceDirect(java.lang.String name)
Works likefindResource(String)
but only looks at this module, without delegating to ancestors.java.util.Enumeration<java.net.URL>
findResources(java.lang.String name)
java.util.Collection<java.lang.ClassLoader>
getDelegates()
protected java.lang.Class<?>
loadClass(java.lang.String name, boolean resolve, boolean followImports)
void
removeDelegate(java.lang.ClassLoader cl)
void
stop()
called by the facade class loader when it is garbage collected.java.lang.String
toString()
-
Methods inherited from class java.net.URLClassLoader
close, definePackage, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Field Detail
-
surrogates
private final java.util.List<java.lang.ClassLoader> surrogates
-
facadeSurrogates
private final java.util.List<ClassLoaderFacade> facadeSurrogates
-
-
Method Detail
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve, boolean followImports) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
findClass
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException
- Overrides:
findClass
in classjava.net.URLClassLoader
- Throws:
java.lang.ClassNotFoundException
-
findClass
protected java.lang.Class<?> findClass(java.lang.String name, boolean followImports) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
findClassDirect
java.lang.Class findClassDirect(java.lang.String name) throws java.lang.ClassNotFoundException
findClass(String)
except the classloader punch-in hack.- Throws:
java.lang.ClassNotFoundException
-
findResource
public java.net.URL findResource(java.lang.String name)
- Overrides:
findResource
in classjava.net.URLClassLoader
-
findResourceDirect
public java.net.URL findResourceDirect(java.lang.String name)
Works likefindResource(String)
but only looks at this module, without delegating to ancestors.
-
findResources
public java.util.Enumeration<java.net.URL> findResources(java.lang.String name) throws java.io.IOException
- Overrides:
findResources
in classjava.net.URLClassLoader
- Throws:
java.io.IOException
-
addDelegate
public void addDelegate(java.lang.ClassLoader cl)
-
removeDelegate
public void removeDelegate(java.lang.ClassLoader cl)
-
getDelegates
public java.util.Collection<java.lang.ClassLoader> getDelegates()
-
stop
public void stop()
called by the facade class loader when it is garbage collected. this is a good time to see if this module should be unloaded.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
addURL
public void addURL(java.net.URL url)
Appends the specified URL to the list of URLs to search for classes and resources.- Overrides:
addURL
in classjava.net.URLClassLoader
- Parameters:
url
- the url to append
-
-