我曾经使用 IPluginRegistry 获取所有插件,当它被弃用时,现在在新版本中,它的一些方法实现被删除,如 getPluginRegistry。
IPluginRegistry pReg = Platform.getPluginRegistry();
IPluginDescriptor[] plugins = pReg.getPluginDescriptors();
IPluginPrerequisite[] pPrereqs = plugins[i].getPluginPrerequisites();
上面的代码有什么替代方法吗?
此外,我无法从 eclipse 4.3 中的 plugin-id 获取插件,如下所示, getPlugin(plugin_id) 方法已弃用,并在新版本中删除了它们的实现。下面的代码还有其他选择吗?
Plugin plugin = Platform.getPlugin(pluginId);
boolean bool = plugin instanceOf MyCustomPlugin;
我的自定义插件.java
public abstract MYCustomPlugin extends AbstractUIPlugin{
}
如果我使用像下面这样的包,我只能得到包名而没有插件名,com.plugins.pluginPack
而不是com.plugins.pluginPack.MyCustomPlugin
. 我需要完整的插件而不仅仅是包名。
Bundle bundle = Platform.getBundle(pluginId);
如果有人帮助我,我很感激!!谢谢。
因为 IPluginDescriptor 不再支持,对于“插件描述符” uniqueIdentifier 我们可以使用 bundle
Myplugin plugin; //this Myplugin extending Plugin abstract class
IPluginDescriptor pluginDescriptor = plugin.getDescriptor();
String uniqueIdentifier = pluginDescriptor.getUniqueIdentifier();
**替代(下)
String uniqueIdentifier = plugin.getBundle().getSymbolicName()
对于插件对象,您可以使用 bundle 和 org.osgi.framework.Constants 找到替代方案
Plugin plugin = Platform.getPlugin(pluginId);
**替代(下)
Bundle bundle = Platform.getBundle(pluginId);
String activator = (String)bundle.getHeaders().get(Constants.BUNDLE_ACTIVATOR);
Object activatorInstance = bundle.loadClass(activator).newInstance();
Plugin plugin = (Plugin) activatorInstance;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句