PageRenderTime 53ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/groovy/com/onresolve/jira/groovy/listener/ScriptRunnerUberListener.groovy

https://bitbucket.org/sorin/jira-plugin-intellij
Groovy | 77 lines | 56 code | 14 blank | 7 comment | 5 complexity | b68b743f3abbe914006e6c535d427763 MD5 | raw file
  1. package com.onresolve.jira.groovy.listener
  2. import com.atlassian.event.api.EventListener
  3. import com.atlassian.jira.event.JiraListener
  4. import com.atlassian.jira.event.issue.IssueEvent
  5. import com.onresolve.jira.groovy.GroovyRunner
  6. import com.onresolve.jira.groovy.ScriptManager
  7. import org.apache.log4j.Category
  8. /**
  9. * This is the listener class that calls the built-in scripts
  10. * As of 1.9 it also calls the old custom listeners that we really GroovyListener with some other class as a param
  11. */
  12. class ScriptRunnerUberListener implements JiraListener{
  13. Category log = Category.getInstance(ScriptRunnerUberListener.class)
  14. ScriptManager scriptManager
  15. GroovyRunner runner
  16. ScriptRunnerUberListener() {
  17. log.debug("ScriptRunnerUberListener ctor")
  18. }
  19. ScriptRunnerUberListener(ScriptManager scriptManager) {
  20. this.scriptManager = scriptManager
  21. this.runner = new GroovyRunner(scriptManager)
  22. }
  23. @EventListener
  24. void workflowEvent(IssueEvent event) {
  25. List configs = scriptManager.getListenerConfigs()
  26. log.debug("workflowEvent: " + event)
  27. if (event) {
  28. configs.each {Map config ->
  29. List events = config["events"] as List
  30. List projects = config["projects"] as List
  31. // log.debug(events*.class)
  32. // note: ported custom script have should have all events set
  33. if (events.contains(event.getEventTypeId() as String)) {
  34. if (projects.contains("") || projects.contains(event.getIssue().getProjectObject().getKey())) {
  35. // log.debug("Valid for this event and project")
  36. Map params = config["params"] as Map
  37. params.put("issue", event.getIssue())
  38. params.put("event", event)
  39. log.debug("Fire class: " + config["clazz"])
  40. runner.run(config["clazz"] as String, params)
  41. }
  42. }
  43. }
  44. }
  45. else {
  46. log.debug "Skipping null event... not sure why we get this."
  47. }
  48. }
  49. void init(Map map) {
  50. }
  51. String[] getAcceptedParams() {
  52. return new String[0]
  53. }
  54. boolean isInternal() {
  55. return false
  56. }
  57. boolean isUnique() {
  58. return false
  59. }
  60. String getDescription() {
  61. return "Stub listener, should not be installed as a listener"
  62. }
  63. }