Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Renamed src/main/groovy to src/main/java in core

    • -104
    • +0
    ./CachingTaskDependencyResolveContext.java
    • -108
    • +0
    ./DefaultTaskContainerFactory.java
  1. … 2531 more files in changeset.
Convert `OptionValues` to Java

    • -0
    • +28
    ./options/OptionValues.java
Apply property and method lookup improvements to more parts of the configure dsl, in particular those that use `ConfigureUtil`, which for example includes the `dependencies { }` closure.

  1. … 8 more files in changeset.
Introduce `getLinkNames` on `MutableModelNode`

This avoids calling `ensureAtLeast` on target links to determine the name of the tasks.

+review REVIEW-5921

  1. … 4 more files in changeset.
Fixed static fields that should be final.

This commit fixes a number of static fields that were not declared final, although never updated.

    • -4
    • +4
    ./execution/ExecuteActionsTaskExecuter.java
  1. … 22 more files in changeset.
Moved classes related to dispatching property and method requests to live in their own package.

  1. … 48 more files in changeset.
Improve property and method lookup from some configuration closures, by short-circuiting the inefficient lookup in `Closure` and reusing the lookup in `ConfigureDelegate` instead.

Currently this improvement is applied only in a few places in the DSL, in particular when configuring any named container (but not its elements). A later change will roll this out more widely.

This change also removed duplicate property and method lookup on the owner object for these closures, improves error reporting on missing property or method so that the actual target of the configure closure is reported, and also cleans up the closure parameter and closure.delegate objects that are visible to the closure body so that they are always the target object.

  1. … 13 more files in changeset.
Get rid of String.format call in DefaultTaskOutputs constructor

Remove `ModelReference` interning

- interning, while reducing memory usage, also has a clear impact on performance of task creation

- task creation is now 5% faster

- compensates some of memory usage increase by optimizing model creation

+review REVIEW-5852

  1. … 10 more files in changeset.
Split snapshotting to 2 phases: pre-check and snapshot

- pre-check hash contains sorted list of file name, size and

last modified times

- there are no file content hashes as part of the pre-check hash

- the file content hash is cached based on file name, size and

last modified times and isn't needed in the pre-check

- if pre-check hash is same as pre-check for previous snapshot,

it is considered up-to-date and the actual file snapshot doesn't

have to be loaded

- if pre-check hash is different and snapshot up-to-date check doesn't

contain changes (false positive), the persisted hash gets updated

- this might happen when file modification times are different, but

content is the same

- fileSnapshots in-memory cache uses now weak references for values.

- loaded fileSnapshots will get GCd under memory pressure which works

fine with the new up-to-date checking

+review REVIEW-5903

    • -1
    • +3
    ./execution/SkipUpToDateTaskExecuter.java
  1. … 28 more files in changeset.
Make constructor of TaskExecuters more consistent

Let the delegate be the last parameter always

    • -1
    • +1
    ./execution/SkipUpToDateTaskExecuter.java
  1. … 2 more files in changeset.
Rename TreeSnapshotter -> CachingTreeVisitor

+review REVIEW-5869

    • -5
    • +5
    ./execution/SkipUpToDateTaskExecuter.java
  1. … 9 more files in changeset.
Implement simple tree snapshot cache invalidation

+review REVIEW-5869

    • -1
    • +5
    ./execution/SkipUpToDateTaskExecuter.java
  1. … 3 more files in changeset.
Merge Pull Request #572 to add multiple parameter support.

+review REVIEW-5861

- This will allow options like --tests to have multiple instances

on the command line and be merged into a list of options in

the code.

    • -67
    • +0
    ./options/OptionNotationParserFactory.java
    • -0
    • +64
    ./options/OptionValueNotationParserFactory.java
  1. … 4 more files in changeset.
Faster up-to-date checks by not collecting messages and creating temporary arrays when it's not required

    • -1
    • +1
    ./execution/SkipUpToDateTaskExecuter.java
  1. … 5 more files in changeset.
GRADLE-XXXX ckeck that option type is a list

GRADLE-XXXX Ability to pass multiple command line "--tests" options to test task

    • -67
    • +0
    ./options/OptionNotationParserFactory.java
    • -0
    • +64
    ./options/OptionValueNotationParserFactory.java
  1. … 4 more files in changeset.
Allow specifying custom order of task options in help command output

This change was driven by the need to display more important option of build init plugin first.

    • -1
    • +6
    ./options/InstanceOptionDescriptor.java
  1. … 8 more files in changeset.
Coalesce o.g.m.{collection.internal=>internal.core}

This change removes a "feedback dependency" at the package level, which

is an indirect form of a package cycle.

In this case, collection.internal.ModelMapModelProjection depended on

internal.manage.instance.ManagedInstance while at the same time types in

internal.manage.extract depended on

collection.internal.ChildNodeInitializerStrategy* types.

So while there was no direct cycle between any two packages, there was

a an indirect cycle or between different subpackages of

collection.internal and collection.manage.

Indirect cycles are just as indicative of a design problem as their

direct counterparts, but unfortunately it appears that Classycle is not

capable of detecting them. Fortunately, other tools are. This screenshot

taken from Structure101 Studio visualizes the indirect cycle described

above: https://imgur.com/00FyduF.

It appears that the presence of these types in collection.internal was

probably an oversight to begin with. This package did start out with

proper collection types such as DefaultManagedSet and

DefaultCollectionBuilder, but these were removed quite some time ago in

commit 699abb21985e8126742007cb2e0daeae34316756. As such, this commit

resolves the indirect cycle simply by moving the offending types from

collection.internal into internal.core, where they look to be a better

fit anyway.

  1. … 13 more files in changeset.
Merged `ModelPromise.canBeViewedAsMutable()` and `canBeViewedAsImmutable()` as the set of types is always the same.

This avoids doing a compatibility check twice on non match (once for immutable and once for mutable). This check is a hotspot at configuration time.

  1. … 22 more files in changeset.
Switched some `NotationParser` implementations to implement `NotationConverter` instead.

`NotationConverter` is the interface that should be used to implement a conversion of some kind, and `NotationParser` is the API for requesting some conversion.

    • -1
    • +4
    ./options/OptionNotationParserFactory.java
  1. … 9 more files in changeset.
Tweaks to type parameters.

    • -17
    • +11
    ./options/OptionNotationParserFactory.java
Removed `ValueAwareNotationParser` as it is no longer required.

    • -18
    • +9
    ./options/OptionNotationParserFactory.java
  1. … 2 more files in changeset.
Replaced `ValueAwareNotationParser.describeValues()` with new method on `DiagnosticVisitor`, so that values are now collected while visiting the description for a notation parser.

    • -3
    • +4
    ./options/InstanceOptionDescriptor.java
    • -9
    • +0
    ./options/OptionNotationParserFactory.java
  1. … 9 more files in changeset.
Apply rules to links via predicates

Extends the filtering options when applying rules to the children of a

node by allowing evaluating child nodes via a Predicate (instead of

matching them against a single type).

+review REVIEW-5738

  1. … 24 more files in changeset.
Simplify ModelRegistrations

Make the purpose of actions added during registration a bit cleaner,

too.

+review REVIEW-5738

  1. … 7 more files in changeset.
Merge branch 'release'

  1. … 7 more files in changeset.
Changed bridging of tasks between rules and legacy land so that tasks are not made immutable when they are accessed by name from legacy land.

Instead, tasks are transitioned so that their initializer rules are executed, but mutation and later rules are not executed. These rules are executed when the tasks are added to the task execution graph.

  1. … 7 more files in changeset.
Remove model reuse and node replacement logic

  1. … 28 more files in changeset.
Touch up some names after renaming ModelCreator

+review REVIEW-5678

  1. … 7 more files in changeset.