1

我有一个使用蓝图和 Camel PropertiesComponent 进行配置的 Camel 路线,我可以通过“mvn camel:run”独立运行它,也可以将它安装到 Karaf 容器中。两者都工作得很好,发现属性并将它们注入到路由中。

我无法弄清楚的是如何在运行时更改属性时保留它们(例如,我想在路由停止/关闭时设置一个标记,然后在路由启动时将其读回)。

我已经阅读了有关 OSGi ConfigAdmin 的信息——但这似乎不支持持久属性。我还阅读了有关 OSGi 首选项服务(确实支持持久性)的信息 -但是我如何实现它以便我可以独立运行它或在容器中运行它?这将需要骆驼路线引用服务,从而取决于OSGi?

有没有办法以不依赖容器服务的独立方式抽象首选项服务?

提前致谢。

4

1 回答 1

1

OSGi 中的 ConfigurationAdmin 纲要服务确实支持持久属性。事实上,默认情况下它会这样做(数据最终在捆绑缓存中,因此您需要确保不会在每次重新启动时擦除它,无论如何这都是不好的做法)。

如果您使用 Apache Felix 中的那个,您甚至可以选择:

  1. 重新配置数据保存的位置。
  2. 如果您想使用数据库或其他东西,请提供您自己的存储后端。

请参阅:http: //felix.apache.org/documentation/subprojects/apache-felix-config-admin.html

于 2014-05-02T06:40:24.447 回答