Вы можете отфильтровать доступные реализации через атрибут «target» @Reference, как показано ниже:
@Reference(target="(k1=v1)") ISomeServiceContract svc1;
Мой вопрос касается значения фильтра. В документации очень мало говорится об этом, и я сбит с толку.
http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html#reference указывает следующее для атрибута target:
«Целевой фильтр службы для выбора конкретных услуг, которые будут доступны».
Имеют ли значения фильтра в плагине SCR особый синтаксис (т. е. зачем мне вообще нужны скобки, окружающие ключ, равный спецификации значения)? Позволяет ли он указывать такие вещи, как "(k1=v1&&k2=v2)" или "(k1=v1||k2=v2&&(...))".