org.apache.axis.utils

Class ClassUtils

public final class ClassUtils extends Object

Utility methods for Class Loading.

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

Method Summary
static ClassLoadercreateClassLoader(String classpath, ClassLoader parent)
Creates a new ClassLoader from a classpath specification and a parent class loader.
static ClassforName(String className)
Use this method instead of Class.forName
static ClassforName(String _className, boolean init, ClassLoader _loader)
Use this method instead of Class.forName (String className, boolean init, ClassLoader loader)
static ClassLoadergetClassLoader(String className)
Obtain the ClassLoader (if any) associated with the given className.
static ClassLoadergetDefaultClassLoader()
static InputStreamgetResourceAsStream(Class clazz, String resource, boolean checkThreadContextFirst)
Get an input stream from a named resource.
static InputStreamgetResourceAsStream(Class clazz, String resource)
Get an input stream from a named resource.
static voidremoveClassLoader(String className)
Deregister the ClassLoader for a given className.
static voidsetClassLoader(String className, ClassLoader loader)
Set the ClassLoader associated with the given className.
static voidsetDefaultClassLoader(ClassLoader loader)
Set the default ClassLoader.

Method Detail

createClassLoader

public static ClassLoader createClassLoader(String classpath, ClassLoader parent)
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

Throws: SecurityException if you don't have privilages to create class loaders IllegalArgumentException if your classpath string is silly

forName

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

Parameters: className Class name

Returns: java class

Throws: ClassNotFoundException if the class is not found

forName

public static Class forName(String _className, boolean init, ClassLoader _loader)
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

Throws: ClassNotFoundException if the class is not found

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, 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

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

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.