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 booleanaddDependency(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.URLfindResource(java.lang.String name)protected java.lang.Class<?>loadClass(java.lang.String name, boolean resolve)java.lang.StringtoString()-
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:
trueif 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:
loadClassin 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-trueto resolve the class- Returns:
- the class, if found, otherwise
null
-
findResource
public java.net.URL findResource(java.lang.String name)
- Overrides:
findResourcein classjava.net.URLClassLoader
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-