我想要做的是为我的代码创建一个“启动器”框架,给定一个URL和一个预定义的版本控制方案:
1)去检查是否存在更新
2)下载更新
3)“安装”更新
4)“重新运行”应用程序
我想a)在现有JVM内部完成所有这些工作,b)独立于平台。高阶对吗?基于我对OSGi和Apache Felix的(有限)知识,我很确定这是可能的,但我真的迷失在细节中。
检查更新并下载它是微不足道的。导致“旧”捆绑卸载和“新”捆绑加载是我陷入困境的地方。我过去做过OSGi的工作,但它的动态远不如此。一个好的起点或朝着正确方向的努力将是最受欢迎的。
如果我真的过度烘焙已经用免费图书馆解决的东西,那么告诉我这个,但到目前为止我还没有找到任何东西。 :-)
您甚至不需要下载它,只需检查更新是否可用,然后在需要更新的包上调用Bundle.update(InputStream),之后通常调用PackageAdmin.refreshPackages()。
您甚至不需要下载它,只需检查更新是否可用,然后在需要更新的包上调用Bundle.update(InputStream),之后通常调用PackageAdmin.refreshPackages()。
您可以检查众所周知的配置解决方案,它可以代替您执行所有步骤(检查新版本,下载,安装/更新,重新启动等)
- 对于Equinox框架:p2 http://www.eclipse.org/equinox/p2/
- 对于任何OSGi R4框架:Apache ACE http://incubator.apache.org/ace/a-brief-introduction.html
最好的祝福,
德米特罗