Page tree

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





  • No labels