【问题标题】:Setting start levels for dynamic Eclipse features: alternatives to p2.inf?设置动态 Eclipse 功能的启动级别:p2.inf 的替代方案?
【发布时间】:2013-07-08 01:04:50
【问题描述】:

我有一个基于 Eclipse 的 OSGi 应用程序,其中包含按功能组织的包。我使用产品定义来启动应用程序。在这个定义中,我还可以为我的包设置启动级别。

现在假设我想向正在运行的应用程序添加一个功能。 p2.inf 文件是在此功能中指定捆绑包启动级别的唯一方法吗?重新定义和重新启动产品听起来不是最佳解决方案,因为它不是真正动态的。

【问题讨论】:

  • “重新启动产品”是什么意思? p2 应该允许您安装正在运行的产品的新版本 - AFAIK 不需要重新启动。
  • 这是一个很好的提示,谢谢。这意味着我们可以: 1. 为我们的产品创建一个新版本,其中包含要安装的新捆绑包的启动级别。 2.安装本产品版本。 3. 将新功能添加到应用程序中。

标签: eclipse osgi p2


【解决方案1】:

我不知道有任何真正的工具支持在功能级别上设置捆绑包的启动级别。您唯一的选择是使用 p2.inf 手动破解。

我认为只有产品真正支持设置启动级别的原因是 p2 无法处理多次指定启动级别的情况。如果鼓励在功能级别上设置起始级别,则很容易发生这种情况。

因此,您可以在功能级别上完成这项工作,但前提是您知道自己在做什么。

【讨论】:

    【解决方案2】:

    我相信我有同样的问题:我有一个功能,它既是打包产品的一部分,又出现在要安装到 Eclipse IDE 中的更新站点上。而且我还想为一些插件设置启动级别,以确保非常早的启动。

    我已经通过p2.inf 文件克服了这个问题,该文件包含以下内容:

    instructions.configure=setStartLevel(startLevel:1);markStarted(started: true);
    instructions.unconfigure=setStartLevel(startLevel:-1);markStarted(started: false);
    

    (我认为我不需要在产品定义中指定起始级别,尽管我还没有尝试删除它。)

    我最初使用的是 2 级启动,但至少对于 Juno 包来说,有一些插件是在 1 级启动的,所以我现在也使用 1 级。

    【讨论】:

    猜你喜欢
    • 2013-07-05
    • 2020-09-11
    • 1970-01-01
    • 2017-06-28
    • 2023-03-22
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多