Package edu.umd.cs.findbugs
Class PluginLoader
java.lang.Object
edu.umd.cs.findbugs.PluginLoader
Loader for a FindBugs plugin. A plugin is a jar file containing two metadata
files, "findbugs.xml" and "messages.xml". Those files specify
- the bug pattern Detector classes,
- the bug patterns detected (including all text for displaying detected instances of those patterns), and
- the "bug codes" which group together related bug instances
The PluginLoader creates a Plugin object to store the Detector factories and metadata.
- Author:
- David Hovemeyer
- See Also:
-
Nested Class Summary
-
Constructor Summary
ConstructorDescriptionDeprecated.PluginLoader
(boolean fake, URL url) Deprecated.PluginLoader
(URL url) Deprecated.PluginLoader
(URL url, ClassLoader parent) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionstatic PluginLoader
org.dom4j.Document
static PluginLoader
getPluginLoader
(URL url, ClassLoader parent, boolean isInitial, boolean optional) getResource
(String name) Get a resource using the URLClassLoader classLoader.getURI()
getURL()
boolean
boolean
static URL
loadFromFindBugsEtcDir
(String name) static URL
Get the Plugin.toString()
static PluginLoader.Summary
-
Constructor Details
-
PluginLoader
Deprecated.Constructor.- Parameters:
url
- the URL of the plugin Jar file- Throws:
PluginException
- if the plugin cannot be fully loaded
-
PluginLoader
Deprecated.UsePluginLoader(URL,URI,ClassLoader,boolean,boolean)
insteadConstructor.- Parameters:
url
- the URL of the plugin Jar fileparent
- the parent classloader- Throws:
PluginException
-
PluginLoader
Deprecated.Constructor. Loads a plugin using the caller's class loader. This constructor should only be used to load the "core" findbugs detectors, which are built into findbugs.jar.- Throws:
PluginException
-
PluginLoader
Deprecated.Fake plugin.
-
-
Method Details
-
hasParent
public boolean hasParent() -
getURL
-
getURI
-
getClassLoader
-
loadPlugin
Get the Plugin.- Throws:
PluginException
- if the plugin cannot be fully loaded
-
getPlugin
-
getResource
Get a resource using the URLClassLoader classLoader. We try findResource first because (based on experiment) we can trust it to prefer resources in the jarfile to resources on the filesystem. Simply calling classLoader.getResource() allows the filesystem to override the jarfile, which can mess things up if, for example, there is a findbugs.xml or messages.xml in the current directory.- Parameters:
name
- resource to get- Returns:
- URL for the resource, or null if it could not be found
-
loadFromFindBugsEtcDir
-
loadFromFindBugsPluginDir
-
getPluginDescriptor
public org.dom4j.Document getPluginDescriptor() throws PluginException, PluginDoesntContainMetadataException -
getPluginLoader
public static PluginLoader getPluginLoader(URL url, ClassLoader parent, boolean isInitial, boolean optional) throws PluginException - Throws:
PluginException
-
getCorePluginLoader
-
isCorePlugin
public boolean isCorePlugin() -
toString
-
validate
- Throws:
IllegalArgumentException
-
PluginLoader(URL,URI,ClassLoader,boolean,boolean)
instead