use of org.hotswap.agent.config.PluginManager in project HotswapAgent by HotswapProjects.
the class PluginManagerTest method testInit.
@Test
public void testInit() throws Exception {
PluginManager pluginManager = PluginManager.getInstance();
context.checking(new Expectations() {
{
allowing(instrumentation).addTransformer(with(any(ClassFileTransformer.class)));
allowing(annotationScanner).scanPlugins(with(any(ClassLoader.class)), with(any(String.class)));
will(returnValue(Collections.singletonList(SimplePlugin.class.getName())));
allowing(annotationProcessor).processAnnotations(with(any(Class.class)), with(any(Class.class)));
will(returnValue(true));
}
});
PluginRegistry pluginRegistry = pluginManager.getPluginRegistry();
pluginRegistry.setAnnotationScanner(annotationScanner);
pluginRegistry.setAnnotationProcessor(annotationProcessor);
pluginManager.init(instrumentation);
assertEquals("Plugin registered", pluginRegistry.getRegisteredPlugins().size(), 1);
assertTrue("Plugin correct class", pluginRegistry.getRegisteredPlugins().keySet().iterator().next().equals(SimplePlugin.class));
}
use of org.hotswap.agent.config.PluginManager in project HotswapAgent by HotswapProjects.
the class InitHandlerTest method testInitMethod.
@Test
public void testInitMethod() throws Exception {
PluginManager pluginManager = PluginManager.getInstance();
SimplePlugin simplePlugin = new SimplePlugin();
// register the plugin
pluginManager.getPluginRegistry().getRegisteredPlugins().put(SimplePlugin.class, Collections.<ClassLoader, Object>singletonMap(getClass().getClassLoader(), simplePlugin));
InitHandler initHandler = new InitHandler(pluginManager);
Method method = SimplePlugin.class.getMethod("initPlugin", PluginManager.class);
PluginAnnotation<Init> pluginAnnotation = new PluginAnnotation<Init>(SimplePlugin.class, simplePlugin, method.getAnnotation(Init.class), method);
assertTrue("Init successful", initHandler.initMethod(pluginAnnotation));
}
Aggregations