2015-04-06 138 views
1

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

不过,我有点不清楚的如何正确地做到这一点 - 一个online tutorial hosted by Atlassian创建,而Atlassian的自己DebugListener.javaMailListener.java(从当前JIRA源树)使用扩展AbstractIssueEventListener类没有提到bean框架。

我使用了教程的示例,并且无法使其工作。我应该继续挣扎吗,还是应该改用其他方法?其中哪些是目前推荐的和官方的,哪些是“遗产”?

我们目前生产的JIRA是6.1.7版 - 我不需要我的插件来处理任何事情。该事件监听,实际上对我的作品的

回答

1

代码示例:

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的教程是陈旧的 - 因为基于bean的类没有被JIRA使用。 –

+0

我试过这个,但可以让它工作。它总是打印异常加载类:[Class'... Listener'可从OSGi加载,但没有启用的插件可以自动装载实例。]。' – kravemir