OSGi DS服务配置和ServiceTracker

时间:2016-07-03 14:44:35

标签: java osgi declarative-services

假设我有一个OSGi服务A,使用DS和元类型配置声明。

然后让我们调用另一个基于属性过滤器跟踪任何对象的服务,该属性过滤器不属于A的配置。

在A中,是否有可能访问服务属性并在运行时更新它们,以便B注意到更改?

请注意,B跟踪的属性不是配置属性,但是A可以从其自己的配置中推断出来,因此理想情况下A将在解析配置后在其@Activate方法中更新其服务属性。

2 个答案:

答案 0 :(得分:1)

如果你不关心配置语法与属性的直接耦合,那么有一个更简单的解决方案。

只需在组件A的配置中设置服务属性。它将直接反映为B可以过滤的服务属性。

答案 1 :(得分:0)

您可以在A的激活方法中以编程方式注册服务,以便您可以决定应添加哪些服务属性。