Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Apply `Anonymous type can be replaced with lambda` inspection the whole project

  1. … 664 more files in changeset.
Apply `Explicit type can be replaced with <>` inspection the whole project

  1. … 907 more files in changeset.
Change few private methods to static

  1. … 252 more files in changeset.
Use method reference, where applicable

  1. … 169 more files in changeset.
Use method reference, where applicable

  1. … 167 more files in changeset.
Organize imports

  1. … 337 more files in changeset.
Replace anonymous classes with lambdas

  1. … 709 more files in changeset.
Replace anonymous classes with lambdas

  1. … 693 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 902 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 902 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 890 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 897 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 902 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 902 more files in changeset.
Convert net.jcip.annotations to javax.annotation.concurrent annotations

  1. … 65 more files in changeset.
Move file collection APIs out of core (#6525)

This change breaks out code that directly relates to handling `FileCollection`s and their build dependencies (called `TaskDependency` at this time) into a separate subproject (`:files`). This is so that other modules can build on just this module instead of having to depend on the oversized `:core`.

As part of the change `Provider`s have been moved to `:base-services`. In a possible followup step `:base-services` could be split into a module that captures the very basic concepts of Gradle's data model: it's all about `DomainObjectCollection`s that can be configured via `Action`s, transformed via `Transformer`s, lazyness can be provided via `Provider`s and rich mutable data types can be created via `Property` objects.

Another addition to `:base-serivces` is the directed graph traversal algorithms used in many parts of Gradle.

  1. … 442 more files in changeset.
Stop using atomic types in non-thread-safe contexts (#5813)

- Replace AtomicReference with MutableReference

- Replace AtomicBoolean with MutableBoolean

  1. … 17 more files in changeset.
Replace usages of org.gradle.api.Nullable

With javax.annotation.Nullable.

  1. … 456 more files in changeset.
More optimizations around ModelPath

  1. … 2 more files in changeset.
Use the faster configuration closure DSL implementation in many more places. In particular:

- Configuring elements of containers, such as tasks, configurations, etc.

- Configuring extensions.

- Copy spec actions, and other file type actions.

  1. … 25 more files in changeset.
Replace usage of `String#format` with good old string concatenation

The rationale behind this change is that while `String#format` is usually admitted as good for readability (this is arguable),

in practice it is very bad for performance. Since Java 6, the JVM (the JIT, to be correct) does a pretty good job at optimizing

string concatenation. However, it is only capable to do so if we're using "dirty" string concatenations (using `+`), or `StringBuilder`.

However, usage of `StringBuilder` is not recommended either for 2 reasons:

1. it significantly decreases code readability

2. in Java 9, String concatenation is even more optimized thanks to `invokedynamic`, and code using `StringBuilder` will *not* benefit

from this optimization.

There are sill leftover `String#format` calls in the code, in the following cases:

- the call is used to generate an exception message. That's 90% of the remaining calls.

- the call is obviously a debug message, often used in `toString` (because as we all know, `toString` should only be used for debugging)

- the format includes specific number formatting patterns

- I missed it

  1. … 226 more files in changeset.
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.
Fix remapping of rule sources descriptors

  1. … 1 more file in changeset.
Add @Override where missing in production software model sources

Prior to this change, the affected submodules had 2044 occurrences of

the @Override annotation. With this commit, there are now 3492

occurrences. This suggests some divergence in IDE settings, either

across developers, across time, or both. At the moment, it appears that

IDEA (15 CE) is configured correctly to add @Override automatically.

This same refactoring should probably be done globally acrosse the

Gradle codebase, but has been constrained here to software model-related

submodules (a) because it is what the author is responsible for and (b)

because significant refactoring of type hierarchies is underway there

right now--the kind of work most likely to benefit from the compiler

checks that proper use of @Override affords.

Should this same refactoring be applied globally, it would be worth

looking into enforcing consistent use of @Override via checkstyle or

similar at the same time.

  1. … 419 more files in changeset.
Revert "Promote o.g.model/{internal/core/rule/describe=>}/ModelRuleDescriptor"

This reverts commit de9e06338062d7ff2933717e1c30fbf0fb6c50d2 following a

review in which we determined that letting the indirect cycle persist is

a lesser evil that promoting ModelRuleDescriptor to public status.

Note again that the original commit, nor this reversion of it has any

impact on Classycle errors, as it appears to be incapable of detecting

this kind of (very common) cycle.

  1. … 82 more files in changeset.
Promote o.g.model/{internal/core/rule/describe=>}/ModelRuleDescriptor

Much like the previous commit, this change resolves an indirect package

cycle. Unlike the previous commit, however, it does so by promoting a

previously intenal type (ModelRuleDescriptor) to public API status.

There are several exception types resident in org.gradle.model that

depend on ModelRuleDescriptor and expose that dependency through their

constructors. This alone provides a rationale for promoting

ModelRuleDescriptor to public status, and resolving the cycle is now an

additional motivation.

Note that while the package structure within on the internal side was

org.gradle.model.internal.core.rule.describe, ModelRuleDescriptor has

been promoted here directly to org.gradle.model, i.e. the

core.rule.describe subpackaging has not been mirrored into the public

package structure. The reason for doing this is to avoid introducing a

dependency from a higher level package (org.gradle.model) to a

subpackage. In general, package dependencies should always flow upward

from subpackages to parent packages in a given hierarchy, and not the

other way around. There are many counterexamples of this throughout the

codebase today, but that is no reason to perpetuate the practice.

  1. … 80 more files in changeset.
GRADLE-3373: Fixed model DSL transformation to allow input references as method parameters when the last method parameter is a closure.

  1. … 2 more files in changeset.
Simplify by using static method

+review REVIEW-5752

  1. … 7 more files in changeset.
Polish long lines via static import

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.