java - 春分 : Update of bundle lost after framework restart

标签 java osgi

我有一个正在运行的 equinox osgi 框架,其中包含一堆启动包。现在我使用 osgi 控制台通过 'update' 更新一个包。 (或使用提供的方法:bundle.update(url));

一切正常...但是如果我完全重新启动 osgi 框架,之前更新的包将再次处于原始状态(就像更新之前一样)。

我正在使用 eclipse 的 update.configurator 搜索插件目录中的所有 bundle 并安装它们,但我认为它可以识别 bundle 是否已更新。

有人可以告诉我我缺少什么吗?

谢谢, 迈克尔·满庚

最佳答案

您如何启动 Equinox?您是从 -clean 开始的吗(这会清除所有更新)?

请注意,'udpate' 只是更新内存中运行的副本,而不是更改磁盘上原始 JAR 的任何位。如果您启动 Equinox 并传递旧包(而不是新包),那么它可能会返回旧状态。

P2 在某种程度上阻碍了假设,一旦你削减了一个包的位,然后它就保持不变 - 换句话说,P2 首先有效地中断了 bundle.update() 的执行。但是,您可能应该管理磁盘上的位,这样即使有人执行了 -clean,您也可以获得正确的数据。

关于java - 春分 : Update of bundle lost after framework restart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1431736/

相关文章:

java - Splunk HttpEventCollectorLogbackAppender 如何设置源和主机?

java - 禁用 Thread.sleep()

java - intellij左上角的"search for"

java - Jzy3d/JOGL 的 OSGi 路径错误(未找到 gluegen-rt)

java - 我可以修改 osgi 包内的文件吗?

java - Apache mod_proxy 和 Tomcat 出现 Bad Gateway 502 错误

java - JAXB 生成的可使用 JAX-WS 绑定(bind)序列化的类

maven - 为什么Maven找不到osgi bundle依赖项?

java - 将 EAR 模块转换为 OSGI 包的正确方法

java - OSGi/blueprint 中的服务引用无法正常工作