Справочник по подключаемому модулю Maven SCR Аннотация Использование целевого атрибута

Вы можете отфильтровать доступные реализации через атрибут «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&&(...))".


person salihk    schedule 20.06.2016    source источник


Ответы (1)


Синтаксис объясняется в главе "3.2.7 Синтаксис фильтра" спецификации OSGi Core. Фильтры, которые вы определяете в аннотации SCR, являются фильтрами OSGi. Несколько примеров:

(k1=v1)
(&(k2=v1)(k2=v2))
(&(|(k1=v1)(k2=v2))(k3=v3))

Синтаксис, который задает OSGi, такой же, как и для поисковых фильтров LDAP.

person Balazs Zsoldos    schedule 20.06.2016
comment
Я понимаю. Мне нужно использовать префиксную нотацию. Большое спасибо. - person salihk; 20.06.2016