使用OSGi实现自动更新

时间:2011-08-17 17:48:48

标签: java osgi auto-update

我想要做的是为我的代码创建一个“启动器”框架,给定一个URL和一个预定义的版本控制方案: 1)去检查是否存在更新 2)下载更新 3)“安装”更新 4)“重新运行”应用程序

我想a)在现有JVM内部完成所有这些工作,b)独立于平台。高阶对吗?基于我对OSGi和Apache Felix的(有限)知识,我很确定这是可能的,但我真的迷失在细节中。

检查更新并下载它是微不足道的。导致“旧”捆绑卸载和“新”捆绑加载是我陷入困境的地方。我过去做过OSGi的工作,但它的动态远不如此。非常感谢一个良好的起点或向正确的方向努力推动。

如果我真的过度烘焙已经用免费图书馆解决的东西,那么告诉我这个,但到目前为止我还没有找到任何东西。 : - )

2 个答案:

答案 0 :(得分:7)

您甚至不需要下载它,只需检查更新是否可用,然后在需要更新的包上调用Bundle.update(InputStream),之后通常调用PackageAdmin.refreshPackages()

答案 1 :(得分:4)

您可以查看众所周知的配置解决方案,它可以代替您完成所有步骤(检查新版本,下载,安装/更新,重启等)。

  1. 对于Equinox框架:p2 http://www.eclipse.org/equinox/p2/
  2. 对于任何OSGi R4框架:Apache ACE http://incubator.apache.org/ace/a-brief-introduction.html
  3. 最好的问候, 德米特罗