2015-04-06 4 views
1

Мне нужно сделать некоторые изменения в поле JIRA-ticket, когда происходят определенные события. Было рекомендовано, чтобы я написал пользовательское событие прослушиватель - для вызова JIRA.Как написать плагин JIRA-listenener?

Однако я несколько неясно, как сделать это правильно - online tutorial hosted by Atlassian создает боб, в то время как Atlassian собственного DebugListener.java и MailListener.java (от текущей JIRA исходного дерева) использовать классы, простирающиеся AbstractIssueEventListener без упоминания о бобах-каркасе.

Я использовал пример учебника и не могу заставить его работать. Должен ли я продолжать борьбу, или я должен перейти к другому методу? Какая из них является рекомендуемой и официальной, и которая является «наследием»?

В настоящее время JIRA имеет в производстве версию 6.1.7. Мне не нужен мой плагин для работы с чем-либо до этого.

ответ

1

Код образец EventListener, что на самом деле работает для меня:

public class TestEventListener extends AbstractIssueEventListener implements InitializingBean, DisposableBean { 
private final EventPublisher eventPublisher; 

public TestEventListener(
     EventPublisher eventPublisher 
) { 
    this.eventPublisher = eventPublisher; 
} 

@EventListener 
public void onIssueEvent(IssueEvent issueEvent) throws JiraException, IOException, URISyntaxException { 
} 

/** 
* Called when the plugin has been enabled. 
* 
* @throws Exception 
*/ 
@Override 
public void afterPropertiesSet() throws Exception { 
    // register ourselves with the EventPublisher 
    eventPublisher.register(this); 
} 

/** 
* Called when the plugin is being disabled or removed. 
* 
* @throws Exception 
*/ 
@Override 
public void destroy() throws Exception { 
    // unregister ourselves with the EventPublisher 
    eventPublisher.unregister(this); 
} 

}

+0

Да, я переписать свой собственный код для расширения 'AbstractIssueEventListener' - _instead_ реализации бобов. Я думаю, учебник Atlassian устарел - потому что класс, основанный на бине, просто не использовался JIRA. –

+0

Я пробовал это, но мог заставить его работать. Он всегда печатает «Класс загрузки исключений: [Class '... Listener» загружается из OSGi, но не разрешенные плагины могут автоустанавливать экземпляр.]. ' – kravemir

2

Для тех, кто, видя это в JIRA 7.1, у меня есть решение документированного на самом ответ сайт Atlassian в. Мое решение не расширяет AbstractIssueEventListener. Я не утверждаю, что один подход лучше или хуже. Тем не менее, мой подход не требует ручной загрузки слушателя (как с расширением подхода AbstractIssueEventListener). Он работает автоматически.

https://answers.atlassian.com/questions/51997/answers/37520082?flashId=17814304