public class PluginClassLoader extends URLClassLoader
URLClassLoader for Pentaho Platform Plugins.
It is used to load plugin jars and classes and aids in retrieving resources by providing
a root directory to search for resources related to plugins.
Note: PluginClassLoader will search for jar files in a 'lib' subdirectory
under the pluginDir provided in the constructor. Class and other resources will
be visible to this classloader in either the root directory of the plugin or in
the lib folder.
| Constructor and Description |
|---|
PluginClassLoader(File pluginDir,
ClassLoader parent)
Creates a class loader for loading plugin classes and discovering resources.
|
PluginClassLoader(File pluginDir,
Object o)
Convenience method that creates a
PluginClassLoader with the current
classloader as it's parent. |
| Modifier and Type | Method and Description |
|---|---|
File |
getPluginDir() |
Class<?> |
loadClass(String name,
boolean resolve) |
void |
setOverrideLoad(boolean b)
Controls whether or not this classloader will eagerly load a class
requested by
loadClass(String, boolean) ahead of the parent
classloader. |
String |
toString() |
close, findResource, findResources, getResourceAsStream, getURLs, newInstance, newInstanceclearAssertionStatus, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatuspublic PluginClassLoader(File pluginDir, ClassLoader parent)
pluginDir - the root directory of the pluginparent - the parent classloaderpublic PluginClassLoader(File pluginDir, Object o)
PluginClassLoader with the current
classloader as it's parent.pluginDir - the root directory of the plugino - the object from which the parent classloader will be derivedpublic void setOverrideLoad(boolean b)
loadClass(String, boolean) ahead of the parent
classloader. or delegate the load to the parent. If this method
is not called, the default behavior will apply which is to *not*
override classloading.b - if true, loadClass method will look to this loader first to load a class,
otherwise, the parent classloader will be queried first.public File getPluginDir()
public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
loadClass in class ClassLoaderClassNotFoundException