2016-11-21 105 views
1

考虑在SERVICE_PID“a.b.c”上注册的托管服务。通过配置管理API配置OSGi托管服务

我需要有两个不同的代码位指定特定工厂PID的配置。

ConfigurationAdmin.createFactoryConfiguration()仅使用工厂PID,而不使用实例PID。那么,如何获取特定项目的配置字典?例如,felix fileinstall会分析一个文件名,如PID-FACTORYPID,然后丢弃FACTORYPID并仅在PID上调用createFactoryConfiguration。

如果我这样做,结果将流入“更新”方法,并在最后使用带唯一字符串的PID。所以我以后不能用相同的字符串来调用'update'来改进它。

回答

2

如果您创建工厂配置,那么您只能定义工厂PID。个人配置pid由config admin impl选择。

稍后查找此类配置的最佳方法是对其中一个或一些属性使用过滤器。你可以例如给它一个属性myid = 1,稍后用过滤器(myid = 1)找到它。