Clone Tools
  • last updated a few minutes ago
Constraints: committers
Constraints: files
Constraints: dates
Force AbstractTestDirectoryProvider to use Class (#12431)


This PR adds `className` to `AbstractTestDirectoryProvider` so there'll be no more `unknown-test-class`.

  1. … 407 more files in changeset.
Implement `disallowUnsafeReads()` for `ConfigurableFileCollection` implementations.

  1. … 23 more files in changeset.
Simplify the implementation of `GeneratedSingletonFileTree`.

  1. … 25 more files in changeset.
Replace `FileResolver.resolveFilesAsTree()` and `compositeFileTree()` with `FileCollectionFactory`.

  1. … 44 more files in changeset.
Introduce a factory service to create instances of `TaskDependency`, to allow the implementations to be contextualized and to use types that aren't part of the (internal) core API.

Use this factory in `DefaultConfigurableFileCollection`.

  1. … 39 more files in changeset.
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. … 162 more files in changeset.
Introduce an internal factory to create `JavaForkOptions`, to encapsulate the service(s) needed to create instances of this type and decouple clients from this detail. This could/should move to `ObjectFactory` or some other public factory type.

  1. … 43 more files in changeset.
Move some more direct usages of `DefaultConfigurableFileCollection` instances to instead delegate to `FileCollectionFactory`.

  1. … 12 more files in changeset.
Add annotation processor generated sources to SourceSetOutput

Signed-off-by: Thomas Broyer <>

  1. … 9 more files in changeset.
Allow the services required by a given class to be queried prior to creating any instances of that class. Use this to allow `ArtifactTransformDependencies` to be injected into artifact transforms using any of the service injection patterns (that is, via a constructor or a getter).

  1. … 127 more files in changeset.
Remove the hand-coded implementation of `ExtensionAware` from some model types, and rely on the decoration to mix this in instead.

  1. … 3 more files in changeset.
Merge pull request #6395 from gradle/wolfs/deprecations/classesDir

Another try at removing the classes dir.

This reverts commit 76e359df

  1. … 25 more files in changeset.
Revert "Merge pull request #6395 from gradle/wolfs/deprecations/classesDir"

Reverting since it breaks some cross version checks.

This reverts commit adaf86371e3d58d929030184bfc1c11b60ade1bf, reversing

changes made to 37df84902151344db627d6ea7c67461413ad55c9.

  1. … 25 more files in changeset.
Let SourceSet expose type-safely that it is ExtensionAware

Signed-off-by: Paul Merlin <>

  1. … 3 more files in changeset.
Replace internal `SourceDirectorySetFactory` with a method on public `ObjectFactory` service, to allow plugins to create instances of this type without resorting to using internal types.

  1. … 44 more files in changeset.
Remove SourceSetOutput.classesDir

and `configureForSourceSet`.

  1. … 19 more files in changeset.
Add annotationProcessor configurations for each SourceSet

And configure the compileJava.options.annotationProcessorPath

to use the configuration when not empty (and use 'null' when

the configuration is empty to preserve the current behavior).

Part of #2300

Signed-off-by: Thomas Broyer <>

  1. … 21 more files in changeset.
Use separate output directories for all JVM languages

- Introduce an outputDir on SourceDirectorySet

- Default output directory is now `build/classes/<source directory set name>/<source set name>`

- Example: Java compilation goes to build/classes/java/main instead of build/classes/main

- Adapt JDepend, FindBugs, Test and ValidateTaskProperties tasks to handle multiple class directories

- Deprecate setClassesDir/getClassesDir on SourceSetOutput

- Calling setClassesDir restores old behavior (shared output directory)

- Introduce addClassesDir and getClassesDirs on SourceSetOutput

- OSGi plugin needs a single classes directory, so introduce 'osgiClasses' task that syncs all classes to a single directory

Most of the changes to integration tests are find classes in their new location. Helper methods in AbstractIntegrationSpec

can locate class files vs hardcoding a path.

Squashed commit of sg-split-jvm-classes branch for REVIEW-6502

  1. … 119 more files in changeset.
Revert "Revert "Merge branch 'cc-java-library-plugin'""

This reverts commit c6cd884e1a8889fb25d26dfcfdfa79d896835e11.

  1. … 76 more files in changeset.
Revert "Merge branch 'cc-java-library-plugin'"

This reverts commit 0d442a55b445f537efbce65267ce9418fce2e7a8, reversing

changes made to 04647ab69fc8d19186cd2a78124ea74b8a89cc0f.

  1. … 76 more files in changeset.
Fix test case

Rename `apiCompile` to `apiElements`

to match the `runtimeElements` configuration name.

  1. … 6 more files in changeset.
Initial setup of the API and API compile configurations

This is the initial step to provide API/impl separation for the current model. The commit

introduces two new configurations:

- `api` is a bucket of dependencies configuration where the user would declare the dependencies of its

API. That configuration is not transitive, and reflects the dependencies which are strictly required

when some component needs to compile against this component.

- `apiCompile` is a consumer only configuration which extends the `api` configuration and provides

the compile classpath when a component compiles against this component. It will therefore contain

the dependencies of `api`, plus the API classes. The form in which we provide the API classes has

yet to be defined (could be a jar, a class directory, stubs, ...).

See: gradle/performance#180

  1. … 8 more files in changeset.
Favor Groovy SAM type coercion over anonymous class

See gradle/gradle-script-kotlin#124

  1. … 2 more files in changeset.
Add missing Action<?> overloads to SourceSet

See gradle/gradle-script-kotlin#124

  1. … 8 more files in changeset.
Add 'compileClasspath' configuration to all source sets

- Creates another configuration, 'compileClasspath', for all source sets

- This configuration extends from 'compileOnly'

- Source set's compileClasspath is set to 'compileClasspath' configuration

+review REVIEW-5807

  1. … 17 more files in changeset.
Add 'compileOnly' configuration for each source set.

This commit creates a new 'compileOnly' configuration for each declared source set. Dependencies added to this source set are used during compilation only. They are not included on the runtime classpath, are not inherited by test classpath, are not included in 'deployable' artifacts such as WARs, EARs or application distributions, are not exported to consuming projects, and are not included in published metadata.

+review REVIEW-5807

  1. … 22 more files in changeset.
Introduced a factory to create `SourceDirectorySet` instances, to avoid exposing the dependencies of `DefaultSourceDirectorySet` to all the places that need to create a `SourceDirectorySet`.

  1. … 37 more files in changeset.
Polishing changes to use PatternSpecFactory +review REVIEW-5627

  1. … 15 more files in changeset.
Manage creation of most PatternSet instances

- use managed CachingPatternSpecFactory instance for

these PatternSet instances

+review REVIEW-5627

  1. … 37 more files in changeset.