Using Groovy with JMWE

Groovy is an object-oriented programming language for the Java platform. It is a dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk, and can be used as a scripting language for the Java Platform. It has smooth Java integration, a vibrant and rich ecosystem, and powerful features. To learn more about Groovy, see the official Groovy Documentation.

Please note: JMWE for Jira Server currently supports Groovy 3

Learning Groovy

To learn more about the Groovy language:

Groovy in JMWE

Groovy in JMWE can be used either to write a Groovy expression or a Groovy template in various workflow extension configuration options; Groovy expression results are used in various JMWE Conditions, Validators, and Post-functions, including:

Conditions:

Validators:

Post-functions:

  • The Target issues section of all post-functions that operate on related issues, when issues returned by a Groovy script (or by a JQL search) are selected under the Which Issues field.

  • All post-functions, using the Conditional execution/validation using a Groovy expression section to execute a post-function conditionally.

  • The Comment issue post-function to create the body of the comment; select Groovy expression as the Comment type.

  • Create/Clone issue(s) post-function to

    • Calculate a project by selecting Calculated in Project

    • Calculate a parent issue key by selecting Calculated in Parent issue

    • Set fields of new issue by selecting Groovy expression as the Value type 

    • Add a comment to the current issue by selecting Groovy expression as the Comment type

    • Multiple iterator section of the Create/Clone issue post-function

  • Display message to user post-function to input:

    • The Message title

    • The Message body

    • The Action type

  • Email Issue post-function to:

    • Write the Subject, HTML body, Text body

    • Attachments returned by a Groovy script

    • Set the Recipients for the email

    • Set other email addresses

    • Exclude users

  • Link issues to the current issue in:

    • JQL expression

    • Filter expression

  • Scripted (Groovy) operation on issue  post-function to execute a Groovy script against an issue

  • Set issue fields  post-functions to set a field value by selecting Groovy expression as the Value type

  • Transition issue(s) post-functions in:

    • Calculated transitions

    • Add field in transition screen with the result of a Groovy script

  • Unlink issues from the current issue post-function to unlink issues based on the result of a Groovy condition

  • Shared Groovy Scripts under JMWE administration

  • Transitions activity tab on issue view page, to show the Transitions activity tab on the issue view screen based on a Groovy condition

Using Groovy Grapes

JMWE for Jira Data Center now supports Groovy Grapes for dependency management and to import external libraries into Groovy scripts within JMWE. You can now add maven repository dependencies (and other repositories) to your classpath. See http://docs.groovy-lang.org/latest/html/documentation/grape.html for more information.

As an example, the following script grabs the OpenCSV library from Maven Repository:

@GrabResolver(name='opencsv', root='https://mvnrepository.com') @Grab(group = 'com.opencsv', module = 'opencsv', version = '4.2') class Example { Object getExternalLibrary() { return Class.forName('com.opencsv.bean.CsvToBeanBuilder').getDeclaredMethods()*.name } } new Example().getExternalLibrary()

You are viewing the documentation for Jira Data Center.

Â