【问题标题】:Eclipse/Equinox: starting all installed plugins?Eclipse/Equinox:启动所有已安装的插件?
【发布时间】:2011-12-21 23:20:47
【问题描述】:

我有一个使用特性构建的 Eclipse 产品。所有服务都是通过声明式服务注册的。据我了解,必须启动捆绑包,服务组件运行时才能获取并注册每个捆绑包中公开的服务。

我想自动启动安装在我的 OSGi 运行时中的每个包。有没有一种简单的方法可以做到这一点?我唯一能找到的是 Product > Configuration > Start Levels > Auto-Start 选项。我不想在我拥有的每个产品构建中都这样做,因为我想转移到功能来分组和一起启动类似的捆绑包。

有没有简单/推荐的方法来做到这一点?

【问题讨论】:

    标签: java osgi equinox declarative-services


    【解决方案1】:

    我认为堆栈溢出问题/答案[1],全面讨论您的要求。 或者,如果您使用的是支持 p2 的产品,您可以在 bundles.info 文件中将默认启动参数设置为“true”。但这是一种 hacky 方式。

    [1]In Equinox Is it possible to to mark an OSGi bundle as started from its containing feature's p2.inf?

    【讨论】:

    • 我最终创建了 META-INF/p2.inf,每个包中都包含 instructions.configure = markStarted(started: true) 的内容。我不想配置每个功能。谢谢。
    【解决方案2】:

    从您的MANIFEST.MF 中删除Bundle-ActivationPolicy: lazy 并确保属性enabled="false" 在您的组件定义中不是

    【讨论】:

    • 这仅保证一旦包含插件启动,所有服务都将被激活。我想在 Equinox 启动时强制启动所有插件。
    猜你喜欢
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 2011-10-28
    • 2014-06-05
    • 2021-12-11
    相关资源
    最近更新 更多