Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Support ModelMap as a managed type.

+review

  1. … 37 more files in changeset.
Move type token factory for model maps to ModelTypes.

  1. … 11 more files in changeset.
Inline AbstractModelMap into DefaultModelMap, and rename to NodeBackedModelMap.

    • -0
    • +863
    ./NodeBackedModelMapTest.groovy
  1. … 16 more files in changeset.
Extracted out a class to mediate all rule subject and input binding. Allows the incoming rules for a given (node,state) to be determined, which is required to support rule inputs that are not fully closed.

Two impacts of this change: binding validation is now more eager, and rules with the same (node,state) subject are executed in a fix, but arbitrary order. Happens to be by-path rules in order defined followed by by-type rules in order defined.

  1. … 10 more files in changeset.
Replaced the forced binding of subjects and inputs of a rule with a goal in the rule execution graph that attempts to discover the bindings, as a dependency for executing the rule.

  1. … 1 more file in changeset.
Simplify collection bridging, and ModelMap implementations in general.

- Ancillary nodes are no longer needed to back model maps

- Remove custom projections for bridged vs backed model map views

Some supporting ModelMap infrastructure has moved from platform-base to core. We've now broken all the linkage between ModelMap et al. and the containers, but still link against the instantiator types. With a little more work we could move the instantiator base types to, say, base-services, and move all ModelMap infrastructure out to model-core.

    • -105
    • +116
    ./DefaultModelMapTest.groovy
  1. … 48 more files in changeset.
Merged ModelBinding and BinderCreationListener, and moved some stuff out of DefaultModelRegistry.

  1. … 11 more files in changeset.
Reuse ModelMapModelView in SpecializedModelMapProjection, so that the specialized view is no longer a wrapper over the generic view. Instead, both views delegate directly to the map implementation.

  1. … 8 more files in changeset.
Introduce ModelMap extends CollectionBuilder and allow to use them interchangeably in rules

+review REVIEW-5491

    • -51
    • +0
    ./CollectionBuilderModelViewTest.groovy
    • -853
    • +0
    ./DefaultCollectionBuilderTest.groovy
    • -0
    • +852
    ./DefaultModelMapTest.groovy
    • -0
    • +51
    ./ModelMapModelViewTest.groovy
  1. … 114 more files in changeset.
Add values() to CollectionBuilder and use it instead of iterator(). CollectionBuilder no longer implements Iterable.

+review REVIEW-5457

  1. … 12 more files in changeset.
Use CollectionBuilder<ComponentSpec> instead of ComponentSpecContainer in ComponentReport. Change CollectionBuilder to implement Iterable.

+review REVIEW-5457

    • -0
    • +11
    ./DefaultCollectionBuilderTest.groovy
  1. … 5 more files in changeset.
Make DirectInstantiator a singleton.

  1. … 89 more files in changeset.
Add withType(«type», «rules») to CollectionBuilder.

Allows having all elements of a certain type depend on a certain element.

    • -0
    • +159
    ./DefaultCollectionBuilderTest.groovy
  1. … 9 more files in changeset.
Always instiate collection builder items via an instantiator accessed as a model reference.

+review REVIEW-5382

    • -5
    • +24
    ./DefaultCollectionBuilderTest.groovy
  1. … 6 more files in changeset.
Push replaceOrCreate to model registry.

Realligned some other model registry methods.

+review REVIEW-5382

  1. … 14 more files in changeset.
Mutation rules are always executed in a reliable order

+review REVIEW-5384

  1. … 8 more files in changeset.
Define bridged collection items in terms of retrieval from the collection's model node, instead of the collection itself.

This is generally about reducing implicit state with our bridging, for the task container in particular.

Implicit state (i.e. state dragged in by function closure) is problematic when resetting ephemeral state.

References to epehemeral elements (e.g. the task container) closed over in item creators prevent the items being created fresh the next time around.

An important change here is that each bridged collection now has two implicit “invisible” nodes.

One for the backing store and one for the instantiator.

These are for item creators to depend on, in order to be defined in terms of the model node instead of the actual container.

+review REVIEW-5382

    • -25
    • +15
    ./DefaultCollectionBuilderTest.groovy
  1. … 18 more files in changeset.
Allow model nodes to be 'ephemeral'.

Ephemeral nodes are not “stable”.

Non stable nodes are reset when the registry is stabilized, allowing the registry to be reused.

This mechanism will be used to allow the model registry to be scrubbed of nodes that hold build instance state in between reusing the model state between builds.

+review

  1. … 17 more files in changeset.
Pull the error for trying to create model nodes as scopes other than root “up”.

+review REVIEW-5353

  1. … 26 more files in changeset.
Move some scoped rule related tests from collection builder test to their own test class

+review REVIEW-5353

    • -152
    • +7
    ./DefaultCollectionBuilderTest.groovy
  1. … 1 more file in changeset.
Change implemenation of @BinaryTasks to not mutate the task container and the binary in one rule.

  1. … 24 more files in changeset.
Re-enable a test.

+review REVIEW-5340

    • -21
    • +21
    ./DefaultCollectionBuilderTest.groovy
Pass model views directly instead of wrapping in an Inputs object.

    • -1
    • +2
    ./CollectionBuilderModelViewTest.groovy
  1. … 55 more files in changeset.
Rename validate() to bindAllReferences() and add some docs.

+review REVIEW-5368

  1. … 5 more files in changeset.
Add test case demonstrating current behaviour of combining and misaligning CollectionBuilder.withType(Class).named(String, Class<? extends RuleSource>).

+review REVIEW-5353

    • -0
    • +23
    ./DefaultCollectionBuilderTest.groovy
  1. … 2 more files in changeset.
Remove test case.

I don't think it's warranted. We can test rule ordering more generally elsewhere.

The review item that sparked this was badly worded.

+review REVIEW-5353

    • -26
    • +0
    ./DefaultCollectionBuilderTest.groovy
Push validation that a given RuleSource actually implements RuleSource down into general validation.

+review REVIEW-5353

  1. … 4 more files in changeset.
Move test for applying rule sources directly to model nodes out from collection builder specific tests into specific class.

+review REVIEW-5353

    • -55
    • +2
    ./DefaultCollectionBuilderTest.groovy
  1. … 2 more files in changeset.
Move nested interface out to top level because of insane issue with nested interfaces and IBM JDK.

+review REVIEW-5353

More test coverage for applying rule sources in scope of collection elements.

+review REVIEW-5353

    • -1
    • +376
    ./DefaultCollectionBuilderTest.groovy
    • -0
    • +27
    ./HasDependencies.groovy
  1. … 5 more files in changeset.