bsh.classpath
Class BshClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by bsh.classpath.BshClassLoader
Direct Known Subclasses:
DiscreteFilesClassLoader

public class BshClassLoader
extends URLClassLoader

One of the things BshClassLoader does is to address a deficiency in URLClassLoader that prevents us from specifying individual classes via URLs.


Constructor Summary
protected BshClassLoader(BshClassManager classManager)
          For use by children
  BshClassLoader(BshClassManager classManager, BshClassPath bcp)
           
  BshClassLoader(BshClassManager classManager, URL[] bases)
           
 
Method Summary
 void addURL(URL url)
           
protected  Class findClass(String name)
          Find the correct source for the class...
 Class loadClass(String name, boolean resolve)
          This modification allows us to reload classes which are in the Java VM user classpath.
 
Methods inherited from class java.net.URLClassLoader
definePackage, findResource, findResources, 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, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BshClassLoader

public BshClassLoader(BshClassManager classManager,
                      URL[] bases)
Parameters:
bases - URLs JARClassLoader seems to require absolute paths

BshClassLoader

public BshClassLoader(BshClassManager classManager,
                      BshClassPath bcp)
Parameters:
bases - URLs JARClassLoader seems to require absolute paths

BshClassLoader

protected BshClassLoader(BshClassManager classManager)
For use by children

Parameters:
bases - URLs JARClassLoader seems to require absolute paths
Method Detail

addURL

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

loadClass

public Class loadClass(String name,
                       boolean resolve)
                throws ClassNotFoundException
This modification allows us to reload classes which are in the Java VM user classpath. We search first rather than delegate to the parent classloader (or bootstrap path) first. An exception is for BeanShell core classes which are always loaded from the same classloader as the interpreter.

Overrides:
loadClass in class ClassLoader
Throws:
ClassNotFoundException

findClass

protected Class findClass(String name)
                   throws ClassNotFoundException
Find the correct source for the class... Try designated loader if any Try our URLClassLoader paths if any Try base loader if any Try system ???

Overrides:
findClass in class URLClassLoader
Throws:
ClassNotFoundException


? 2000-2005 pat@pat.net :-)