이 문서는 Java에서 Jira EventListener 구현하는 방법을 공유하기 위해 작성되었다.
| 도구명 | jira, java |
|---|---|
| 버전 | 8.22 |
EventListener register, unregister
onStart, onStop Override
@ExportAsService
public class JiraIssueChangedEventListener implements LifecycleAware {
@ComponentImport
private EventPublisher eventPublisher;
@Override
public void onStart() {
eventPublisher.register(this);
logger.debug("- JiraIssueEventListener onStart!");
}
@Override
public void onStop() {
eventPublisher.unregister(this);
logger.debug("- JiraIssueEventListener onStop!");
}
}
- LifecycleAware의 plugin onStart, onStop 메소드 구현
- onStart : plugin이 시작될 때 eventPublisher api - EventLIstener register
- onStop : plugin이 종료되면 eventPublisher api - EventLIstener unregister
eventPublisher 응용
public void controlListener(){
if(getDbInfo1().get("listenerJob").equals("on")){
eventPublisher.register(this);
}else if(getDbInfo1().get("listenerJob").equals("on") || getDbInfo1().get("listenerJob") == null){
eventPublisher.unregister(this);
}
}
- 서버 DB에 Listener 정보를 저장, 임의적으로 register, unregister handling
- plugin이 작동되는 동안 Listener on/off 가능 (servlet - templateRenderer로 vm, js 형식으로 UI 기능 구현)
EventListener Job 구현
eventListener job 구현
@EventListener
public void issueUpdatedEventListener(IssueChangedEvent issueChangedEvent) throws GenericEntityException {
logger.debug("- issueUpdatedEventListener");
Issue changedIssue = issueChangedEvent.getIssue();
logger.debug("Issue Event Listener - changed issue : " + changedIssue.getName);
}
- @EventListener annotation - eventListener Job 선언
- IssueChangedEvent : 이슈 변경시 실행