org.mortbay.jetty.webapp
Class WebAppClassLoader

java.lang.Object
  extended byjava.lang.ClassLoader
      extended byjava.security.SecureClassLoader
          extended byjava.net.URLClassLoader
              extended byorg.mortbay.jetty.webapp.WebAppClassLoader

public class WebAppClassLoader
extends URLClassLoader

ClassLoader for HttpContext. Specializes URLClassLoader with some utility and file mapping methods. This loader defaults to the 2.3 servlet spec behaviour where non system classes are loaded from the classpath in preference to the parent loader. Java2 compliant loading, where the parent loader always has priority, can be selected with the WebAppContext.setParentLoaderPriority(boolean) method.

Author:
Greg Wilkins (gregw)

Constructor Summary
WebAppClassLoader(ClassLoader parent, WebAppContext context)
          Constructor.
 
Method Summary
 void addClassPath(String classPath)
           
 void addJars(Resource lib)
          Add elements to the class path for the context from the jar and zip files found in the specified resource.
 void destroy()
           
 PermissionCollection getPermissions(CodeSource cs)
           
 URL getResource(String name)
           
 String getUrlClassPath()
           
 boolean isServerPath(String name)
           
 boolean isSystemPath(String name)
           
 Class loadClass(String name)
           
protected  Class loadClass(String name, boolean resolve)
           
 String toString()
           
 
Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, findResource, findResources, getURLs, newInstance, newInstance
 
Methods inherited from class java.security.SecureClassLoader
defineClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WebAppClassLoader

public WebAppClassLoader(ClassLoader parent,
                         WebAppContext context)
Constructor.

Method Detail

addClassPath

public void addClassPath(String classPath)
                  throws IOException
Parameters:
classPath - Comma or semicolon separated path of filenames or URLs pointing to directories or jar files. Directories should end with '/'.
Throws:
IOException

addJars

public void addJars(Resource lib)
Add elements to the class path for the context from the jar and zip files found in the specified resource.

Parameters:
lib - the resource that contains the jar and/or zip files.
See Also:
#setClassPath(String)

destroy

public void destroy()

getPermissions

public PermissionCollection getPermissions(CodeSource cs)

getResource

public URL getResource(String name)

getUrlClassPath

public String getUrlClassPath()
Returns:
Returns the urlClassPath.

isServerPath

public boolean isServerPath(String name)

isSystemPath

public boolean isSystemPath(String name)

loadClass

public Class loadClass(String name)
                throws ClassNotFoundException
Throws:
ClassNotFoundException

loadClass

protected Class loadClass(String name,
                          boolean resolve)
                   throws ClassNotFoundException
Throws:
ClassNotFoundException

toString

public String toString()