Декларативные сервисы OSGi / Felix: Как отфильтровать сервисы, которые нужно связать?
Я использую 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.