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, newInstance
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
private 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
NoSuchRealmException
public 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
DuplicateRealmException
public void addURL(java.net.URL url)
addURL
in class java.net.URLClassLoader
public java.lang.Class<?> loadClass(java.lang.String name) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
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
private java.lang.Class<?> unsynchronizedLoadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException
findClass
in class java.net.URLClassLoader
java.lang.ClassNotFoundException
public java.net.URL getResource(java.lang.String name)
getResource
in class java.lang.ClassLoader
public java.net.URL findResource(java.lang.String name)
findResource
in class java.net.URLClassLoader
public java.util.Enumeration<java.net.URL> getResources(java.lang.String name) throws java.io.IOException
getResources
in class java.lang.ClassLoader
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
java.io.IOException
public 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.Object
public 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.ClassLoader
public 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)