OSGi/Felix声明式服务:如何过滤要绑定的服务?

发布于 2024-07-09 03:27:54 字数 452 浏览 14 评论 0原文

我正在使用 Apache Felix 及其声明性服务 (SCR) 来连接捆绑包之间的服务依赖关系。

例如,如果我需要访问 java.util.Dictionary,我可以说以下内容让 SCR 提供一个:

/**
* @scr.reference name=properties interface=java.util.Dictionary
*/

protected void bindProperties(Dictionary d) {
}

protected void unbindProperties(Dictionary d) {
}

现在,我有多个可用的 Dictionary 服务,并且我想使用“name”服务属性来过滤它们(我只想要“name=myDictionary”)。 我可以使用代码(使用 ServiceTracker)来做到这一点,但我宁愿在 @scr 注释中指定过滤器。

I am using Apache Felix and its Declarative Services (SCR) to wire the service dependencies between bundles.

For example, if I need access to a java.util.Dictionary I can say the following to have SCR provide one:

/**
* @scr.reference name=properties interface=java.util.Dictionary
*/

protected void bindProperties(Dictionary d) {
}

protected void unbindProperties(Dictionary d) {
}

Now, I have more than one Dictionary service available, and I want to filter them using the "name" service property (I only want "name=myDictionary"). I can do that with code (using a ServiceTracker), but I'd rather specify the filter in the @scr annotation instead.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

橙味迷妹 2024-07-16 03:27:54

我认为

target="(name=myDictionary)"

应该在 @scr.reference 注释中解决这个问题。 请参阅 http://felix.apache.org/site/apache -felix-maven-scr-plugin.html

I think

target="(name=myDictionary)"

should do the trick in the @scr.reference annotation. See http://felix.apache.org/site/apache-felix-maven-scr-plugin.html

枯叶蝶 2024-07-16 03:27:54

在标准DS中,您可以使用参考元素的目标属性。 在Felix世界里,可以使用注释,我不知道相当于什么。

目标属性是 LDAP 过滤器,它与服务属性进行匹配。 所以,你的过滤器应该是:


(名称=我的词典)

In standard DS, you can use target attribute of the reference element. In Felix world, where annotations can be used, I don't know what is the equivalent.

The target attribute is an LDAP filter, which matches against the service properties. So, your filter should be:


(name=myDictionary)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文