The plugin DSL was not compatible with Groovy because (1) nested
lambdas were executed in the wrong receiver scope and because
(2) Groovy functions do not support vararg and trailing closure
at the same time.
To resolve the first issue uses of the Action<> interface were replaced
with closures with receiver instead. Also, an overload for each public
function that accepts a closure as an argument was added, where instead
of the lambda the Groovy Closure<> type is used.
The second issue is fixed by adding an overload that accepts a list instead
of a vararg.
The plugin DSL was not compatible with Groovy because (1) nested lambdas were executed in the wrong receiver scope and because (2) Groovy functions do not support vararg and trailing closure at the same time.
To resolve the first issue uses of the
Action<>
interface were replaced with closures with receiver instead. Also, an overload for each public function that accepts a closure as an argument was added, where instead of the lambda the GroovyClosure<>
type is used.The second issue is fixed by adding an overload that accepts a list instead of a vararg.