/src/main/resources/com/onresolve/jira/groovy/listeners/MoveIssueListener.groovy
Groovy | 118 lines | 93 code | 22 blank | 3 comment | 1 complexity | 85736f6e0a3ae291122005bef6bbca96 MD5 | raw file
- package com.onresolve.jira.groovy.listeners
-
- import com.atlassian.jira.event.issue.AbstractIssueEventListener
- import com.atlassian.jira.event.issue.IssueEvent
- import com.atlassian.jira.ComponentManager
- import org.apache.log4j.Category
- import com.atlassian.jira.event.type.EventTypeManager
- import com.atlassian.jira.event.type.EventType
- import com.atlassian.jira.ComponentManager
- import com.atlassian.jira.issue.CustomFieldManager
- import com.atlassian.jira.issue.MutableIssue
- import com.atlassian.jira.issue.fields.CustomField
- import org.apache.log4j.Category
- import org.apache.log4j.Level
- import com.atlassian.jira.web.bean.MoveIssueBean
- import com.atlassian.jira.web.action.issue.MoveIssueUpdateFields
- import com.atlassian.jira.issue.IssueFieldConstants
- import com.atlassian.jira.bc.issue.comment.CommentService
- import com.atlassian.jira.issue.security.IssueSecurityHelper
- import webwork.action.ActionContext
- import com.atlassian.jira.web.SessionKeys
- import com.atlassian.jira.web.action.issue.MoveIssueConfirm
- import com.atlassian.jira.issue.AttachmentManager
- import com.atlassian.jira.project.ProjectManager
- import com.atlassian.jira.project.Project
- import com.atlassian.jira.issue.IssueManager
- import com.atlassian.core.ofbiz.util.CoreTransactionUtil
-
- class MoveIssueListener extends AbstractIssueEventListener {
- Category log = Category.getInstance(ExampleListener.class)
-
- @Override
- void workflowEvent(IssueEvent event) {
- Map eventTypes = ComponentManager.getInstance().getEventTypeManager().getEventTypesMap()
- log.debug "Event: \"${eventTypes[event.getEventTypeId()].name}\" fired for ${event.issue}"
-
- final EventTypeManager eventTypeManager = ComponentManager.getInstance().getEventTypeManager();
-
- final Long eventTypeId = event.getEventTypeId();
- final EventType eventType = eventTypeManager.getEventType(eventTypeId);
-
- if (eventTypeId.equals(EventType.ISSUE_WORKSTARTED_ID))
- {
- issueStarted(event);
- }
- }
-
- @Override
- void issueStarted(IssueEvent event) {
- CoreTransactionUtil.begin()
- log.debug("issueStarted, move me now.")
-
- ComponentManager componentManager = ComponentManager.getInstance()
-
- ProjectManager projectManager = componentManager.getProjectManager()
- Project targetProject = projectManager.getProjectObjByKey("JRA")
- IssueManager issueManager = componentManager.getIssueManager()
-
- // MutableIssue targetIssue = issueManager.getIssueObject('JRTWO-7')
- MutableIssue targetIssue = event.getIssue() as MutableIssue
-
-
- MoveIssueBean moveIssueBean = new MoveIssueBean(componentManager.getConstantsManager(), projectManager);
- moveIssueBean.getFieldValuesHolder().put(IssueFieldConstants.PROJECT, targetProject.id)
- moveIssueBean.getFieldValuesHolder().put(IssueFieldConstants.ISSUE_TYPE, "1")
- moveIssueBean.setIssueId(targetIssue.id)
- moveIssueBean.setTargetStatusId("1")
-
-
- log.debug(moveIssueBean)
- //MoveIssueUpdateFields moveIssueUpdateFields = ComponentManager.getComponentInstanceOfType(MoveIssueUpdateFields.class)
- //log.debug moveIssueUpdateFields
-
- ActionContext.getSession().put(SessionKeys.MOVEISSUEBEAN, moveIssueBean)
- MoveIssueUpdateFields moveIssueUpdateFields = new MoveIssueUpdateFields(
- componentManager.getIssueLinkManager(),
- componentManager.getSubTaskManager(),
- componentManager.getConstantsManager(),
- componentManager.getWorkflowManager(),
- componentManager.getFieldManager(),
- componentManager.getFieldLayoutManager(),
- componentManager.getIssueFactory(),
- componentManager.getFieldScreenRendererFactory(),
- ComponentManager.getComponentInstanceOfType(CommentService),
- ComponentManager.getComponentInstanceOfType(IssueSecurityHelper.class)
- )
-
- MoveIssueConfirm moveIssueConfirm = new MoveIssueConfirm(
- componentManager.getIssueLinkManager(),
- componentManager.getSubTaskManager(),
- ComponentManager.getComponentInstanceOfType(AttachmentManager.class),
- componentManager.getConstantsManager(),
- componentManager.getWorkflowManager(),
- componentManager.getFieldManager(),
- componentManager.getFieldLayoutManager(),
- componentManager.getIssueFactory(),
- componentManager.getFieldScreenRendererFactory(),
- ComponentManager.getComponentInstanceOfType(CommentService),
- ComponentManager.getComponentInstanceOfType(IssueSecurityHelper.class),
- issueManager,
- componentManager.getAttachmentPathManager())
-
-
- log.debug(moveIssueConfirm)
- moveIssueUpdateFields.setId(targetIssue.id)
- moveIssueUpdateFields.setIssue(issueManager.getIssue(targetIssue.id))
- moveIssueUpdateFields.doExecute()
-
-
- moveIssueConfirm.setId(targetIssue.id)
- moveIssueConfirm.setIssue(issueManager.getIssue(targetIssue.id))
- String execute = moveIssueConfirm.doExecute()
- log.debug(moveIssueConfirm.errors)
- CoreTransactionUtil.commit(true)
- }
-
-
- }