InstantExecutionClassLoaderScopeRegistryListener.kt

Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Ensure that the implementation hash for a task defined in a Groovy DSL build script is the same when the task is deserialized from the instant execution cache as when it was serialized to cache.

Previously, a task defined in a Groovy DSL script was always treated as out-of-date when first deserialized from the instant execution cache.

    • -15
    • +13
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Ensure that the implementation hash for a task defined in a Groovy DSL build script is the same when the task is deserialized from the instant execution cache as when it was serialized to cache.

Previously, a task defined in a Groovy DSL script was always treated as out-of-date when first deserialized from the instant execution cache.

    • -15
    • +13
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 7 more files in changeset.
Ensure that the implementation hash for a task defined in a Groovy DSL build script is the same when the task is deserialized from the instant execution cache as when it was serialized to cache.

Previously, a task defined in a Groovy DSL script was always treated as out-of-date when first deserialized from the instant execution cache.

    • -15
    • +13
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Fix for previous commit.

    • -4
    • +13
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 1 more file in changeset.
Simplify and improve the reliability of serializing classes to the instant execution cache.

Fixes a case where loading the instant execution cache after writing a task graph that references a different set of build scripts to that referenced last time the task graph was written.

    • -4
    • +13
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 7 more files in changeset.
Simplify and improve the reliability of serializing classes to the instant execution cache.

Fixes a case where loading the instant execution cache after writing a task graph that references a different set of build scripts to that referenced last time the task graph was written.

    • -4
    • +13
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 7 more files in changeset.
Fix `ClassNotFoundExeception` when loading objects whose class is defined in a build script from the instant execution cache, after recreating the cache from a daemon process that has previously successfully used the cache.

For example, running `gradle taskA`, `gradle taskA`, `gradle taskB`, `gradle taskB` would fail if `taskB` uses types from a build script.

This was happening because the script ClassLoaders are cached and reused, but the association between ClassLoader and scope was lost, and this association is what instant execution uses to know how to load the class.

This change fixes one case of this problem, but the same problem can still happen if the set of build scripts being referenced changes.

    • -8
    • +19
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 25 more files in changeset.
Fix `ClassNotFoundExeception` when loading objects whose class is defined in a build script from the instant execution cache, after recreating the cache from a daemon process that has previously successfully used the cache.

For example, running `gradle taskA`, `gradle taskA`, `gradle taskB`, `gradle taskB` would fail if `taskB` uses types from a build script.

This was happening because the script ClassLoaders are cached and reused, but the association between ClassLoader and scope was lost, and this association is what instant execution uses to know how to load the class.

This change fixes one case of this problem, but the same problem can still happen if the set of build scripts being referenced changes.

    • -8
    • +19
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 21 more files in changeset.
Fix `ClassNotFoundExeception` when loading objects whose class is defined in a build script from the instant execution cache, after recreating the cache from a daemon process that has previously successfully used the cache.

For example, running `gradle taskA`, `gradle taskA`, `gradle taskB`, `gradle taskB` would fail if `taskB` uses types from a build script.

This was happening because the script ClassLoaders are cached and reused, but the association between ClassLoader and scope was lost, and this association is what instant execution uses to know how to load the class.

This change fixes one case of this problem, but the same problem can still happen if the set of build scripts being referenced changes.

    • -8
    • +19
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 25 more files in changeset.
Fix `ClassNotFoundExeception` when loading objects whose class is defined in a build script from the instant execution cache, after recreating the cache from a daemon process that has previously successfully used the cache.

For example, running `gradle taskA`, `gradle taskA`, `gradle taskB`, `gradle taskB` would fail if `taskB` uses types from a build script.

This was happening because the script ClassLoaders are cached and reused, but the association between ClassLoader and scope was lost, and this association is what instant execution uses to know how to load the class.

This change fixes one case of this problem, but the same problem can still happen if the set of build scripts being referenced changes.

    • -8
    • +19
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 21 more files in changeset.
System properties as build logic inputs

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -19
    • +3
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 19 more files in changeset.
System properties as build logic inputs

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -19
    • +3
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 19 more files in changeset.
Record the ClassLoader associated with each class that is serialized to the instant execution cache, and use this to make class lookup on deserialize faster and to deal correctly with multiple classes with the same name.

Move some ClassLoader lifecycling from Groovy DSL script compilation to `ClassLoaderScope`, so that the scope takes care of creating and caching the script ClassLoader.

    • -22
    • +37
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 30 more files in changeset.
Record the ClassLoader associated with each class that is serialized to the instant execution cache, and use this to make class lookup on deserialize faster and to deal correctly with multiple classes with the same name.

Move some ClassLoader lifecycling from Groovy DSL script compilation to `ClassLoaderScope`, so that the scope takes care of creating and caching the script ClassLoader.

    • -22
    • +37
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 23 more files in changeset.
Record the ClassLoader associated with each class that is serialized to the instant execution cache, and use this to make class lookup on deserialize faster and to deal correctly with multiple classes with the same name.

Move some ClassLoader lifecycling from Groovy DSL script compilation to `ClassLoaderScope`, so that the scope takes care of creating and caching the script ClassLoader.

    • -22
    • +37
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 23 more files in changeset.
Record the ClassLoader associated with each class that is serialized to the instant execution cache, and use this to make class lookup on deserialize faster and to deal correctly with multiple classes with the same name.

Move some ClassLoader lifecycling from Groovy DSL script compilation to `ClassLoaderScope`, so that the scope takes care of creating and caching the script ClassLoader.

    • -22
    • +37
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 30 more files in changeset.
Let instant execution properly restore the `ClassLoaderScope` hierarchy

By exposing opaque `ClassLoaderScope` identifiers that can be used as

map keys and properly represent the scope hierarchy instead of the

scope names which don't reflect the hierarchy.

    • -10
    • +11
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Let instant execution properly restore the `ClassLoaderScope` hierarchy

By exposing opaque `ClassLoaderScope` identifiers that can be used as

map keys and properly represent the scope hierarchy instead of the

scope names which don't reflect the hierarchy.

    • -10
    • +11
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Let instant execution properly restore the `ClassLoaderScope` hierarchy

By exposing opaque `ClassLoaderScope` identifiers that can be used as

map keys and properly represent the scope hierarchy instead of the

scope names which don't reflect the hierarchy.

    • -10
    • +11
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Let instant execution properly restore the `ClassLoaderScope` hierarchy

By exposing opaque `ClassLoaderScope` identifiers that can be used as

map keys and properly represent the scope hierarchy instead of the

scope names which don't reflect the hierarchy.

    • -10
    • +11
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Let instant execution properly restore the `ClassLoaderScope` hierarchy

By exposing opaque `ClassLoaderScope` identifiers that can be used as

map keys and properly represent the scope hierarchy instead of the

scope names which don't reflect the hierarchy.

    • -10
    • +11
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Let instant execution properly restore the `ClassLoaderScope` hierarchy

By exposing opaque `ClassLoaderScope` identifiers that can be used as

map keys and properly represent the scope hierarchy instead of the

scope names which don't reflect the hierarchy.

    • -10
    • +11
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 8 more files in changeset.
Revert "Reinstate "Let instant execution reuse classloaders when loading""

    • -95
    • +0
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 36 more files in changeset.
Revert "Revert "Let instant execution reuse classloaders when loading""

    • -0
    • +95
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 36 more files in changeset.
Revert "Let instant execution reuse classloaders when loading"

    • -95
    • +0
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 36 more files in changeset.
Polish `InstantExecutionClassLoaderScopeRegistryListener`

    • -0
    • +6
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
Attach listener via a `BuildScopeListenerManagerAction`

Instead of forcing the listeners to be initialized via a factory

dependency.

    • -7
    • +17
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 4 more files in changeset.
Attach listener via a `BuildScopeListenerManagerAction`

Instead of forcing the listeners to be initialized via a factory

dependency.

    • -7
    • +17
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 4 more files in changeset.
Attach listener via a `BuildScopeListenerManagerAction`

Instead of forcing the listeners to be initialized via a factory

dependency.

    • -7
    • +17
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 4 more files in changeset.
Polish `InstantExecutionClassLoaderScopeRegistryListener`

    • -3
    • +3
    ./InstantExecutionClassLoaderScopeRegistryListener.kt
  1. … 1 more file in changeset.