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, newInstance
clearAssertionStatus, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus
public 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 ClassLoader
ClassNotFoundException