尝试使用 PF4J 时,我创建了必要的部分,如
扩展 ExtensionPoint 的接口
一个插件
带有清单的罐子
插件加载和激活
为什么 clickHandlers 列表是空的?
我已经使用 JUnit 测试对此进行了测试,我可以在其中调试似乎工作正常的其他部分。请参阅下面的调试日志。
我还查看了https://github.com/pf4j/pf4j/issues/21并激活了 Eclipse 注释处理,但没有任何积极影响。
1.扩展扩展点的接口
public interface ClickHandler extends ExtensionPoint {
...
}
2.一个插件
public class MBClickHandlerPlugin extends Plugin {
/**
* construct me
* @param wrapper
*/
public MBClickHandlerPlugin(PluginWrapper wrapper) {
super(wrapper);
}
@Extension
public static class MBClickHandler implements ClickHandler {
}
}
3. 带有清单的罐子
unzip -q -c target/com.bitplan.mb-0.0.1.jar META-INF/MANIFEST.MF
Manifest-Version: 1.0
Plugin-Dependencies:
Plugin-Id: com.bitplan.mb
Built-By: wf
Plugin-Provider: BITPlan GmbH
Plugin-Version: 0.0.1
Plugin-Class: com.bitplan.mb.MBClickHandlerPlugin
Created-By: Apache Maven 3.5.2
Build-Jdk: 1.8.0_152
4.插件加载和激活
/**
* activate the plugins requested on the command line
*/
public void activatePlugins() {
pluginManager = new DefaultPluginManager();
for (String plugin : plugins) {
Path pluginPath = Paths.get(plugin);
pluginManager.loadPlugin(pluginPath);
}
pluginManager.startPlugins();
List<ClickHandler> clickHandlers = pluginManager
.getExtensions(ClickHandler.class);
for (ClickHandler clickHandler : clickHandlers) {
installClickHandler(clickHandler);
}
}
慕的地6264312
相关分类