【发布时间】:2015-07-05 13:51:41
【问题描述】:
我想知道是否可以使用声明性服务注释来利用 osgi 企业规范的 par.104.7.5(使用多位置)中解释的内容。引用规格:
Bundles 也可能对一个目标服务的多个 PID 感兴趣,因此它们可以为一个服务注册多个 PID。 [...]
对主机配置感兴趣的 Bundle 将注册具有以下属性的托管服务:
service.pid = [ "com.acme.host", "com.acme.system" ]对于
com.acme.host和com.acme.systemPID,Bundle 将被回调,因此必须区分这两种情况。因此,此托管服务将具有如下回调:
volatile URL url;
public void updated( Dictionary d ) {
if ( d.get("service.pid").equals("com.acme.host"))
this.url = new URL( d.get("host"));
if ( d.get("service.pid").equals("com.acme.system"))
...
}
我尝试了以下语法:
@Component(
immediate = true,
configurationPid = "[com.mycompany.ws.rest,com.mycompany.endpoints]",
configurationPolicy = ConfigurationPolicy.REQUIRE
)
public class TestImpl implements Test {
// ...
}
但这失败了。当然,可以参考 config admin 并根据所需的 pid 浏览配置,但这对我来说似乎有点不雅,因为理论上可以将其委托给 ds 注释。
有可能吗?正确的语法是什么?
谢谢!
【问题讨论】:
标签: java osgi declarative-services