0

这篇文章涵盖了 Eclipse 早期启动: 如何确保 Eclipse 插件具有可用的所需捆绑包?

这篇文章介绍了在通过 p2 更新安装后将您的插件配置为“早期启动”:Require-Bundle 和 Import-Package 与 feature.xml 要求

此 wiki 条目涵盖 Eclipse 延迟启动: http ://wiki.eclipse.org/Lazy_Start_Bundles

就我而言,我正在加载我的插件包所需的包(Apache Wink),并且我需要确保在调用我的插件时它处于活动状态。它存在是不够的,我的意思是,我不需要导入它的任何包,我只需要它运行,这样我的插件就可以与它进行 HTTP 通信。我正在考虑两种解决方案,并希望得到任何反馈,或者欢迎我没有考虑过的建议:

  1. 将其配置为早期启动,以便在 Eclipse 启动时启动(通过扩展)。由于我不是 Wink Bundle 的作者,我正在考虑添加一个实现 IStartup 类的片段。早期开始扩展通常不受欢迎,所以也许:
  2. 在我的激活器中,搜索捆绑包并激活(如果尚未激活)。问题?
4

1 回答 1

3

根据您的描述,听起来您正在创建人们将安装到现有 Eclipse 实例中的插件。此外,您无法控制 Apache Wink 插件的安装方式。

这意味着#1 会很棘手,因为这样做的方法是添加一个 p2.inf 文件并添加一个具有适当启动级别的自动启动属性。如果您自己创建和捆绑 apache wink 插件,那么这将是我推荐的方式,但既然您不是,我会选择 #2。

您需要做的就是在您的激活器中执行以下操作:

Platform.getBundle("org.apache.foobar.wink").start();

很简单,但有几点需要注意:

  1. 添加一个空检查,以防未安装捆绑包。
  2. 如果 wink 包需要很长时间才能启动和初始化,您可能希望使用 Job 在单独的线程中启动 wink 包。但是,您必须确保在使用当前捆绑包之前等待激活完成。
于 2013-05-24T03:59:35.737 回答