Class PluginClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- org.jivesoftware.openfire.container.PluginClassLoader
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class PluginClassLoader extends URLClassLoader
ClassLoader for plugins. It searches the plugin directory for classes and JAR files, then constructs a class loader for the resources found. Resources are loaded as follows:- Any JAR files in the
lib
will be added to the classpath. - Any files in the classes directory will be added to the classpath.
- Author:
- Derek DeMoro
-
-
Constructor Summary
Constructors Constructor Description PluginClassLoader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDirectory(File directory, boolean developmentMode)
Adds a directory to the class loader.void
addURLFile(URL file)
Add the given URL to the classpath for this class loader, caching the JAR file connection so it can be unloaded latervoid
unloadJarFiles()
Unload any JAR files that have been cached by this plugin-
Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, 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, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
addDirectory
public void addDirectory(File directory, boolean developmentMode)
Adds a directory to the class loader.- Parameters:
directory
- the directory.developmentMode
- true if the plugin is running in development mode. This resolves classloader conflicts between the deployed plugin and development classes.
-
addURLFile
public void addURLFile(URL file)
Add the given URL to the classpath for this class loader, caching the JAR file connection so it can be unloaded later- Parameters:
file
- URL for the JAR file or directory to append to classpath
-
unloadJarFiles
public void unloadJarFiles()
Unload any JAR files that have been cached by this plugin
-
-