org.apache.logging.log4j.core.util
Class Loader

java.lang.Object
  extended by org.apache.logging.log4j.core.util.Loader

public final class Loader
extends Object

Load resources (or images) from various sources.


Method Summary
static ClassLoader getClassLoader()
          Returns the ClassLoader to use.
static ClassLoader getClassLoader(Class<?> class1, Class<?> class2)
           
static URL getResource(String resource, ClassLoader defaultLoader)
          This method will search for resource in different places.
static InputStream getResourceAsStream(String resource, ClassLoader defaultLoader)
          This method will search for resource in different places.
static ClassLoader getThreadContextClassLoader()
          Returns the ClassLoader of current thread if possible, or falls back to the system ClassLoader if none is available.
static Class<?> initializeClass(String className, ClassLoader loader)
          Loads and initializes a named Class using a given ClassLoader.
static boolean isClassAvailable(String className)
          Determines if a named Class can be loaded or not.
static Class<?> loadClass(String className)
          Load a Class by name.
static Class<?> loadSystemClass(String className)
          Load a Class in the java.* namespace by name.
static
<T> T
newCheckedInstanceOf(String className, Class<T> clazz)
          Loads, instantiates, and casts a Class using the default constructor.
static Object newInstanceOf(String className)
          Loads and instantiates a Class using the default constructor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getClassLoader

public static ClassLoader getClassLoader()
Returns the ClassLoader to use.

Returns:
the ClassLoader.

getThreadContextClassLoader

public static ClassLoader getThreadContextClassLoader()
Returns the ClassLoader of current thread if possible, or falls back to the system ClassLoader if none is available.

Returns:
the TCCL.
See Also:
LoaderUtil.getThreadContextClassLoader()

getClassLoader

public static ClassLoader getClassLoader(Class<?> class1,
                                         Class<?> class2)

getResource

public static URL getResource(String resource,
                              ClassLoader defaultLoader)
This method will search for resource in different places. The search order is as follows:
  1. Search for resource using the thread context class loader under Java2. If that fails, search for resource using the class loader that loaded this class (Loader). Under JDK 1.1, only the the class loader that loaded this class (Loader) is used.
  2. Try one last time with ClassLoader.getSystemResource(resource), that is is using the system class loader in JDK 1.2 and virtual machine's built-in class loader in JDK 1.1.

Parameters:
resource - The resource to load.
defaultLoader - The default ClassLoader.
Returns:
A URL to the resource.

getResourceAsStream

public static InputStream getResourceAsStream(String resource,
                                              ClassLoader defaultLoader)
This method will search for resource in different places. The search order is as follows:
  1. Search for resource using the thread context class loader under Java2. If that fails, search for resource using the class loader that loaded this class (Loader). Under JDK 1.1, only the the class loader that loaded this class (Loader) is used.
  2. Try one last time with ClassLoader.getSystemResource(resource), that is is using the system class loader in JDK 1.2 and virtual machine's built-in class loader in JDK 1.1.

Parameters:
resource - The resource to load.
defaultLoader - The default ClassLoader.
Returns:
An InputStream to read the resouce.

loadClass

public static Class<?> loadClass(String className)
                          throws ClassNotFoundException
Load a Class by name. Note that unlike ClassLoader.loadClass, this method will initialize the class as well if it hasn't been already. This is equivalent to the calling the protected version with the second parameter equal to true.

Parameters:
className - The class name.
Returns:
The Class.
Throws:
ClassNotFoundException - if the Class could not be found.

initializeClass

public static Class<?> initializeClass(String className,
                                       ClassLoader loader)
                                throws ClassNotFoundException
Loads and initializes a named Class using a given ClassLoader.

Parameters:
className - The class name.
loader - The class loader.
Returns:
The class.
Throws:
ClassNotFoundException - if the class could not be found.

loadSystemClass

public static Class<?> loadSystemClass(String className)
                                throws ClassNotFoundException
Load a Class in the java.* namespace by name. Useful for peculiar scenarios typically involving Google App Engine.

Parameters:
className - The class name.
Returns:
The Class.
Throws:
ClassNotFoundException - if the Class could not be found.

newInstanceOf

public static Object newInstanceOf(String className)
                            throws ClassNotFoundException,
                                   IllegalAccessException,
                                   InstantiationException,
                                   NoSuchMethodException,
                                   InvocationTargetException
Loads and instantiates a Class using the default constructor.

Parameters:
className - The class name.
Returns:
new instance of the class.
Throws:
ClassNotFoundException - if the class isn't available to the usual ClassLoaders
IllegalAccessException - if the class can't be instantiated through a public constructor
InstantiationException - if there was an exception whilst instantiating the class
NoSuchMethodException - if there isn't a no-args constructor on the class
InvocationTargetException - if there was an exception whilst constructing the class

newCheckedInstanceOf

public static <T> T newCheckedInstanceOf(String className,
                                         Class<T> clazz)
                              throws ClassNotFoundException,
                                     NoSuchMethodException,
                                     IllegalAccessException,
                                     InvocationTargetException,
                                     InstantiationException
Loads, instantiates, and casts a Class using the default constructor.

Type Parameters:
T - The type to cast it to.
Parameters:
className - The class name.
clazz - The class to cast it to.
Returns:
new instance of the class cast to T
Throws:
ClassNotFoundException - if the class isn't available to the usual ClassLoaders
IllegalAccessException - if the class can't be instantiated through a public constructor
InstantiationException - if there was an exception whilst instantiating the class
NoSuchMethodException - if there isn't a no-args constructor on the class
InvocationTargetException - if there was an exception whilst constructing the class
ClassCastException - if the constructed object isn't type compatible with T

isClassAvailable

public static boolean isClassAvailable(String className)
Determines if a named Class can be loaded or not.

Parameters:
className - The class name.
Returns:
true if the class could be found or false otherwise.


Copyright © 1999-2015 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.