配置Equinox以修改“本地捆绑缓存”的管理

时间:2009-08-11 13:16:19

标签: java configuration osgi equinox

关于上一个问题,how let OSGi to reuse your configuration via Config Admin,我仍然试图在Equinox框架中解决这个问题。

Pavol Juhos写道:

  

Equinox Config Admin(org.eclipse.equinox.cm)将配置数据存储在Framework提供的持久存储区域中。对于Equinox,这恰好是“本地捆绑缓存”目录。

所以我读了这个主题,发现Equinox有几个runtime options(其中包括osgi.configuration.area)。

我想要的是更改配置,以便不会下载或清理本地捆绑缓存,因此下次我将运行Framework时,将使用最后输入的配置(对于任何捆绑包)

3 个答案:

答案 0 :(得分:4)

还有osgi.clean属性。如果将此参数设置为true,则OSGi容器必须在启动时删除现有的捆绑缓存(以及所有相关数据),并将捆绑包重新加载到运行时缓存中。如果将此值设置为false,则捆绑缓存应在重新启动后继续存在。

这在Eclipse SDK Equinox运行时选项中有记录。

答案 1 :(得分:0)

在停止容器后,CM不是为了保留数据而设计的。 如果您想这样做,您必须使用首选项服务。

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

答案 2 :(得分:-1)

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

  

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

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