Я пытаюсь написать плагин прослушивателя событий для jira. Когда я иду по-старому (что делает последний Atlassian SDK 6.2.9) и помещаю эти 2 строки
<component key="eventListener" class="jira.plugins.listeners.MyEventListener"/>
<component-import key="eventPublisher" class="com.atlassian.event.api.EventPublisher"/>
и попробуйте упаковать плагин, я получаю предупреждение о том, что I cannot use component/component-import statement inside plugin descriptor file when Atlassian plugin key is set
. Последний SDK использует Spring Scanner, который автоматически добавляется в файл pom.xml во время создания скелета и который настоятельно рекомендуется в документации. Поэтому я удаляю эти две строки из файла atlassian-plugin.xml и пытаюсь заменить их соответствующими аннотациями:
@Component
public class MyEventListener{
@Inject
public MyEventListener(@ComponentImport EventPublisher eventPublisher){
eventPublisher.register(this);
}
}
Я могу скомпилировать и упаковать его таким образом, но когда я устанавливаю его на работающий экземпляр Jira, в описании плагина написано This plugin has no modules
. Я пытался изменить @Component на @Named , добавить @ExportAsService в класс, но безрезультатно. Кажется, весенний сканер не обнаруживает мой класс как компонент. Кто-нибудь смог победить эту проблему? Я написал сообществу Atlassian, но пока не получил никаких новостей.
@EventListener
все равно вызываются. Вы пытались добавить журналирование в свои методы@EventListener
и/или конструктор? - person Joshua Webb   schedule 04.02.2017