【问题标题】:Automatic Updatemechanism for OSGi BundlesOSGi Bundles 的自动更新机制
【发布时间】:2014-12-11 12:12:43
【问题描述】:

我正在我的 Equinox 环境中寻找一种自动更新机制。 我正在开发使用远程服务的捆绑包。所以我有多个相互通信的客户端。
现在我正在寻找一种在 Eclipse 中部署新版本的 Bundle 时自动安装它的方法。
目前我正在这样做:

  • 增加版本号
  • 在 Eclipse 中部署
  • 启动脚本以将捆绑包同步到我的所有客户端
  • 在每个客户端上:卸载旧版本,安装新版本。

但是我想要这样,这样可以节省我很多工作:

  • 增加版本号
  • 在 Eclipse 中部署
  • 启动脚本
  • 每个客户端都会自动卸载旧版本,安装并启动新版本。

我已经尝试了部分工作的 Felix Fileinstaller。问题是,Fileinstaller 没有卸载旧版本,也没有自动启动 Bundle。 我也遇到了问题,过了一段时间,我的加载目录中有很多 Bundleversions,当我重新启动环境时,其中的每个 bundle 都已安装。

【问题讨论】:

    标签: osgi auto-update equinox osgi-bundle


    【解决方案1】:

    如果你使用 Equinox,你应该看看 p2。它是 Eclipse 内部用于更新 Eclipse 和安装新的 Eclipse 包的供应机制。它也适用于无头服务器环境。

    我们在Eclipse Gyrex 项目中使用p2 来执行自动安装。流程如下:

    • 在 Eclipse 中手动应用版本控制(增加版本号)
    • 将包导出到 p2 存储库(从 Eclipse 或使用 Tycho/Maven)
    • 将 p2 存储库部署到 Web 服务器
    • 客户端自动安装更新

    每个客户端都会定期检查 p2 存储库的更新并安装任何可用的更新。 p2 存储库在内部 Web 服务器上可用。

    有可供 OSGi 使用的替代选项。例如,OBR 是 OSGi 联盟推荐的方法。不幸的是,p2 还不支持 OBR。但如果您使用的是 Apache Felix,您应该能够将 OBR 用于您的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-29
      • 2016-07-04
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      相关资源
      最近更新 更多