我有一个使用blueprint和Camel PropertiesComponent进行配置的Camel路由,我可以通过'mvn camel:run'独立运行它,或者我可以将它安装到Karaf容器中。两者都很有效,发现了它们并将它们注入到路线中。
我无法弄清楚如何在运行时更改持久属性(例如,我想在路径停止/关闭时设置标记,然后在路线开始)。
我已阅读有关OSGi ConfigAdmin的内容 - 但这似乎不支持持久性属性。 我还读过有关OSGi首选项服务(它支持持久性) - 但,我如何实现它以便我可以独立运行它或在容器中运行它?将要求Camel路由引用服务,因此取决于OSGi?
有没有办法以独立的方式抽象偏好服务,而不依赖于容器服务?
提前感谢。
答案 0 :(得分:1)
OSGi中的ConfigurationAdmin概要服务确实支持持久化属性。实际上它默认情况下会这样做(数据最终会出现在捆绑缓存中,因此您需要确保在每次重启时都不会擦除它,这无论如何都是不好的做法。)
如果您使用Apache Felix中的那个,您甚至可以选择:
请参阅:http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html