Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Merge pull request #885 from gradle/bamboo/fix-accessors-caching

Add generated accessors jar to the loaded script cache key

  1. … 1 more file in changeset.
Move all subprojects to the `subprojects` directory

  1. … 507 more files in changeset.
Merge pull request #882 from gradle/bamboo/develop/script-plugin-classpath

Provide correct classpath for script plugins with buildscript blocks

  1. … 4 more files in changeset.
Polish `KotlinScriptFactory`

- Organize imports

- Rename function for clarity

- Rename parameter for clarity

- Favor block form for `if` statement

Remove the now unnecessary `initScriptClassPathFor` function

And simplify `BuildscriptBlockEvaluator`.

Skip the script body when computing the classpath of a script plugin

The body of script plugins will still be executed when they are

applied from other scripts as they might affect the classpath of the

applying script.

  1. … 3 more files in changeset.
Extract lower-level `KotlinScriptFactory` service

So it can be used to evaluate standalone script plugins in order to

serve their compilation classpaths to the IDE.

    • -0
    • +544
    • -0
    • +97
Remove unnecessary parameter from `KotlinScript` functional type

The target object is already captured in the `scriptTarget`.

Move `getByName(String, KClass<T>)` extension to `NamedDomainObjectCollection<out Any>` for maximum reuse

Provide typed getting by delegate on NamedDomainObjectContainer

Signed-off-by: Paul Merlin <>

  1. … 1 more file in changeset.
Throw IllegalArgumentException instead of IllegalStateException

Signed-off-by: Paul Merlin <>

Reuse illegalElementType()

Signed-off-by: Paul Merlin <>

Simplify splitting :provider into :provider-plugins further

by moving tasks back into :provider

Signed-off-by: Paul Merlin <>

  1. … 3 more files in changeset.
Refine [Named|Polymorphic]DomainObject[Collection|Container] extensions

by making their whole API available with the invoke syntax

and adding reified getByName<T>(name) {} to NamedDomainObjectCollection

and adding reified maybeCreate<T>(name) to PolymorphicDomainObjectContainer

adding more coverage along the way

Signed-off-by: Paul Merlin <>

  1. … 2 more files in changeset.
Simplify splitting :provider into :provider-plugins

by letting :provider-plugins depend directly on :provider

and removing :provider-spi

Signed-off-by: Paul Merlin <>

    • -0
    • +100
  1. … 24 more files in changeset.
Deduplicate project.serviceOf<T>()

Signed-off-by: Paul Merlin <>

  1. … 4 more files in changeset.
Move embedded plugins to the Gradle Plugins classloader

by moving them to the :provider-plugins project

and adding 2 SPI interfaces in order to share code with :provider

Signed-off-by: Paul Merlin <>

  1. … 12 more files in changeset.
Refine wording

Let the script dependencies resolver report warnings/errors to IntelliJ

Signed-off-by: Paul Merlin <>

Refine KotlinBuildScriptDependenciesResolver

Signed-off-by: Paul Merlin <>

Polish `KotlinScriptBasePlugin.kt`

Compute buildscript block compilation classpath lazily

Introduce `unsafeLazy` to replace `lazy` wherever possible

And remove the unnecessary thread synchronization overhead.

    • -0
    • +26
Compute classpath of root scope last to improve cache locality

Avoid intermediate data structures when computing the classpath

Replace `computeIfAbsent` by `getOrPut`

For compatibility with Java 9 which doesn't support reentrancy.

Optimise compilation classpath computation

- By caching the complete compilation `ClassPath` per `ClassLoaderScope`

- And by caching each individual `ClassLoader` `ClassPath`

The caches are part of a build scoped service and so all

`ClassLoaderScope` and `ClassLoader` instances will be held until the

end of the build.

See #824

Port `ClasspathUtil.getClasspath` to Kotlin

To prepare for caching.

Remove unnecessary `ClassPath` union

`buildscriptBlockCompilationClassPath` is already implied by the

`targetScope` classpath.

Normalise line separators of strings given to the Kotlin lexer

Fixes #858

  1. … 2 more files in changeset.