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:
Start with our Groovy tutorial:Â Groovy tutorial
Introduction to Groovy: See Learn Groovy in Y minutes and Learn Groovy in one Video
Tutorials - many tutorials are available online, such as TutorialsPoint and The Groovy 2 Tutorial (this is on an older version of Groovy, but still contains much useful information).
References - See The Apache Groovy programming language and The Complete Apache Groovy Developer Course (paid option)
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:
The Target issues section of Related Issues Condition and Related Issues Status Condition, when issues returned by a Groovy script (or by a JQL search) are selected under the Which Issues field.
Conditions on the related issues section of Related Issues Condition and Related Issues Status Condition.
The Build-your-own Condition to execute a condition configured entirely using Groovy.
Validators:
The Target issues section of Related Issues Validator and Related Issues Status Validator, when issues returned by a Groovy script (or by a JQL search) are selected under the Which Issues field.
Conditions on the related issues section of Related Issues Validator and Related Issues Status Validator.
The Build-your-own Validator  to execute a validator configured entirely using Groovy.
Conditional execution using a Groovy expression in all the 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 Dependency management with Grape 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.
On this page: |
---|
Â