关于上一个问题,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时,将使用最后输入的配置(对于任何捆绑包)
答案 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版本,我猜。