Working With Groovy

Working With Groovy

Groovy is a scripting language that FlexDeploy uses in many places. It allows users to configure values of inputs and variables based on context.

Usage

To enable Groovy code for an input, click the curly braces next to a value. Some inputs are locked to Groovy mode and can’t be toggled.

once it’s enabled, you will see the purple script indicator

on the left side.

 

The Maximize button

on the right will enlarge the input so that you can see your code more easily.

Pressing Ctrl+ Space, period, will open a drop down of potential variables or functions available to you based on the context. Regular text values should be quoted.

 

Clicking the Minimize button

in the top right will collapse the input again and you can save your work.

 

If your Groovy Script has a compilation error, you will be notified when you save. Other errors are found at run time and will be found when the value is used.

In the above example, there was a compilation error. It shows this in the UI:

Fix the problem, close the error popup, and save again.

After adding the missing plus sign, the value saves successfully.

Limitations

Imports

  • Some scripts in FlexDeploy are appended to other scripts, such as File Type customizations. As a result, they cannot contain import statements.

  • Multiline imports are not supported. For example:

    • import com. java. *);
  • Static imports are not supported

    • import static com.java.mystatichelpers.staticmethod;

FlexDeploy 10.0.0.0

Imports in File Type customizations and static imports are scheduled to be supported in FlexDeploy version 10.0.0.0

Known Issues

If you make a multi-line groovy expression, and start lines with +, you may get the error

[No signature of method: java.lang.String.positive() is applicable for argument types: () values: [] Possible solutions: notify(), tokenize(), size(), tokenize(), size()].

In this case, move the + signs to the ends of the lines above.

e.g. this might not work:

"Test: " + BranchName + EnvironmentCode + EnvironmentName + PackageName + ProjectName + ProjectVersion + TargetGroupCode + TargetGroupName + WorkflowRequestor

but this will:

"Test: " + BranchName + EnvironmentCode + EnvironmentName + PackageName + ProjectName + ProjectVersion + TargetGroupCode + TargetGroupName + WorkflowRequestor

 

The following macros are not currently supported in the footer:
  • style