import org.codehaus.gant.GantBuilder
import org.apache.tools.ant.DefaultLogger
import org.apache.tools.ant.Project
import com.atlassian.clover.api.optimization.StringOptimizable
import com.atlassian.clover.optimization.Snapshot
import com.atlassian.clover.CloverDatabase
import com.atlassian.clover.context.ContextSet
import com.atlassian.clover.CoverageDataSpec
import com.atlassian.clover.util.FileUtils
import com.atlassian.clover.ant.tasks.AntInstrumentationConfig
import com.atlassian.clover.api.optimization.TestOptimizer
import com.atlassian.clover.api.optimization.OptimizationOptions
import org.apache.tools.ant.BuildEvent
import org.apache.tools.ant.BuildLogger
import org.apache.tools.ant.Project
// Workaround:
// - instead of 'import com.atlassian.clover.ant.tasks.AntInstrumentationConfig + new AntInstrumentationConfig()' we use
// 'com.atlassian.clover.ant.tasks.AntInstrumentationConfig.newInstance()' (thanks to Groovy syntax it does not complain)
// - FileOptimizable does not implement Optimizable interface and the "raw" method TestOptimizer.optimizeObjects() is used
class FileOptimizable /* Cannot declare 'implements com.atlassian.clover.api.optimization.Optimizable' due to
// copy config from the current project to the testRunner's internal one
def antConfig = com.atlassian.clover.ant.tasks.AntInstrumentationConfig.getFrom(ant.project)
antConfig.setIn(projectTestRunner.projectTestCompiler.ant.project)
// add GroovycSupport's build listener to this project, it will reconfigure groovyc tasks (since grails 2.3)
com.atlassian.clover.ant.groovy.GroovycSupport.ensureAddedTo(projectTestRunner.projectTestCompiler.ant.project)
import com.atlassian.pageobjects.*;
import com.atlassian.pageobjects.binder.InjectPageBinder;
import com.atlassian.pageobjects.binder.StandardModule;
import com.atlassian.pageobjects.elements.ElementModule;
import com.atlassian.pageobjects.elements.timeout.TimeoutsModule;
import com.atlassian.webdriver.AtlassianWebDriverModule;
import com.atlassian.webdriver.pageobjects.DefaultWebDriverTester;
import com.atlassian.webdriver.pageobjects.WebDriverTester;
this.pageBinder = new InjectPageBinder(productInstance, webDriverTester, new StandardModule(this), new AtlassianWebDriverModule(this),
import com.atlassian.core.action.ActionUtils
import com.atlassian.core.ofbiz.CoreFactory
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.action.ActionNames
import com.atlassian.jira.event.ListenerManager
import com.atlassian.jira.event.listeners.DebugListener
import org.apache.log4j.Category
import webwork.dispatcher.ActionResult
import com.atlassian.jira.event.issue.IssueEventListener
import org.netbeans.lib.cvsclient.commandLine.command.log
import com.atlassian.jira.event.issue.IssueEvent
Category log = Category.getInstance("com.onresolve.jira.groovy.Scratch")
ComponentManager componentManager = ComponentManager.getInstance()
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.opensymphony.user.Group
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.config.SubTaskManager
import org.ofbiz.core.entity.GenericValue
import com.opensymphony.user.User
import com.atlassian.core.user.UserUtils
import com.atlassian.jira.user.util.UserManager
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.security.util.GroupSelectorUtils
ComponentManager componentManager = ComponentManager.getInstance()
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.issue.search.SearchRequest
import com.atlassian.jira.issue.search.SearchResults
import com.atlassian.jira.jql.builder.JqlQueryBuilder
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.jira.web.bean.PagerFilter
Issue issue = issue
ComponentManager componentManager = componentManager
SearchRequest sr = new SearchRequest(query)
SearchProvider searchProvider = componentManager.getSearchProvider()
JiraAuthenticationContext authenticationContext = componentManager.getJiraAuthenticationContext()
SearchResults results = searchProvider.search(sr.getQuery(), authenticationContext.getUser(), PagerFilter.getUnlimitedFilter())
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.opensymphony.user.Group
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.config.SubTaskManager
import org.ofbiz.core.entity.GenericValue
import com.opensymphony.user.User
import com.atlassian.core.user.UserUtils
import com.atlassian.jira.user.util.UserManager
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.security.util.GroupSelectorUtils
ComponentManager componentManager = ComponentManager.getInstance()
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
import com.atlassian.core.action.ActionUtils
import com.atlassian.core.ofbiz.CoreFactory
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.action.ActionNames
import com.atlassian.jira.event.ListenerManager
import com.atlassian.jira.event.listeners.DebugListener
import org.apache.log4j.Category
import webwork.dispatcher.ActionResult
import com.atlassian.jira.event.issue.IssueEventListener
import org.netbeans.lib.cvsclient.commandLine.command.log
import com.atlassian.jira.event.issue.IssueEvent
Category log = Category.getInstance("com.onresolve.jira.groovy.Scratch")
ComponentManager componentManager = ComponentManager.getInstance()
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.issue.search.SearchRequest
import com.atlassian.jira.issue.search.SearchResults
import com.atlassian.jira.jql.builder.JqlQueryBuilder
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.jira.web.bean.PagerFilter
Issue issue = issue
ComponentManager componentManager = componentManager
SearchRequest sr = new SearchRequest(query)
SearchProvider searchProvider = componentManager.getSearchProvider()
JiraAuthenticationContext authenticationContext = componentManager.getJiraAuthenticationContext()
SearchResults results = searchProvider.search(sr.getQuery(), authenticationContext.getUser(), PagerFilter.getUnlimitedFilter())
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.opensymphony.user.Group
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.config.SubTaskManager
import org.ofbiz.core.entity.GenericValue
import com.opensymphony.user.User
import com.atlassian.core.user.UserUtils
import com.atlassian.jira.user.util.UserManager
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.security.util.GroupSelectorUtils
ComponentManager componentManager = ComponentManager.getInstance()
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
import com.atlassian.core.action.ActionUtils
import com.atlassian.core.ofbiz.CoreFactory
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.action.ActionNames
import com.atlassian.jira.event.ListenerManager
import com.atlassian.jira.event.listeners.DebugListener
import org.apache.log4j.Category
import webwork.dispatcher.ActionResult
import com.atlassian.jira.event.issue.IssueEventListener
import org.netbeans.lib.cvsclient.commandLine.command.log
import com.atlassian.jira.event.issue.IssueEvent
Category log = Category.getInstance("com.onresolve.jira.groovy.Scratch")
ComponentManager componentManager = ComponentManager.getInstance()
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.issue.search.SearchRequest
import com.atlassian.jira.issue.search.SearchResults
import com.atlassian.jira.jql.builder.JqlQueryBuilder
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.jira.web.bean.PagerFilter
Issue issue = issue
ComponentManager componentManager = componentManager
SearchRequest sr = new SearchRequest(query)
SearchProvider searchProvider = componentManager.getSearchProvider()
JiraAuthenticationContext authenticationContext = componentManager.getJiraAuthenticationContext()
SearchResults results = searchProvider.search(sr.getQuery(), authenticationContext.getUser(), PagerFilter.getUnlimitedFilter())
--- ../atlassian-jira-4.4.5-source/jira-project/jira-components/jira-core/src/main/java/com/atlassian/jira/service/util/handler/CreateIssueHandler.java 2012-02-15 21:13:22.000000000 +1100
+++ src/main/java/com/atlassian/jira/service/util/handler/redradish/CreateIssueHandler.java 2012-03-14 12:42:20.343607632 +1100
@@ -1,4 +1,11 @@
-package com.atlassian.jira.service.util.handler;
+package com.atlassian.jira.service.util.handler.redradish;
+import com.atlassian.jira.service.util.handler.AbstractMessageHandler;
+/* CCMailer: Identical to {@link com.atlassian.jira.service.util.handler.CreateIssueHandler}, except
+ * {@link #getDescription(com.opensymphony.user.User,javax.mail.Message)} is protected, not private, as it is for
+ * {@link com.atlassian.jira.service.util.handler.FullCommentHandler#getEmailBody(javax.mail.Message)} and
+ * {@link com.atlassian.jira.service.util.handler.NonQuotedCommentHandler#getEmailBody(javax.mail.Message)}.
+ * TODO: File a JRA to get this fixed.
import com.atlassian.core.user.UserUtils;
import com.atlassian.jira.component.ComponentAccessor;
@@ -403,7 +410,7 @@
--- ../atlassian-jira-4.4.5-source/jira-project/jira-components/jira-core/src/main/java/com/atlassian/jira/service/util/handler/AbstractCommentHandler.java 2012-02-15 21:13:22.000000000 +1100
+++ src/main/java/com/atlassian/jira/service/util/handler/redradish/AbstractCommentHandler.java 2012-03-14 12:39:41.364177644 +1100
@@ -1,5 +1,7 @@
-package com.atlassian.jira.service.util.handler;
-
+package com.atlassian.jira.service.util.handler.redradish;
+// CCMailer: Overridden to define and use createComment
+import com.atlassian.jira.service.util.handler.AbstractMessageHandler;
+import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.core.util.map.EasyMap;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.JiraApplicationContext;
@@ -103,7 +105,7 @@
IssueFactory issueFactory = ComponentManager.getComponent(IssueFactory.class);
- Comment comment = commentManager.create(issueFactory.getIssue(issue), reporter.getName(), body, null, null, false);
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutManager;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.fields.layout.field.EditableFieldLayout;
//*** Get Needed Managers ***
ComponentManager componentManager = ComponentManager.getInstance();
FieldLayoutManager layoutManager = componentManager.getFieldLayoutManager();
FieldManager fieldManager = componentManager.getFieldManager();
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutManager;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.fields.layout.field.EditableFieldLayout;
//*** Get Needed Managers ***
ComponentManager componentManager = ComponentManager.getInstance();
FieldLayoutManager layoutManager = componentManager.getFieldLayoutManager();
FieldManager fieldManager = componentManager.getFieldManager();
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutManager;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.fields.layout.field.EditableFieldLayout;
//*** Get Needed Managers ***
ComponentManager componentManager = ComponentManager.getInstance();
FieldLayoutManager layoutManager = componentManager.getFieldLayoutManager();
FieldManager fieldManager = componentManager.getFieldManager();
import com.atlassian.jira.ComponentManager
import com.atlassian.plugin.PluginAccessor
import org.springframework.beans.factory.support.*
import com.atlassian.plugin.osgi.container.OsgiContainerManager
import org.springframework.context.ApplicationContext
import org.osgi.framework.Constants
import com.atlassian.jira.project.ProjectManager
import com.atlassian.jira.bc.project.ProjectService
import com.atlassian.jira.bc.project.ProjectService.DeleteProjectValidationResult
import com.atlassian.jira.util.SimpleErrorCollection
import org.joda.time.DateTime
import org.joda.time.Period
import org.codehaus.jackson.JsonParser
import org.codehaus.jackson.JsonFactory
import org.codehaus.jackson.node.ObjectNode
import com.atlassian.jira.ManagerFactory
import com.atlassian.jira.event.issue.IssueEventDispatcher
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.comments.Comment
import org.apache.log4j.Category
import org.ofbiz.core.entity.GenericValue
import com.atlassian.jira.event.issue.IssueEventSource
log = Category.getInstance("com.onresolve.jira.groovy.example.SendEmailOnBlocker")
Issue updatedIssue = (Issue) transientVars.get("issue");
Comment comment = (Comment)transientVars.get("commentValue");
params.put("eventsource", IssueEventSource.WORKFLOW);
IssueEventDispatcher.dispatchEvent(10000, updatedIssue, ManagerFactory.getWorkflowManager().getRemoteUser(transientVars), comment, null, changeGroup, params, true);
import com.atlassian.jira.ManagerFactory
import com.atlassian.jira.event.issue.IssueEventDispatcher
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.comments.Comment
import org.apache.log4j.Category
import org.ofbiz.core.entity.GenericValue
import com.atlassian.jira.event.issue.IssueEventSource
log = Category.getInstance("com.onresolve.jira.groovy.example.SendEmailOnBlocker")
Issue updatedIssue = (Issue) transientVars.get("issue");
Comment comment = (Comment)transientVars.get("commentValue");
params.put("eventsource", IssueEventSource.WORKFLOW);
IssueEventDispatcher.dispatchEvent(10000, updatedIssue, ManagerFactory.getWorkflowManager().getRemoteUser(transientVars), comment, null, changeGroup, params, true);