3

关于上一个问题,如何让 OSGi 通过 Config Admin 重用您的配置,我仍在尝试在 Equinox Framework 中解决这个问题。

帕沃尔·尤霍斯写道:

Equinox Config Admin (org.eclipse.equinox.cm) 将配置数据存储在框架提供的持久存储区域中。这恰好是 Equinox 默认的“本地包缓存”目录。

所以我阅读了这个主题,发现 Equinox 有几个运行时选项(除其他外,osgi.configuration.area)。

我想要更改配置,以便不会删除或清除本地包缓存,因此下次我将运行框架时,将使用最后输入的配置(对于任何包)。

4

3 回答 3

5

还有osgi.clean物业。如果将此设置为 true,则 OSGi 容器必须在启动时删除现有的包缓存(和所有相关数据)并将包重新加载到运行时缓存中。如果您将此设置为 false,那么您的包缓存应该在重新启动后仍然存在。

这记录在 Eclipse SDK Equinox Runtime Options 中。

于 2009-08-11T15:39:30.893 回答
0

CM 并非旨在在您停止容器后保留数据。如果您想这样做,您必须使用首选项服务。

因此,您的应用程序在初始化时必须从 PS 管理的持久存储中获取数据并将其“传递”给 CM 才能正常工作。

于 2012-02-01T13:15:43.773 回答
-1

用于指定是否应在框架启动时清除捆绑缓存的 OSGi 标准属性是org.osgi.framework.storage.clean

org.osgi.framework.storage.clean - 确定包缓存是否被刷新。该值可以是“none”或“onFirstInit”,其中“none”不会刷新包缓存,而“onFirstInit”会在首次初始化框架实例时刷新包缓存。默认值为“无”。

这是一个相对较新的版本(事实上,它仍然是一个草案,在R4.2 Draft的第 4.2.2 节下找到它),但我猜它应该可以在最近的 Equinox 版本中使用。

于 2009-08-11T13:25:20.717 回答