org.sonar.core.plugins
Class PluginClassloaders
java.lang.Object
org.sonar.core.plugins.PluginClassloaders
public class PluginClassloaders
- extends Object
Encapsulates manipulations with ClassLoaders, such as creation and establishing dependencies. Current implementation based on
ClassWorld
.
IMPORTANT
If we have pluginA , then all classes and resources from package and subpackages of org.sonar.plugins.pluginA.api will be visible
for all other plugins even if they located in dependent library.
Search order for ClassRealm
:
- parent class loader (passed via the constructor) if there is one
- imports
- realm's constituents
- parent realm
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PluginClassloaders
public PluginClassloaders(ClassLoader baseClassloader)
init
public Map<String,Plugin> init(Collection<PluginMetadata> plugins)
add
public ClassLoader add(PluginMetadata plugin)
extend
public boolean extend(PluginMetadata plugin)
done
public void done()
- Establishes dependencies among ClassLoaders.
get
public ClassLoader get(String key)
- Note that this method should be called only after creation of all ClassLoaders - see
done()
.
instantiatePlugin
public Plugin instantiatePlugin(PluginMetadata metadata)
clean
public void clean()
Copyright © 2009-2012 SonarSource. All Rights Reserved.