Blueprint property-placeholder provider

时间:2016-04-19 04:15:07

标签: osgi apache-karaf blueprint-osgi

在OSGi蓝图中,我可以从property-placeholder获得params <cm:property-placeholder persistent-id="id" update-strategy="reload"/>.但是,这些参数将从.cfg加载。我需要从DataBase加载params,我可以为property-placeholder设置params提供程序吗?

1 个答案:

答案 0 :(得分:0)

属性占位符 cm:property-placeholder只能从config admin提供属性。因此,只需配置一些xml就没有简单的解决方法。

有三种方法可以实现这一目标:

  1. 您可以编写一个ConfigAdmin后端,从数据库中检索配置。
  2. 您可以编写自己的蓝图命名空间,该命名空间实现类似property-placeholder元素的元素,并从数据库中检索配置。
  3. 一个更简单的解决方案是在运行时安装一个读取数据库的bundle,并使用ConfigurationAdmin服务根据数据库内容创建配置。
  4. 所以我会选择第三种解决方案。它的良好副作用是,一旦你编写了配置文件,如果数据库出现故障就没有中断。