Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
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.
Fix `AccessorsClassPath.kt`

- Dedupe `AnnotationVisitor` logic

- Assume values cannot be null and are of the right type

Fix typo in field reference

Detect internal Kotlin types and mark them inaccessible

By deserializing the Kotlin `ProtoBuf.Class` information stored in the

`kotlin.Metadata` annotation. This is done only for public classes for

performance reasons.

Fixes #856

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

- Compose method

- Fully qualify ambiguous function call

Polish `KotlinBuildScriptModelRequest.kt`

- Compose methods

Use new `FileOperations` constructor

Fixes #857

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.
Document `report` parameter for future reference

Move ProjectSchema calculation into Gradle plugins classloader

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

See #180

  1. … 1 more file in changeset.
Prefer method reference over lambda