Ссылочный плагин Maven SCR Использование целевых атрибутов

Вы можете отфильтровать доступные реализации через атрибут target в @Reference, как показано ниже:

@Reference (target = "(k1 = v1)") ISomeServiceContract svc1;

Мой вопрос о значении фильтра. Документация говорит об этом очень мало, и я в замешательстве.

http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html заявляет следующее для атрибута "target":

Msgstr "Фильтр целевых сервисов для выбора определенных сервисов, которые будут доступны".

Имеют ли значения фильтра в плагине SCR определенный синтаксис (т. Е. Зачем мне даже скобка вокруг ключа равна спецификации значения)? Позволяет ли вам указывать такие вещи, как "(k1=v1&&k2=v2)" или "(k1=v1||k2=v2&&(...))".

1 ответ

Решение

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

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

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

Другие вопросы по тегам