Question

J'utilise Apache Felix et ses services de déclaration (SCR) pour connecter les dépendances de service entre les ensembles.

Par exemple, si j'ai besoin d'un accès à un fichier java.util.Dictionary, je peux dire ce qui suit pour que SCR en fournisse un:

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

protected void bindProperties(Dictionary d) {
}

protected void unbindProperties(Dictionary d) {
}

Maintenant, j'ai plusieurs services de dictionnaire disponibles et je souhaite les filtrer en utilisant le "nom". propriété de service (je ne souhaite que " name = myDictionary "). Je peux le faire avec du code (en utilisant un ServiceTracker), mais je préférerais plutôt spécifier le filtre dans l'annotation @scr.

Était-ce utile?

La solution

Je pense

target="(name=myDictionary)"

devrait faire l'affaire dans l'annotation @ scr.reference . Voir http://felix.apache.org/site/apache -felix-maven-scr-plugin.html

Autres conseils

Dans DS standard, vous pouvez utiliser l'attribut cible de l'élément de référence. Dans Felix World, où les annotations peuvent être utilisées, je ne sais pas quel est l'équivalent.

L'attribut cible est un filtre LDAP, qui correspond aux propriétés du service. Donc, votre filtre devrait être:

(name = myDictionary)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top