I hope someone is familiar with Atlassian SDK for Jira Server.
I try to catch an event when an attachment is added to Jira Issue. Here is my code listening to issue events:
@Component
public class IssueEventListener implements InitializingBean, DisposableBean {
private static final Logger log = LoggerFactory.getLogger(IssueEventListener.class);
@JiraImport
private final EventPublisher eventPublisher;
@Autowired
public IssueEventListener(EventPublisher eventPublisher) {
this.eventPublisher = eventPublisher;
}
@Override
public void destroy() throws Exception {
log.info("Disabling plugin");
eventPublisher.unregister(this);
}
@Override
public void afterPropertiesSet() throws Exception {
log.info("Enabling plugin");
eventPublisher.register(this);
}
@EventListener
public void onIssueEvent(IssueEvent issueEvent) {
Long eventTypeId = issueEvent.getEventTypeId();
Issue issue = issueEvent.getIssue();
if (eventTypeId.equals(EventType.ISSUE_CREATED_ID)) {
log.warn("Issue {} has been created at {}.", issue.getKey(), issue.getCreated());
System.out.println("issue created");
}
else if (eventTypeId.equals(EventType.ISSUE_UPDATED_ID)) {
log.warn("Issue {} has been updated (Attachment created/deleted at {}.", issue.getKey(), issue.getUpdated());
System.out.println("issue updated");
}
}
}
Here is the code for attachment creation:
CreateAttachmentParamsBean attachmentParamsBean = new CreateAttachmentParamsBean.Builder(new File(path),
filename, "text/plain", context.getLoggedInUser(),
issue).build();
ChangeItemBean bean = ComponentAccessor.getAttachmentManager().createAttachment(attachmentParamsBean);
This code adds an attachment to the issue, but the event is not fired and issue history does not show that attachment also. On the other hand, when I add an attachment through Jira issue page manually, the event is fired and history shows an attachment too. So what is the problem with this code? Thanks in advance