如何编写JIRA-listener插件?

时间:2015-04-06 15:18:17

标签: jira-plugin

每当发生某些事件时,我都需要自动对JIRA票据字段进行一些更改。建议我编写一个自定义事件 listener - 由JIRA调用。

但是,我有点不清楚 如何正确地做到这一点 - online tutorial hosted by Atlassian创建 bean ,而Atlassian&#39 ; s DebugListener.javaMailListener.java(来自当前的JIRA源树)使用扩展AbstractIssueEventListener的类而不提及bean-framework。

我使用了教程的示例,但无法使其正常工作。我应该继续挣扎,还是应该改用其他方法?其中哪一个是目前推荐的和官方的,哪些是"遗产"?

我们目前生产的JIRA是6.1.7版本 - 在此之前我不需要我的插件来处理任何事情。

2 个答案:

答案 0 :(得分:2)

对于在JIRA 7.1中看到这一点的任何人,我在Atlassian的答案网站上都有一个解决方案。我的解决方案没有扩展AbstractIssueEventListener。我并不认为一种方法更好或更糟。但是,我的方法不需要手动加载监听器(与扩展AbstractIssueEventListener方法一样)。它会自动运行。

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

答案 1 :(得分: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);
}

}