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

    • -13
    • +25
  1. … 1 more file in changeset.
Move all subprojects to the `subprojects` directory

    • -36
    • +0
    • -59
    • +0
    • -25
    • +0
    • -241
    • +0
    • -133
    • +0
  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`.

Simplify splitting :provider into :provider-plugins

by letting :provider-plugins depend directly on :provider

and removing :provider-spi

Signed-off-by: Paul Merlin <>

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

Signed-off-by: Paul Merlin <>

  1. … 10 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. … 20 more files in changeset.
Polish `KotlinScriptBasePlugin.kt`

Compute buildscript block compilation classpath lazily

Introduce `unsafeLazy` to replace `lazy` wherever possible

And remove the unnecessary thread synchronization overhead.

  1. … 5 more files in changeset.
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

    • -14
    • +40
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.
Compute script compilation classpath from target `ClassLoaderScope`

Instead of `scriptHandler.scriptClassPath` so plugin implementations

coming from other loaders, as it is the case with plugins tested via

TestKit's `withPluginClasspath`, are also added to the compilation


See #492

  1. … 1 more file in changeset.
Process the `buildscript` block of settings script plugins

See #180

  1. … 1 more file in changeset.
Use DefaultClassPath factory method instead of now deprecated ctor

  1. … 1 more file in changeset.
Move `exportClassPathFromHierarchyOf` to `KotlinScriptClassPathProvider`

  1. … 1 more file in changeset.
Process the `buildscript` block of project script plugins

See #180

  1. … 1 more file in changeset.
Polish `KotlinBuildScriptCompiler`

- Split query from default value

Address review comments

  1. … 1 more file in changeset.
Polish `KotlinScriptPluginFactory`

- Keep one argument per line in multi-line calls

Location aware exceptions for script evaluation errors

  1. … 1 more file in changeset.