2014-04-30 22 views
1

我有一個使用藍圖和Camel PropertiesComponent進行配置的Camel路由,我可以通過'mvn camel:run'獨立運行它,或者我可以將它安裝到一個Karaf容器中。這兩種工作都很好,並發現這些屬性並將它們注入到路由中。使用Apache Camel藍圖 - 需要持久化容器內的屬性和獨立

我想不出是如何堅持屬性,當他們在運行時更改(作爲一個例子,我希望在航線停止/ shutsdown設置一個標記,然後路由啓動時讀取它)。

我已閱讀關於OSGi ConfigAdmin - 但這似乎不支持持久屬性。 我也讀過關於OSGi首選項服務(它支持持久性) - ,我該如何實現這一點,以便我可以獨立運行它或在容器中?這將需要駱駝路線有一個引用的服務,從而取決於OSGi?

有沒有一種方法來抽象偏好服務的獨立方式,它不依賴於容器服務?

在此先感謝。

回答

1

OSGi中的ConfigurationAdmin彙編服務確實支持持久性屬性。事實上,它默認是這樣做的(數據最終在bundle緩存中,所以你需要確保你沒有在每次重啓時都清除它,這是不好的做法)。

如果你使用Apache的菲利克斯的人,你甚至得到一個選項:

  1. 重新配置,其中數據持久化的位置。
  2. 如果您想使用數據庫或其他東西,請提供您自己的存儲後端。

參見:http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html

+0

謝謝!是的,我現在看到 - 使用fabric8並且在用戶界面中更改配置會保留屬性文件。不知道自己的存儲後端....很棒! – nocturnal

相關問題