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 |
---|---|
protected static void |
addJars(List<URL> urls,
File folder) |
File |
getPluginDir() |
protected static URL[] |
getPluginUrls(File pluginDir) |
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() |
addURL, close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
defineClass, defineClass
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
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
Copyright © 2021 Hitachi Vantara. All rights reserved.