Configuration 是否更改OSGi配置管理服务的配置存储位置?

Configuration 是否更改OSGi配置管理服务的配置存储位置?,configuration,osgi,Configuration,Osgi,有没有办法更改OSGi配置管理服务的配置存储位置?我希望属性文件存在于另一个捆绑包中,以便它们存在于源代码管理中&在部署中,而不是在OSGi存储中。最后,我决定使用Apache Felix File Install来更新配置管理管理服务的配置属性。这似乎效果还算不错 这有点麻烦,因为当更新文件时,新的配置属性会被推送到托管服务,而不管它们的值是否正确。这意味着在下一次启动时,这些值仍然不正确&需要设置为默认值 现在应该可以使用了。配置管理实现无法做到这一点,至少不能通过规范以可移植的方式实现。相

有没有办法更改OSGi配置管理服务的配置存储位置?我希望属性文件存在于另一个捆绑包中,以便它们存在于源代码管理中&在部署中,而不是在OSGi存储中。

最后,我决定使用Apache Felix File Install来更新配置管理管理服务的配置属性。这似乎效果还算不错

这有点麻烦,因为当更新文件时,新的配置属性会被推送到托管服务,而不管它们的值是否正确。这意味着在下一次启动时,这些值仍然不正确&需要设置为默认值


现在应该可以使用了。

配置管理实现无法做到这一点,至少不能通过规范以可移植的方式实现。相反,您需要一个“管理代理”,它通过API将配置数据推送到Config Admin中;它可以从它想要的任何源中导出配置数据

FileInstall是一个非常简单的管理代理示例。如果它不能完全满足您的需要,那么编写自己的代码也不太困难


ManagedServices仍然需要对传入的配置数据执行验证,并对新的配置数据作出动态响应。OSGi是一个动态平台,Config Admin设计用于允许运行系统的动态重新配置。

ConfigAdmin如何持久存储数据取决于实现。您可以更具体地说,您使用的是哪个OSGi实现吗?我使用的是Felix配置管理实现。我注意到它可以设置数据存储位置,但它添加了我不关心的服务属性。然后我碰巧安装了Felix文件,我可以用它来配置带有属性文件的捆绑包。这就是我目前正在使用的。我希望能够使用配置管理服务将更改推回到通过文件安装加载的属性。