package example.MovedIssueExample
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.CustomFieldType
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.ManagerFactory
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.util.UserUtil
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.mail.Email
import com.atlassian.mail.server.MailServerManager
import com.atlassian.mail.server.SMTPMailServer
import org.apache.log4j.Category
import org.ofbiz.core.entity.GenericValue
import com.atlassian.jira.project.ProjectManager
import com.atlassian.jira.project.Project
import com.atlassian.jira.issue.util.IssueChangeHolder;
import com.atlassian.jira.util.ErrorCollection;
import com.atlassian.jira.util.ImportUtils;
import com.atlassian.jira.util.JiraUtils;
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.workflow.WorkflowManager
import com.atlassian.jira.config.SubTaskManager
import com.atlassian.jira.workflow.WorkflowTransitionUtil
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;

class TaskVersionListener extends AbstractIssueEventListener {
Category log = Category.getInstance(TaskVersionListener.class)
@Override
void workflowEvent(IssueEvent event) {

log.setLevel(org.apache.log4j.Level.DEBUG)
ComponentManager componentManager=ComponentManager.getInstance()
CommentManager commentManager = componentManager.getCommentManager()
UserUtil userUtil = ComponentAccessor.getUserUtil()
User user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
IssueManager issueManager = ComponentAccessor.getIssueManager()


Project project =event.issue.getProjectObject()
def projectleadName=project.getLeadUserName()
def projectlead =project.getLeadUserKey()

MutableIssue myIssue = event.getIssue()


myIssue.setStatusId("10018") //NEW STATUS
myIssue.setAssigneeId(projectlead)
myIssue.store()

def String adminUserName = "user_special"
def String nagComment = "This ticket has been changed to status *NEW STATUS* and assigned to the new Project Leader: *${projectleadName}*"
commentManager.create(issueManager.getIssueObject(myIssue.getKey()), adminUserName, nagComment, true)

//issueobtained = issueManager.getIssueObject("${myIssue.getKey()}");
ManagerFactory.getIndexManager().reIndex(myIssue.getGenericValue());

//WorkflowManager workflowManager = ComponentManager.getComponentInstanceOfType(WorkflowManager.class)
//workflowManager.migrateIssueToWorkflow(myIssue, workflowManager.getWorkflow( myIssue.getProjectObject().getId(), myIssue.getIssueTypeObject().getId(), myIssue.getStatusObject().getId()))
log.debug nagComment
}
}

Posted by:.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s