Package org.codehaus.classworlds
Class DefaultClassRealm
- java.lang.Object
-
- org.codehaus.classworlds.DefaultClassRealm
-
- All Implemented Interfaces:
ClassRealm
public class DefaultClassRealm extends java.lang.Object implements ClassRealm
Implementation ofClassRealm
. The realm is the class loading gateway. The search is proceded as follows:- Search the parent class loader (passed via the constructor) if there is one.
- Search the imports.
- Search this realm's constituents.
- Search the parent realm.
- Version:
- $Id: DefaultClassRealm.java 126 2006-01-12 04:17:51Z $
- Author:
- bob mcwhirter, Jason van Zyl
-
-
Field Summary
Fields Modifier and Type Field Description private RealmClassLoader
classLoader
private java.lang.ClassLoader
foreignClassLoader
private java.lang.String
id
private java.util.TreeSet
imports
private ClassRealm
parent
private ClassWorld
world
-
Constructor Summary
Constructors Constructor Description DefaultClassRealm(ClassWorld world, java.lang.String id)
DefaultClassRealm(ClassWorld world, java.lang.String id, java.lang.ClassLoader foreignClassLoader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addConstituent(java.lang.String constituent, byte[] b)
Adds a byte[] class definition as a constituent for locating classes.void
addConstituent(java.net.URL constituent)
ClassRealm
createChildRealm(java.lang.String id)
void
display()
java.util.Enumeration
findResources(java.lang.String name)
java.lang.ClassLoader
getClassLoader()
java.net.URL[]
getConstituents()
java.lang.String
getId()
ClassRealm
getParent()
java.net.URL
getResource(java.lang.String name)
java.io.InputStream
getResourceAsStream(java.lang.String name)
ClassWorld
getWorld()
void
importFrom(java.lang.String realmId, java.lang.String packageName)
java.lang.Class
loadClass(java.lang.String name)
ClassRealm
locateSourceRealm(java.lang.String classname)
void
setParent(ClassRealm parent)
private void
showUrls(ClassRealm classRealm)
-
-
-
Field Detail
-
world
private ClassWorld world
-
id
private java.lang.String id
-
imports
private java.util.TreeSet imports
-
foreignClassLoader
private java.lang.ClassLoader foreignClassLoader
-
classLoader
private RealmClassLoader classLoader
-
parent
private ClassRealm parent
-
-
Constructor Detail
-
DefaultClassRealm
public DefaultClassRealm(ClassWorld world, java.lang.String id)
-
DefaultClassRealm
public DefaultClassRealm(ClassWorld world, java.lang.String id, java.lang.ClassLoader foreignClassLoader)
-
-
Method Detail
-
getConstituents
public java.net.URL[] getConstituents()
- Specified by:
getConstituents
in interfaceClassRealm
-
getParent
public ClassRealm getParent()
- Specified by:
getParent
in interfaceClassRealm
-
setParent
public void setParent(ClassRealm parent)
- Specified by:
setParent
in interfaceClassRealm
-
getId
public java.lang.String getId()
- Specified by:
getId
in interfaceClassRealm
-
getWorld
public ClassWorld getWorld()
- Specified by:
getWorld
in interfaceClassRealm
-
importFrom
public void importFrom(java.lang.String realmId, java.lang.String packageName) throws NoSuchRealmException
- Specified by:
importFrom
in interfaceClassRealm
- Throws:
NoSuchRealmException
-
addConstituent
public void addConstituent(java.net.URL constituent)
- Specified by:
addConstituent
in interfaceClassRealm
-
addConstituent
public void addConstituent(java.lang.String constituent, byte[] b) throws java.lang.ClassNotFoundException
Adds a byte[] class definition as a constituent for locating classes. Currently uses BytesURLStreamHandler to hold a reference of the byte[] in memory. This ensures we have a unifed URL resource model for all constituents. The code to cache to disk is commented out - maybe a property to choose which method?- Parameters:
constituent
- class nameb
- the class definition as a byte[]- Throws:
java.lang.ClassNotFoundException
-
locateSourceRealm
public ClassRealm locateSourceRealm(java.lang.String classname)
- Specified by:
locateSourceRealm
in interfaceClassRealm
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
- Specified by:
getClassLoader
in interfaceClassRealm
-
createChildRealm
public ClassRealm createChildRealm(java.lang.String id) throws DuplicateRealmException
- Specified by:
createChildRealm
in interfaceClassRealm
- Throws:
DuplicateRealmException
-
loadClass
public java.lang.Class loadClass(java.lang.String name) throws java.lang.ClassNotFoundException
- Specified by:
loadClass
in interfaceClassRealm
- Throws:
java.lang.ClassNotFoundException
-
getResource
public java.net.URL getResource(java.lang.String name)
- Specified by:
getResource
in interfaceClassRealm
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
- Specified by:
getResourceAsStream
in interfaceClassRealm
-
findResources
public java.util.Enumeration findResources(java.lang.String name) throws java.io.IOException
- Specified by:
findResources
in interfaceClassRealm
- Throws:
java.io.IOException
-
display
public void display()
- Specified by:
display
in interfaceClassRealm
-
showUrls
private void showUrls(ClassRealm classRealm)
-
-