public class PluginManager extends Object
| Modifier and Type | Field and Description |
|---|---|
protected HotswapTransformer |
hotswapTransformer |
static String |
PLUGIN_PACKAGE |
protected Scheduler |
scheduler |
protected Watcher |
watcher |
| Modifier and Type | Method and Description |
|---|---|
void |
closeClassLoader(ClassLoader classLoader)
Remove any classloader reference and close all plugin instances associated with classloader.
|
HotswapTransformer |
getHotswapTransformer()
Returns the hotswap transformer service.
|
static PluginManager |
getInstance()
Get the singleton instance of the plugin manager.
|
Instrumentation |
getInstrumentation() |
<T> T |
getPlugin(Class<T> clazz,
ClassLoader classLoader)
Returns a plugin instance by its type and classLoader.
|
Object |
getPlugin(String clazz,
ClassLoader classLoader)
Returns a plugin instance by its type and classLoader.
|
PluginConfiguration |
getPluginConfiguration(ClassLoader classLoader) |
PluginRegistry |
getPluginRegistry()
Returns the plugin registry service.
|
Scheduler |
getScheduler()
Returns the scheduler service.
|
Watcher |
getWatcher()
Returns the watcher service.
|
void |
hotswap(Map<Class<?>,byte[]> reloadMap)
Redefine the supplied set of classes using the supplied bytecode.
|
void |
init(Instrumentation instrumentation)
Initialize the singleton plugin manager.
|
void |
initClassLoader(ClassLoader classLoader) |
void |
initClassLoader(ClassLoader classLoader,
ProtectionDomain protectionDomain) |
boolean |
isPluginInitialized(String pluginClassName,
ClassLoader classLoader)
Check if plugin is initialized in classLoader.
|
void |
registerClassLoaderInitListener(ClassLoaderInitListener classLoaderInitListener) |
void |
setPluginRegistry(PluginRegistry pluginRegistry)
Sets the plugin registry service.
|
public static final String PLUGIN_PACKAGE
protected HotswapTransformer hotswapTransformer
protected Watcher watcher
protected Scheduler scheduler
public static PluginManager getInstance()
public Object getPlugin(String clazz, ClassLoader classLoader)
clazz - type name of the plugin (IllegalArgumentException class is not known to the classLoader)classLoader - classloader of the pluginpublic <T> T getPlugin(Class<T> clazz, ClassLoader classLoader)
T - type of the plugin to return correct instance.clazz - type of the pluginclassLoader - classloader of the pluginpublic boolean isPluginInitialized(String pluginClassName, ClassLoader classLoader)
pluginClass - type of the pluginclassLoader - classloader of the plugincheckParent - for parent classloaders as well?public void init(Instrumentation instrumentation)
instrumentation - javaagent instrumentation.public void registerClassLoaderInitListener(ClassLoaderInitListener classLoaderInitListener)
public void initClassLoader(ClassLoader classLoader)
public void initClassLoader(ClassLoader classLoader, ProtectionDomain protectionDomain)
public void closeClassLoader(ClassLoader classLoader)
classLoader - the classloader to cleanuppublic PluginConfiguration getPluginConfiguration(ClassLoader classLoader)
public PluginRegistry getPluginRegistry()
public void setPluginRegistry(PluginRegistry pluginRegistry)
public HotswapTransformer getHotswapTransformer()
public Watcher getWatcher()
public Scheduler getScheduler()
public void hotswap(Map<Class<?>,byte[]> reloadMap)
reloadMap - class -> new bytecodeInstrumentation.redefineClasses(java.lang.instrument.ClassDefinition...)public Instrumentation getInstrumentation()
Copyright © 2018. All rights reserved.