org.sonar.core.plugins
Class PluginClassloaders

java.lang.Object
  extended by 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 :


Constructor Summary
PluginClassloaders(ClassLoader baseClassloader)
           
 
Method Summary
 ClassLoader add(PluginMetadata plugin)
           
 void clean()
           
 void done()
          Establishes dependencies among ClassLoaders.
 boolean extend(PluginMetadata plugin)
           
 ClassLoader get(String key)
          Note that this method should be called only after creation of all ClassLoaders - see done().
 Map<String,Plugin> init(Collection<PluginMetadata> plugins)
           
 Plugin instantiatePlugin(PluginMetadata metadata)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PluginClassloaders

public PluginClassloaders(ClassLoader baseClassloader)
Method Detail

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.