JSPservletPkg
Class ClassPathLoader

java.lang.Object
  |
  +--java.lang.ClassLoader
        |
        +--JSPservletPkg.ClassPathLoader

public class ClassPathLoader
extends java.lang.ClassLoader

Class loader for classes included on ClassPath.

Copyright (c) 2000-2001

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; version 2
 of the License.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 

Version:
1, 0, 4
Author:
Alexis Grandemange

Inner Class Summary
(package private)  class ClassPathLoader.ResourceEntry
          resources value - maintains a buffer containing the resource and a lastModified time.
 
Inner classes inherited from class java.lang.ClassLoader
java.lang.ClassLoader.NativeLibrary
 
Field Summary
private  java.util.Hashtable cache
          Servlet object table.
(package private)  java.util.HashMap classBufs
          Binary warehouse.
(package private)  java.util.HashMap classes
          classPath classes. Key: class name. Value: class.
 JSPhandler handler
          Calling JSPhandler.
(package private)  java.lang.ClassLoader parent
          parent class loader.
(package private)  java.util.HashMap resources
          classPath resources. Key: class name. Value: ResourceEntry.
(package private)  java.util.HashMap undefClasses
          Classes whose creation failed (should be patches). Key: class name. Value: class.
(package private)  java.lang.String URI
          URI that triggered the creation of the instance.
(package private)  java.lang.String URIRealPath
          Path of URI.
 
Fields inherited from class java.lang.ClassLoader
bootstrapClassPath, classes, defaultDomain, defaultPermissions, getClassLoaderPerm, initialized, loadedLibraryNames, nativeLibraries, nativeLibraryContext, packages, parent, scl, sclSet, sys_paths, systemNativeLibraries, usr_paths
 
Constructor Summary
ClassPathLoader(JSPhandler jh, java.lang.String URI, java.lang.String URIRealPath)
          Creates classes stored in classPath and stores them in classes.
 
Method Summary
(package private)  JSPservletPkg.Servlet cacheGet(java.lang.String className)
          Returns a servlet instance.
(package private)  void cachePut(java.lang.String className, JSPservletPkg.Servlet servlet)
          Stores a servlet instance.
(package private)  long getLastModified(java.lang.String name)
          Returns resource archive last modified.
 java.net.URL getResource(java.lang.String name)
          Returns an URL served by JSPservlet.
 java.io.InputStream getResourceAsStream(java.lang.String name)
          Externally called method.
 java.io.InputStream getResourceAsStreamFromArchive(java.lang.String name)
          Invoked by InputSource in case of Cocoon.
 java.lang.Class loadClass(java.lang.String name, boolean resolve)
          Called by JSPloader.
private  void loadClassData(java.lang.String jarPath)
          Creates classes stored in jarPath archive and stores them in classes.
 
Methods inherited from class java.lang.ClassLoader
, addClass, check, defineClass, defineClass, defineClass, defineClass0, definePackage, findBootstrapClass, findClass, findLibrary, findLoadedClass, findNative, findResource, findResources, findSystemClass, getBootstrapClassPath, getBootstrapResource, getBootstrapResources, getCallerClassLoader, getDefaultDomain, getGetClassLoaderPerm, getPackage, getPackages, getParent, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, initializePath, isAncestor, loadClass, loadLibrary, loadLibrary0, resolveClass, resolveClass0, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

handler

public JSPhandler handler
Calling JSPhandler.

parent

java.lang.ClassLoader parent
parent class loader.

classes

java.util.HashMap classes
classPath classes.

undefClasses

java.util.HashMap undefClasses
Classes whose creation failed (should be patches).

classBufs

java.util.HashMap classBufs
Binary warehouse. Used for one archive.

resources

java.util.HashMap resources
classPath resources.

URI

java.lang.String URI
URI that triggered the creation of the instance.

URIRealPath

java.lang.String URIRealPath
Path of URI. Used by getResourceAsStreamFromArchive.

cache

private java.util.Hashtable cache
Servlet object table. Must be synchronized -> Hashtable. Key: class name. Value: servlet object.
Constructor Detail

ClassPathLoader

public ClassPathLoader(JSPhandler jh,
                       java.lang.String URI,
                       java.lang.String URIRealPath)
Creates classes stored in classPath and stores them in classes.
Parameters:
jh - calling JSPhandler.
Method Detail

loadClassData

private void loadClassData(java.lang.String jarPath)
Creates classes stored in jarPath archive and stores them in classes.
Parameters:
jarPath - archive path.

loadClass

public java.lang.Class loadClass(java.lang.String name,
                                 boolean resolve)
                          throws java.lang.ClassNotFoundException
Called by JSPloader.
Parameters:
name - name of the class to load.
resolve - if the class must be resolved.
Returns:
Class
Overrides:
loadClass in class java.lang.ClassLoader

getResourceAsStream

public java.io.InputStream getResourceAsStream(java.lang.String name)
Externally called method. Also called by JSPloader. In the latter case, it is normal to not find a resource. Note that it is not called in privileged code. So it is better avoiding logging.
Parameters:
name - name of the resource to stream.
Returns:
InputStream
Overrides:
getResourceAsStream in class java.lang.ClassLoader

getResource

public java.net.URL getResource(java.lang.String name)
Returns an URL served by JSPservlet.
Parameters:
name - resource name.
Overrides:
getResource in class java.lang.ClassLoader

getLastModified

long getLastModified(java.lang.String name)
Returns resource archive last modified.
Parameters:
name - resource name.

getResourceAsStreamFromArchive

public java.io.InputStream getResourceAsStreamFromArchive(java.lang.String name)
Invoked by InputSource in case of Cocoon. Finds the right JSPloader and returns the resource from it.
Parameters:
name - name of the resource to stream.
Returns:
InputStream

cacheGet

final JSPservletPkg.Servlet cacheGet(java.lang.String className)
Returns a servlet instance.
Parameters:
className - servlet class name.

cachePut

final void cachePut(java.lang.String className,
                    JSPservletPkg.Servlet servlet)
Stores a servlet instance.
Parameters:
className - servlet class name.
className - servlet class name.