- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找实现特定扩展点的扩展,并使用以下可接受的方法来执行此操作:
IExtensionRegistry 扩展注册 = Platform.getExtensionRegistry(); if (extensionRegistry == null) { 返回模板; }
IConfigurationElement[] config = extensionRegistry.getConfigurationElementsFor("com.ibm.im.launchpoint.templates.template");
然后我想获取定义包的版本。我将使用以下 API,但 PluginVersionIdentifier 的 API 已弃用:
for (IConfigurationElement e : 配置) { BlueprintTemplate 模板 = new BlueprintTemplate();
IExtension declaringExtension = e.getDeclaringExtension(); PluginVersionIdentifier versionIdentifier = declaringExtension.getDeclaringPluginDescriptor().getVersionIdentifier();
我在新 API 中找不到替代方案 - 即从 IConfigurationElement 中,如何获取包的版本 id 描述符。显然,我可以使用 Bundle.getHeaders() 从 Bundle 获取版本,获取 Bundle-Version 值 - 但我如何首先获取 Bundle ??? Platform.getBundle(bundleId) 是不够的,因为我可能安装了同一包的多个版本,并且我需要知道我是谁。目前我遇到了先有鸡还是先有蛋的情况,我唯一的解决方案就是上面已弃用的 API。
最佳答案
所有这些信息均基于 Eclipse 3.6:
如果您位于 osgi 环境中,您的 IContributor
将是 RegistryContributor
的实例(当然您是这样的,否则您不会遇到此问题)。
RegistryContributor 为您提供了两种方法:getID()
和 getActualID()
。如果这是从片段加载的,则 getID() 可能会返回主机包。 getActualID()
始终加载贡献者代表的片段/包的 ID。您可以在 BundleContext.getBundle(long id)
方法中使用此 id。这是一个片段:
Bundle bundle;
if (contributor instanceof RegistryContributor) {
long id = Long.parseLong(((RegistryContributor) contributor).getActualId());
Bundle thisBundle = FrameworkUtil.getBundle(getClass());
bundle = thisBundle.getBundleContext().getBundle(id);
} else {
bundle = Platform.getBundle(contributor.getName());
}
我使用了一种失败方法,如果 IContributor 将来获得新的默认实现,该方法将优雅地降级为非版本感知解决方案。 bundle ID 对于 OSGi 实例来说是唯一的,因此它将加载正确版本的 bundle 。
关于eclipse - 从 Eclipse IConfigurationElement 获取 OSGI Bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3043828/
我正在寻找实现特定扩展点的扩展,并使用以下可接受的方法来执行此操作: IExtensionRegistry 扩展注册 = Platform.getExtensionRegistry(); if (ex
在构建我的 Eclipse RCP 应用程序时,出现以下错误。 无法解析类型 org.eclipse.core.runtime.IConfigurationElement。它是从所需的 .class
我想创建一个像本教程一样的 Eclipse 插件: http://www.eclipse.org/articles/viewArticle/ViewArticle2.html [这里有截图,但我无法发
我是一名优秀的程序员,十分优秀!