ccs.loader
Class DiagURLClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by ccs.loader.DiagURLClassLoader

public class DiagURLClassLoader
extends java.net.URLClassLoader

A URLClassLoader with extra methods to help diagnose classloading-related bugs. (These tend to be obscure).


Constructor Summary
DiagURLClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, java.lang.String loaderID)
          A DiagURLClassLoader loading from the supplied URLs.
DiagURLClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, java.net.URLStreamHandlerFactory factory, java.lang.String loaderID)
          A DiagURLClassLoader loading from the supplied URLs.
DiagURLClassLoader(java.net.URL[] urls, java.lang.String loaderID)
          A DiagURLClassLoader loading from the supplied URLs.
 
Method Summary
protected  java.lang.Class<?> findClass(java.lang.String name)
           
static DiagURLClassLoader getInstance(java.lang.String[] jarnames, java.lang.ClassLoader parent, java.lang.String loaderID)
          Create a DiagURLClassLoader based on JAR filenames.
 java.lang.String toString()
           
 
Methods inherited from class java.net.URLClassLoader
addURL, 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, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DiagURLClassLoader

public DiagURLClassLoader(java.net.URL[] urls,
                          java.lang.String loaderID)
A DiagURLClassLoader loading from the supplied URLs.

Parameters:
urls - The URLs pointing to JARs to use.
loaderID - A meaningful ID for this Classloader. This is used to generate diagnostic messages.

DiagURLClassLoader

public DiagURLClassLoader(java.net.URL[] urls,
                          java.lang.ClassLoader parent,
                          java.lang.String loaderID)
A DiagURLClassLoader loading from the supplied URLs.

Parameters:
urls - The URLs pointing to JARs to use.
parent - The delegation parent.
loaderID - A meaningful ID for this Classloader. This is used to generate diagnostic messages.

DiagURLClassLoader

public DiagURLClassLoader(java.net.URL[] urls,
                          java.lang.ClassLoader parent,
                          java.net.URLStreamHandlerFactory factory,
                          java.lang.String loaderID)
A DiagURLClassLoader loading from the supplied URLs.

Parameters:
urls - The URLs pointing to JARs to use.
parent - The delegation parent.
factory - The URLStreamHandlerFactory to when resolving URLs
loaderID - A meaningful ID for this Classloader. This is used to generate diagnostic messages.
Method Detail

toString

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

findClass

protected java.lang.Class<?> findClass(java.lang.String name)
                                throws java.lang.ClassNotFoundException
Overrides:
findClass in class java.net.URLClassLoader
Throws:
java.lang.ClassNotFoundException

getInstance

public static DiagURLClassLoader getInstance(java.lang.String[] jarnames,
                                             java.lang.ClassLoader parent,
                                             java.lang.String loaderID)
                                      throws java.io.IOException
Create a DiagURLClassLoader based on JAR filenames.

Parameters:
jarnames - The filenames of the JARs, located in ~cpoint/lib
parent - The delegation parent
loaderID - A meaningful ID for this Classloader. This is used to generate diagnostic messages.
Returns:
The classloader.
Throws:
java.io.IOException - Only on a technicality; should never happen.