org.codehaus.plexus.classworlds.realm
Class ClassRealm

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by org.codehaus.plexus.classworlds.realm.ClassRealm

public class ClassRealm
extends java.net.URLClassLoader

Implementation of ClassRealm. The realm is the class loading gateway. The search is proceded as follows:

  1. Search the parent class loader (passed via the constructor) if there is one.
  2. Search the imports.
  3. Search this realm's constituents.
  4. Search the parent realm.

Version:
$Id: ClassRealm.java 6700 2007-07-28 21:56:53Z jvanzyl $
Author:
bob mcwhirter, Jason van Zyl

Field Summary
private  java.lang.String id
           
private  java.util.TreeSet imports
           
private  ClassRealm parent
           
private  Strategy strategy
           
private  ClassWorld world
           
 
Constructor Summary
ClassRealm(ClassWorld world, java.lang.String id)
           
ClassRealm(ClassWorld world, java.lang.String id, java.lang.ClassLoader foreignClassLoader)
           
 
Method Summary
 void addURL(java.net.URL url)
           
 ClassRealm createChildRealm(java.lang.String id)
           
 void display()
           
 boolean equals(java.lang.Object o)
           
 java.util.Enumeration findRealmResources(java.lang.String name)
           
 java.util.Enumeration findResources(java.lang.String name)
           
 java.lang.String getId()
           
 ClassRealm getParentRealm()
           
 java.net.URL getRealmResource(java.lang.String name)
           
 java.io.InputStream getRealmResourceAsStream(java.lang.String name)
           
 java.net.URL getResource(java.lang.String name)
           
 java.io.InputStream getResourceAsStream(java.lang.String name)
           
 Strategy getStrategy()
           
 ClassWorld getWorld()
           
 void importFrom(java.lang.String realmId, java.lang.String packageName)
           
 java.lang.Class loadClass(java.lang.String name)
           
 java.lang.Class loadRealmClass(java.lang.String name)
           
 ClassRealm locateSourceRealm(java.lang.String classname)
           
 void setParentRealm(ClassRealm realm)
           
private  void showUrls(ClassRealm classRealm)
           
 java.lang.String toString()
           
 
Methods inherited from class java.net.URLClassLoader
definePackage, findClass, findResource, getPermissions, getURLs, newInstance, newInstance
 
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

world

private ClassWorld world

id

private java.lang.String id

imports

private java.util.TreeSet imports

strategy

private Strategy strategy

parent

private ClassRealm parent
Constructor Detail

ClassRealm

public ClassRealm(ClassWorld world,
                  java.lang.String id)

ClassRealm

public ClassRealm(ClassWorld world,
                  java.lang.String id,
                  java.lang.ClassLoader foreignClassLoader)
Method Detail

getId

public java.lang.String getId()

getWorld

public ClassWorld getWorld()

importFrom

public void importFrom(java.lang.String realmId,
                       java.lang.String packageName)
                throws NoSuchRealmException
Throws:
NoSuchRealmException

locateSourceRealm

public ClassRealm locateSourceRealm(java.lang.String classname)

getStrategy

public Strategy getStrategy()

setParentRealm

public void setParentRealm(ClassRealm realm)

getParentRealm

public ClassRealm getParentRealm()

createChildRealm

public ClassRealm createChildRealm(java.lang.String id)
                            throws DuplicateRealmException
Throws:
DuplicateRealmException

addURL

public void addURL(java.net.URL url)
Overrides:
addURL in class java.net.URLClassLoader

loadRealmClass

public java.lang.Class loadRealmClass(java.lang.String name)
                               throws java.lang.ClassNotFoundException
Throws:
java.lang.ClassNotFoundException

getRealmResource

public java.net.URL getRealmResource(java.lang.String name)

getRealmResourceAsStream

public java.io.InputStream getRealmResourceAsStream(java.lang.String name)

findRealmResources

public java.util.Enumeration findRealmResources(java.lang.String name)
                                         throws java.io.IOException
Throws:
java.io.IOException

loadClass

public java.lang.Class loadClass(java.lang.String name)
                          throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

getResource

public java.net.URL getResource(java.lang.String name)
Overrides:
getResource in class java.lang.ClassLoader

getResourceAsStream

public java.io.InputStream getResourceAsStream(java.lang.String name)
Overrides:
getResourceAsStream in class java.lang.ClassLoader

findResources

public java.util.Enumeration findResources(java.lang.String name)
                                    throws java.io.IOException
Overrides:
findResources in class java.net.URLClassLoader
Throws:
java.io.IOException

display

public void display()

showUrls

private void showUrls(ClassRealm classRealm)

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object