public class ClassRealm
extends java.net.URLClassLoader
| Modifier and Type | Field and Description |
|---|---|
private java.util.SortedSet<Entry> |
foreignImports |
private java.lang.String |
id |
private static boolean |
isParallelCapable |
private java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object> |
lockMap |
private java.lang.ClassLoader |
parentClassLoader |
private java.util.SortedSet<Entry> |
parentImports |
private Strategy |
strategy |
private ClassWorld |
world |
| Constructor and Description |
|---|
ClassRealm(ClassWorld world,
java.lang.String id,
java.lang.ClassLoader baseClassLoader)
Creates a new class realm.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addURL(java.net.URL url) |
ClassRealm |
createChildRealm(java.lang.String id) |
void |
display() |
void |
display(java.io.PrintStream out) |
protected java.lang.Class<?> |
findClass(java.lang.String name) |
java.net.URL |
findResource(java.lang.String name) |
java.util.Enumeration<java.net.URL> |
findResources(java.lang.String name) |
protected java.lang.Object |
getClassLoadingLock(java.lang.String name) |
private java.lang.Object |
getClassRealmLoadingLock(java.lang.String name) |
java.lang.String |
getId() |
java.lang.ClassLoader |
getImportClassLoader(java.lang.String name) |
java.util.Collection<ClassRealm> |
getImportRealms() |
java.lang.ClassLoader |
getParentClassLoader() |
ClassRealm |
getParentRealm() |
java.net.URL |
getResource(java.lang.String name) |
java.util.Enumeration<java.net.URL> |
getResources(java.lang.String name) |
Strategy |
getStrategy() |
ClassWorld |
getWorld() |
void |
importFrom(java.lang.ClassLoader classLoader,
java.lang.String packageName) |
void |
importFrom(java.lang.String realmId,
java.lang.String packageName) |
void |
importFromParent(java.lang.String packageName) |
(package private) boolean |
isImportedFromParent(java.lang.String name) |
java.lang.Class<?> |
loadClass(java.lang.String name) |
protected java.lang.Class<?> |
loadClass(java.lang.String name,
boolean resolve) |
java.lang.Class<?> |
loadClassFromImport(java.lang.String name) |
java.lang.Class<?> |
loadClassFromParent(java.lang.String name) |
java.lang.Class<?> |
loadClassFromSelf(java.lang.String name) |
java.net.URL |
loadResourceFromImport(java.lang.String name) |
java.net.URL |
loadResourceFromParent(java.lang.String name) |
java.net.URL |
loadResourceFromSelf(java.lang.String name) |
java.util.Enumeration<java.net.URL> |
loadResourcesFromImport(java.lang.String name) |
java.util.Enumeration<java.net.URL> |
loadResourcesFromParent(java.lang.String name) |
java.util.Enumeration<java.net.URL> |
loadResourcesFromSelf(java.lang.String name) |
void |
setParentClassLoader(java.lang.ClassLoader parentClassLoader) |
void |
setParentRealm(ClassRealm realm) |
private static void |
showUrls(ClassRealm classRealm,
java.io.PrintStream out) |
java.lang.String |
toString() |
private java.lang.Class<?> |
unsynchronizedLoadClass(java.lang.String name,
boolean resolve) |
close, definePackage, getPermissions, getResourceAsStream, getURLs, newInstance, newInstanceclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignersprivate ClassWorld world
private java.lang.String id
private java.util.SortedSet<Entry> foreignImports
private java.util.SortedSet<Entry> parentImports
private Strategy strategy
private java.lang.ClassLoader parentClassLoader
private static final boolean isParallelCapable
private final java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object> lockMap
public ClassRealm(ClassWorld world, java.lang.String id, java.lang.ClassLoader baseClassLoader)
world - The class world this realm belongs to, must not be null.id - The identifier for this realm, must not be null.baseClassLoader - The base class loader for this realm, may be null to use the bootstrap class
loader.public java.lang.String getId()
public ClassWorld getWorld()
public void importFromParent(java.lang.String packageName)
boolean isImportedFromParent(java.lang.String name)
public void importFrom(java.lang.String realmId,
java.lang.String packageName)
throws NoSuchRealmException
NoSuchRealmExceptionpublic void importFrom(java.lang.ClassLoader classLoader,
java.lang.String packageName)
public java.lang.ClassLoader getImportClassLoader(java.lang.String name)
public java.util.Collection<ClassRealm> getImportRealms()
public Strategy getStrategy()
public void setParentClassLoader(java.lang.ClassLoader parentClassLoader)
public java.lang.ClassLoader getParentClassLoader()
public void setParentRealm(ClassRealm realm)
public ClassRealm getParentRealm()
public ClassRealm createChildRealm(java.lang.String id) throws DuplicateRealmException
DuplicateRealmExceptionpublic void addURL(java.net.URL url)
addURL in class java.net.URLClassLoaderpublic java.lang.Class<?> loadClass(java.lang.String name)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionprotected java.lang.Class<?> loadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionprivate java.lang.Class<?> unsynchronizedLoadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionprotected java.lang.Class<?> findClass(java.lang.String name)
throws java.lang.ClassNotFoundException
findClass in class java.net.URLClassLoaderjava.lang.ClassNotFoundExceptionpublic java.net.URL getResource(java.lang.String name)
getResource in class java.lang.ClassLoaderpublic java.net.URL findResource(java.lang.String name)
findResource in class java.net.URLClassLoaderpublic java.util.Enumeration<java.net.URL> getResources(java.lang.String name)
throws java.io.IOException
getResources in class java.lang.ClassLoaderjava.io.IOExceptionpublic java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
throws java.io.IOException
findResources in class java.net.URLClassLoaderjava.io.IOExceptionpublic void display()
public void display(java.io.PrintStream out)
private static void showUrls(ClassRealm classRealm, java.io.PrintStream out)
public java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.Class<?> loadClassFromImport(java.lang.String name)
public java.lang.Class<?> loadClassFromSelf(java.lang.String name)
private java.lang.Object getClassRealmLoadingLock(java.lang.String name)
protected java.lang.Object getClassLoadingLock(java.lang.String name)
getClassLoadingLock in class java.lang.ClassLoaderpublic java.lang.Class<?> loadClassFromParent(java.lang.String name)
public java.net.URL loadResourceFromImport(java.lang.String name)
public java.net.URL loadResourceFromSelf(java.lang.String name)
public java.net.URL loadResourceFromParent(java.lang.String name)
public java.util.Enumeration<java.net.URL> loadResourcesFromImport(java.lang.String name)
public java.util.Enumeration<java.net.URL> loadResourcesFromSelf(java.lang.String name)
public java.util.Enumeration<java.net.URL> loadResourcesFromParent(java.lang.String name)