Я использую maven-scr-plugin для генерации описаний компонентов и метатипов. Я переношусь из аннотаций org.apache.felix.scr в аннотации org.osgi.service.component.Генерировать описания метатипа с помощью maven-scr-plugin и аннотаций OSGI R6
Carsten Ziegeler написал отличный блог о том, как это сделать: here. Однако это не объясняет, как иметь описания метатипов, непосредственно созданные из аннотаций компонента. Вместо этого мне пришлось бы создать отдельную конфигурацию @interface для каждого компонента и переписать все активаторы компонентов (по крайней мере, использовать добавленное значение этих дополнительных классов @interface).
Я все еще могу использовать maven-scr-плагин для обработки аннотаций osgi, добавив зависимость от org.apache.felix.scr.ds-annotations
. Тем не менее, maven-scr-plugin выводит только информацию о метатипах, если она явно включена. С аннотациями felix выделен параметр metatype=true
в аннотации @Component
, позволяющий генерировать метатипы. Однако такой параметр недоступен в версии OSGi аннотации @Component
.
Есть ли способ заставить maven-scr-плагин генерировать описания метатипа, или я могу сделать maven-bundle-plugin (или bndtools) для генерации данных метатипа на основе аннотации osgi @Component вместо необходимо определить выделенный класс конфигурации для каждого компонента?
Да, я понял, и это работает без проблем. Однако, чтобы сделать это правильно, мне также пришлось бы изменить все активаторы, как показано в вашем примере (я знаю, что это можно сделать без, но это оставляет много неиспользуемых шаблонов в моих классах). Могу ли я увидеть ваш ответ в качестве подтверждения того, что bnd не поддерживает подход, который я ищу? Тогда я могу исключить этот путь решения, оставив только maven-scr-плагин в качестве возможного решения. –
Вышеприведенный код показывает, какой OSGi стандартизован ... –