配置Equinox以修改“本地捆绑缓存”的管理
关于上一个问题, 如何让OSGi通过Config Admin重用您的配置 ,我仍然试图在Equinox框架中解决这个问题。
Pavol Juhos写道:
Equinox Config Admin(org.eclipse.equinox.cm)将配置数据存储在Framework提供的持久存储区域中。 而且恰好是Equinox默认的“本地捆绑缓存”目录。
所以我读了这个主题,发现Equinox有几个运行时选项 (其中包括osgi.configuration.area)。
我想要的是更改配置,以便不会下载或清理本地捆绑缓存,因此下次我将运行Framework时,将使用最后输入的配置(对于任何捆绑)。
还有osgi.clean
属性。 如果将其设置为true,则OSGi容器必须在启动时删除现有的捆绑缓存(以及所有相关数据),并将捆绑包重新加载到运行时缓存中。 如果将此值设置为false,则捆绑缓存应在重新启动后继续存在。
这在Eclipse SDK Equinox运行时选项中有记录。
停止容器后,CM不会设计为持久保存数据。 如果要这样做,则必须使用“首选项服务”。
因此,在初始化时,您的应用程序必须从PS管理的持久存储中获取数据并将其“传递”到CM才能正常工作。
用于指定是否应在框架启动时清除bundle缓存的OSGi标准属性是org.osgi.framework.storage.clean
org.osgi.framework.storage.clean – 确定是否刷新捆绑缓存。 该值可以是“none”或“onFirstInit”,其中“none”不刷新bundle缓存,而“onFirstInit”在首次初始化框架实例时刷新bundle缓存。 默认值为“none”。
这是一个相对较新的(事实上,它仍然是一个草案,在第4.2.2节的R4.2草案中找到它),但它应该适用于最近的Equinox版本,我想。