4

Apache Felix とその Declarative Services (SCR) を使用して、バンドル間のサービス依存関係を結び付けています。

たとえば、java.util.Dictionary にアクセスする必要がある場合は、次のように言って SCR に提供させることができます。

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

protected void bindProperties(Dictionary d) {
}

protected void unbindProperties(Dictionary d) {
}

現在、複数の辞書サービスが利用可能であり、「name」サービス プロパティを使用してそれらをフィルター処理したいと考えています (「name=myDictionary」のみが必要です)。これはコードで (ServiceTracker を使用して) 行うことができますが、代わりに @scr アノテーションでフィルターを指定したいと思います。

4

2 に答える 2

4

おもう

target="(name=myDictionary)"

@scr.reference注釈のトリックを行う必要があります。http://felix.apache.org/site/apache-felix-maven-scr-plugin.htmlを参照してください

于 2008-12-15T10:41:22.607 に答える
1

標準の DS では、参照要素の target 属性を使用できます。注釈を使用できるフェリックスの世界では、何が同等かわかりません。

ターゲット属性は LDAP フィルターであり、サービス プロパティと照合します。したがって、フィルターは次のようになります。

(name=myDictionary)

于 2008-11-26T23:03:50.883 に答える