Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Software Model @UnsupportedWithInstantExecution

Signed-off-by: Paul Merlin <>

  1. … 69 more files in changeset.
Rename @FailsWithInstantExecution to @ToBeFixedForInstantExecution

Signed-off-by: Paul Merlin <>

  1. … 869 more files in changeset.
Annotate integ tests failing with instant execution in :modelGroovy

Signed-off-by: Paul Merlin <>

Fix ModelDslRuleInputDetectionIntegrationSpec

Replace 'Matchers' with 'CoreMatchers'

So we do not require 'org.hamcrest:hamcrest-library' as additional

dependency anymore. Which was only available for most of the tests

because it leaked onto the test compile classpath.

  1. … 160 more files in changeset.
Make software model tasks accessible using abbreviated names again

This was broken by a refactoring towards lazy task configuration,

because we had no test coverage for this case.

  1. … 4 more files in changeset.
Change `DefaultNamedDomainObjectCollection` to better handle elements added using a provider, in particular when locating elements by name.

Change `DefaultTaskContainer` to use this to implement `createLater()` rather than the existing placeholder actions, to make deferred task creation less of a special case.

  1. … 9 more files in changeset.
Fix model Groovy usages of output test fixtures

GRADLE-3373: Fixed model DSL transformation to allow input references as method parameters when the last method parameter is a closure.

  1. … 1 more file in changeset.
Changed the 'set' method that is mixed in to the generated view objects for a property of scalar type so that it now applies the convenience type conversion for the value.

Also generate a dummy 'configure' method for all properties that don't require a real one, which fails with a MissingMethodException. This avoids the setter being invoked in this case and type conversion being attempted on the closure. In theory this will result in a more informative error message when the user attempts to configure a property using a closure, when the property does not support this.

+review REVIEW-5708

  1. … 2 more files in changeset.
Added some test coverage to verify that configure methods are not available for various types of properties of views of managed types.

+review REVIEW-5708

Generate a 'configure' method for each property of a `@Managed` type.

This configure method has the following signature:

void $propName(Closure<?> cl);

For now, the closure is executed immediately. Later, this will add a rule that will apply the action to the target property.

+review REVIEW-5708

  1. … 4 more files in changeset.
Moved int test into a package to live alongside some other tests with similar responsibilities.

    • -0
    • +466
Added some test coverage for using `$.p` expressions in closures passed to `Project.model { }`.

These closures are not transformed and this usage should fail. The `Project.model { }` will be removed once the model DSL supports use cases such as 'apply these rules to all projects in the build'.

Replaced a bunch of usages of `$('p')` with `$.p`

  1. … 31 more files in changeset.
Changed the contract of `ExecutionResult.output` and `error` to return the output with line separators normalized to \n.

  1. … 5 more files in changeset.
Don't need to mess with line separators in this test.

Added some test coverage to verify that nested rule DSL closures cannot see the delegate of outer closures.

Enabled nested DSL rules for the API methods of `ModelMap`.

For example, `all { ... }` or `beforeEach(Type) { ... }`. This means that the closures passed to these methods will be treated as nested rules, with their own inputs, descriptor and so on.

  1. … 2 more files in changeset.
Fixed merge problem.

Added some test coverage for dynamically creating and configuring the elements of a `ModelMap` using the rules DSL.

Don't treat null-safe or spread property expressions as part of the path for a `$.path` input reference.

For example, treat `$.things*.name` as `($.things)*.name`. Similarly, treat `$.thing?.name` as `($.thing)?.name`.

  1. … 1 more file in changeset.
Improved the rule descriptors used for nested DSL rules, so that they better reflect the expression used to define the rule in the build script.

  1. … 2 more files in changeset.
Enable nested DSL rules for subjects of type `ModelMap`.

This is the first step of enabling the DSL for creating and configuring items in a `ModelMap`. It is currently only supported for `name(Type) { ... }` and `name { ... }` syntax.

With this change, the closures in the syntax above are treated as rule actions, so that their input references are not treated as inputs for the outer closure but are instead treated as inputs of the nested rule. These actions are also given their own descriptor.

  1. … 3 more files in changeset.
Fix integration test

Fixed DSL rule extraction when a closure that looks like a nested DSL rule is nested inside a closure that is not.

  1. … 1 more file in changeset.
Changed the descriptor for DSL rules so that it more closely matches the expression used in the code to reference the subject.

This change also detangles the subject path from the DSL rule descriptor, so that they can be different.

  1. … 23 more files in changeset.
Changed rule DSL transformation to distinguish between those input references in the body of a rule closure, and those inside a closure that is a potential nested rule.

This is not used yet. Separating these will allow input references to appear in nested rule closures without being treated as inputs of the outer rule closure.

  1. … 5 more files in changeset.
Clean up code

- Remove todo

- Make method private

- Encapsulate property and owner in PropertyContext

- Remove node initializer check from ModelMapNodeInitializerExtractionStrategy

- Inlining a bunch of fields in DefaultNodeInitializerRegistry

- remove hasNodeInitializer method from NodeInitializerRegistry

+review REVIEW-5652

  1. … 5 more files in changeset.
Fixes multiline assertion on windows

+review REVIEW-5652