org.apache.axis.utils

Class ClassUtils


public final class ClassUtils
extends java.lang.Object

Utility methods for Class Loading.

Authors:
Davanum Srinvas (dims@yahoo.com)
Matthew Pocock (matthew_pocock@yahoo.co.uk)

Method Summary

static ClassLoader
createClassLoader(String classpath, ClassLoader parent)
Creates a new ClassLoader from a classpath specification and a parent class loader.
static Class
forName(String className)
Use this method instead of Class.forName
static Class
forName(String _className, boolean init, ClassLoader _loader)
Use this method instead of Class.forName (String className, boolean init, ClassLoader loader)
static ClassLoader
getClassLoader(String className)
Obtain the ClassLoader (if any) associated with the given className.
static ClassLoader
getDefaultClassLoader()
static InputStream
getResourceAsStream(Class clazz, String resource)
Get an input stream from a named resource.
static InputStream
getResourceAsStream(Class clazz, String resource, boolean checkThreadContextFirst)
Get an input stream from a named resource.
static void
removeClassLoader(String className)
Deregister the ClassLoader for a given className.
static void
setClassLoader(String className, ClassLoader loader)
Set the ClassLoader associated with the given className.
static void
setDefaultClassLoader(ClassLoader loader)
Set the default ClassLoader.

Method Details

createClassLoader

public static ClassLoader createClassLoader(String classpath,
                                            ClassLoader parent)
            throws SecurityException
Creates a new ClassLoader from a classpath specification and a parent class loader. The classpath string will be split using the system path seperator character (e.g. : or ;), just as the java system-wide class path is processed.

Parameters:
classpath - the classpath String
parent - the parent ClassLoader, or null if the default is to be used


forName

public static Class forName(String className)
            throws ClassNotFoundException
Use this method instead of Class.forName

Parameters:
className - Class name

Returns:
java class


forName

public static Class forName(String _className,
                            boolean init,
                            ClassLoader _loader)
            throws ClassNotFoundException
Use this method instead of Class.forName (String className, boolean init, ClassLoader loader)

Parameters:
_className - Class name
init - initialize the class
_loader - class loader

Returns:
java class


getClassLoader

public static ClassLoader getClassLoader(String className)
Obtain the ClassLoader (if any) associated with the given className.

Parameters:
className - the name of a class

Returns:
class loader


getDefaultClassLoader

public static ClassLoader getDefaultClassLoader()


getResourceAsStream

public static InputStream getResourceAsStream(Class clazz,
                                              String resource)
Get an input stream from a named resource. Tries
  1. the classloader that loaded "clazz" first,
  2. the system classloader
  3. the class "clazz" itself

Parameters:
clazz - class to use in the lookups
resource - resource string to look for

Returns:
input stream if found, or null


getResourceAsStream

public static InputStream getResourceAsStream(Class clazz,
                                              String resource,
                                              boolean checkThreadContextFirst)
Get an input stream from a named resource. Tries
  1. the classloader that loaded "clazz" first,
  2. the system classloader
  3. the class "clazz" itself

Parameters:
clazz - class to use in the lookups
resource - resource string to look for
checkThreadContextFirst - check the thread context first?

Returns:
input stream if found, or null


removeClassLoader

public static void removeClassLoader(String className)
Deregister the ClassLoader for a given className.

Parameters:
className - the name of a class


setClassLoader

public static void setClassLoader(String className,
                                  ClassLoader loader)
Set the ClassLoader associated with the given className. If either the class name or the loader are null, no action is performed.

Parameters:
className - the name of a class
loader - the ClassLoader for the class


setDefaultClassLoader

public static void setDefaultClassLoader(ClassLoader loader)
Set the default ClassLoader. If loader is null, the default loader is not changed.

Parameters:
loader - the new default ClassLoader


Copyright B) 2005 Apache Web Services Project. All Rights Reserved.