public class PluginManagerInvoker extends Object
| Constructor and Description |
|---|
PluginManagerInvoker() |
| Modifier and Type | Method and Description |
|---|---|
static String |
buildCallCloseClassLoader(String classLoaderVar) |
static String |
buildCallPluginMethod(Class pluginClass,
String method,
String... paramValueAndType)
Equivalent to callPluginMethod for insertion into source code.
|
static String |
buildCallPluginMethod(String appClassLoaderVar,
Class pluginClass,
String method,
String... paramValueAndType)
Same as
buildCallPluginMethod(Class, String, String...), but with explicit
appClassLoader variable. |
static String |
buildInitializePlugin(Class pluginClass) |
static String |
buildInitializePlugin(Class pluginClass,
String classLoaderVar) |
static void |
callCloseClassLoader(ClassLoader appClassLoader)
Free all classloader references and close any associated plugin instance.
|
static <T> T |
callInitializePlugin(Class<T> pluginClass,
ClassLoader appClassLoader)
Initialize plugin for a classloader.
|
static Object |
callPluginMethod(Class pluginClass,
ClassLoader appClassLoader,
String method,
Class[] paramTypes,
Object[] params)
Methods on plugin should be called via reflection, because the real plugin object is in parent classloader,
but plugin class may be defined in app classloader as well introducing ClassCastException on same class name.
|
public static <T> T callInitializePlugin(Class<T> pluginClass, ClassLoader appClassLoader)
pluginClass - identify plugin instanceappClassLoader - classloader in which the plugin should residepublic static String buildInitializePlugin(Class pluginClass, String classLoaderVar)
public static void callCloseClassLoader(ClassLoader appClassLoader)
appClassLoader - clasloade to freepublic static Object callPluginMethod(Class pluginClass, ClassLoader appClassLoader, String method, Class[] paramTypes, Object[] params)
pluginClass - class name of the plugin - it is used to resolve plugin instance from plugin managerappClassLoader - application classloader (to resolve plugin instance)method - method nameparamTypes - param types (as required by reflection)params - actual param valuespublic static String buildCallPluginMethod(Class pluginClass, String method, String... paramValueAndType)
pluginClass - plugin to usemethod - method nameparamValueAndType - for each param its value AND type must be providedpublic static String buildCallPluginMethod(String appClassLoaderVar, Class pluginClass, String method, String... paramValueAndType)
buildCallPluginMethod(Class, String, String...), but with explicit
appClassLoader variable. Use this method if appClassLoader is different from getClass().getClassLoader().Copyright © 2018. All rights reserved.