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.
- 1 Usage
- 2 Limitations
- 2.1 Imports
- 3 Known Issues
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 + WorkflowRequestorbut this will:
"Test: " + BranchName + EnvironmentCode +
EnvironmentName + PackageName + ProjectName + ProjectVersion +
TargetGroupCode + TargetGroupName + WorkflowRequestor
- style