每当发生某些事件时,我都需要自动对JIRA票据字段进行一些更改。建议我编写一个自定义事件 listener - 由JIRA调用。
但是,我有点不清楚 如何正确地做到这一点 - online tutorial hosted by Atlassian创建 bean ,而Atlassian&#39 ; s DebugListener.java
和MailListener.java
(来自当前的JIRA源树)使用扩展AbstractIssueEventListener
的类而不提及bean-framework。
我使用了教程的示例,但无法使其正常工作。我应该继续挣扎,还是应该改用其他方法?其中哪一个是目前推荐的和官方的,哪些是"遗产"?
我们目前生产的JIRA是6.1.7版本 - 在此之前我不需要我的插件来处理任何事情。
答案 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);
}
}