winstone.classLoader
Class WebappClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by winstone.classLoader.WebappClassLoader
Direct Known Subclasses:
ReloadingClassLoader

public class WebappClassLoader
extends java.net.URLClassLoader

Implements the servlet spec model (v2.3 section 9.7.2) for classloading, which is different to the standard JDK model in that it delegates *after* checking local repositories. This has the effect of isolating copies of classes that exist in 2 webapps from each other. Thanks to James Berry for the changes to use the system classloader to prevent loading servlet spec or system classpath classes again.

Version:
$Id: WebappClassLoader.java,v 1.3 2007/12/29 03:32:54 rickknowles Exp $
Author:
Rick Knowles

Field Summary
protected  java.lang.ClassLoader system
           
 
Constructor Summary
WebappClassLoader(java.net.URL[] urls)
           
WebappClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent)
           
WebappClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, java.net.URLStreamHandlerFactory factory)
           
 
Method Summary
 java.io.InputStream getResourceAsStream(java.lang.String name)
           
protected  java.lang.Class loadClass(java.lang.String name, boolean resolve)
           
 
Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, 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, 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
 

Field Detail

system

protected java.lang.ClassLoader system
Constructor Detail

WebappClassLoader

public WebappClassLoader(java.net.URL[] urls)

WebappClassLoader

public WebappClassLoader(java.net.URL[] urls,
                         java.lang.ClassLoader parent)

WebappClassLoader

public WebappClassLoader(java.net.URL[] urls,
                         java.lang.ClassLoader parent,
                         java.net.URLStreamHandlerFactory factory)
Method Detail

loadClass

protected java.lang.Class loadClass(java.lang.String name,
                                    boolean resolve)
                             throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

getResourceAsStream

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


Copyright © 2013. All Rights Reserved.