Package org.apache.axis.utils
Class ClassUtils
java.lang.Object
org.apache.axis.utils.ClassUtils
Utility methods for Class Loading.
- Author:
- Davanum Srinvas (dims@yahoo.com), Matthew Pocock (matthew_pocock@yahoo.co.uk)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ClassLoader
createClassLoader
(String classpath, ClassLoader parent) Creates a new ClassLoader from a classpath specification and a parent class loader.static Class
Use this method instead of Class.forNamestatic 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
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.
-
Constructor Details
-
ClassUtils
public ClassUtils()
-
-
Method Details
-
setDefaultClassLoader
Set the default ClassLoader. If loader is null, the default loader is not changed.- Parameters:
loader
- the new default ClassLoader
-
getDefaultClassLoader
-
setClassLoader
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 classloader
- the ClassLoader for the class
-
getClassLoader
Obtain the ClassLoader (if any) associated with the given className.- Parameters:
className
- the name of a class- Returns:
- class loader
-
removeClassLoader
Deregister the ClassLoader for a given className.- Parameters:
className
- the name of a class
-
forName
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) throws ClassNotFoundException Use this method instead of Class.forName (String className, boolean init, ClassLoader loader)- Parameters:
_className
- Class nameinit
- initialize the class_loader
- class loader- Returns:
- java class
- Throws:
ClassNotFoundException
- if the class is not found
-
getResourceAsStream
public static InputStream getResourceAsStream(Class clazz, String resource, boolean checkThreadContextFirst) Get an input stream from a named resource. Tries- the classloader that loaded "clazz" first,
- the system classloader
- the class "clazz" itself
- Parameters:
clazz
- class to use in the lookupsresource
- resource string to look forcheckThreadContextFirst
- check the thread context first?- Returns:
- input stream if found, or null
-
getResourceAsStream
Get an input stream from a named resource. Tries- the classloader that loaded "clazz" first,
- the system classloader
- the class "clazz" itself
- Parameters:
clazz
- class to use in the lookupsresource
- resource string to look for- Returns:
- input stream if found, or null
-
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 Stringparent
- the parent ClassLoader, or null if the default is to be used- Throws:
SecurityException
- if you don't have privilages to create class loadersIllegalArgumentException
- if your classpath string is silly
-