Package org.apache.nutch.plugin
Class PluginClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- org.apache.nutch.plugin.PluginClassLoader
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class PluginClassLoader extends URLClassLoader
ThePluginClassLoader
is a child-first classloader that only contains classes of the runtime libraries setuped in the plugin manifest file and exported libraries of plugins that are required plugins. Libraries can be exported or not. Not exported libraries are only used in the plugin ownPluginClassLoader
. Exported libraries are available forPluginClassLoader
of plugins that depends on these plugins.
-
-
Constructor Summary
Constructors Constructor Description PluginClassLoader(URL[] urls, ClassLoader parent)
Overloaded constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
URL
getResource(String name)
InputStream
getResourceAsStream(String name)
Enumeration<URL>
getResources(String name)
int
hashCode()
protected Class<?>
loadClass(String name, boolean resolve)
-
Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findClass, findResource, findResources, getPermissions, getURLs, newInstance, newInstance
-
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
PluginClassLoader
public PluginClassLoader(URL[] urls, ClassLoader parent)
Overloaded constructor- Parameters:
urls
- Array of urls with own libraries and all exported libraries of plugins that are required for this pluginparent
- the parentClassLoader
responsible for loading classes defined in urls.
-
-
Method Detail
-
loadClass
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
- Overrides:
loadClass
in classClassLoader
- Throws:
ClassNotFoundException
-
getResource
public URL getResource(String name)
- Overrides:
getResource
in classClassLoader
-
getResources
public Enumeration<URL> getResources(String name) throws IOException
- Overrides:
getResources
in classClassLoader
- Throws:
IOException
-
getResourceAsStream
public InputStream getResourceAsStream(String name)
- Overrides:
getResourceAsStream
in classURLClassLoader
-
-