Package org.openstreetmap.josm.plugins
Class PluginClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- org.openstreetmap.josm.plugins.DynamicURLClassLoader
-
- org.openstreetmap.josm.plugins.PluginClassLoader
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class PluginClassLoader extends DynamicURLClassLoader
Class loader for JOSM plugins.In addition to the classes in the plugin jar file, it loads classes of required plugins. The JOSM core classes should be provided by the parent class loader.
- Since:
- 12322
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Collection<PluginClassLoader>
dependencies
-
Constructor Summary
Constructors Constructor Description PluginClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, java.util.Collection<PluginClassLoader> dependencies)
Create a new PluginClassLoader.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addDependency(PluginClassLoader dependency)
Add class loader of a required plugin.private java.lang.Class<?>
findClassInDependencies(java.lang.String name, boolean resolve)
Try to find the specified class in this classes dependenciesjava.net.URL
findResource(java.lang.String name)
protected java.lang.Class<?>
loadClass(java.lang.String name, boolean resolve)
java.lang.String
toString()
-
Methods inherited from class org.openstreetmap.josm.plugins.DynamicURLClassLoader
addURL
-
Methods inherited from class java.net.URLClassLoader
close, definePackage, findClass, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
-
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, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Field Detail
-
dependencies
private final java.util.Collection<PluginClassLoader> dependencies
-
-
Constructor Detail
-
PluginClassLoader
public PluginClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, java.util.Collection<PluginClassLoader> dependencies)
Create a new PluginClassLoader.- Parameters:
urls
- URLs of the plugin jar file (and extra libraries)parent
- the parent class loader (for JOSM core classes)dependencies
- class loaders of required plugin; can be null
-
-
Method Detail
-
addDependency
public boolean addDependency(PluginClassLoader dependency)
Add class loader of a required plugin. This plugin will have access to the classes of the dependent plugin- Parameters:
dependency
- the class loader of the required plugin- Returns:
true
if the collection of dependencies changed as a result of the call- Since:
- 12867
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
- Overrides:
loadClass
in classjava.lang.ClassLoader
- Throws:
java.lang.ClassNotFoundException
-
findClassInDependencies
private java.lang.Class<?> findClassInDependencies(java.lang.String name, boolean resolve)
Try to find the specified class in this classes dependencies- Parameters:
name
- The name of the class to findresolve
-true
to resolve the class- Returns:
- the class, if found, otherwise
null
-
findResource
public java.net.URL findResource(java.lang.String name)
- Overrides:
findResource
in classjava.net.URLClassLoader
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-