이 문서는 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 : 이슈 변경시 실행