我有一个运行的equinox osgi框架,带有一堆已启动的捆绑包。现在我通过'update使用osgi控制台更新一个包。 (或使用提供的方法:bundle.update(url));
一切都很完美......但是如果我完全重启osgi框架,之前更新的包再次处于原始状态(就像在更新之前那样)。
我正在使用eclipse的update.configurator来搜索plugins目录中的所有bundle并安装它们,但我认为它可以识别bundle是否已经更新。
有人可以告诉我一些我缺少的东西吗?
感谢, Michael Mangeng
答案 0 :(得分:1)
你是如何开始Equinox的?你是否开始使用-clean(会消除任何更新)?
请注意,'udpate'只是更新内存中运行的副本,而不是更改磁盘上原始JAR上的任何位。如果你正在启动equinox并传入旧捆绑(但不是新捆绑),那么它可能会以旧状态返回。
P2在某种程度上假设一旦你削减了一个束的位,那么它之后保持不变 - 换句话说,P2首先有效地破坏了bundle.update()。但是,你可能应该管理磁盘上的位,这样即使有人做了-clean,你也能获得正确的数据。