StateSerialization.kt

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Move `StateSerialization` to `serialization.codecs` as `Codecs`

  1. … 7 more files in changeset.
Move serialization specific types to `serialization` subpackage

And move codecs to `serialization.codecs` subpackage.

  1. … 30 more files in changeset.
Introduce `Codec<T>` and remove hard-coded serialization tags

  1. … 4 more files in changeset.
Move low level serialization logic out of `StateSerialization` class

  1. … 1 more file in changeset.
Move tags out of `StateSerialization`

  1. … 1 more file in changeset.
Unify different `:instantExecution` serialization contexts

And prepare for caching and auto-tagging of serializers.

  1. … 9 more files in changeset.
Get `ClassLoader` from `ReadContext`

  1. … 3 more files in changeset.
Propagate `(Read|Write)Context` all the way down to serializers

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

- Compose method

Allow a task to reference itself when serializing task state to the instant execution cache.

Also handle the remaining primitive types (short and float) and a couple of additional internal services.

  1. … 2 more files in changeset.
Allow a task to reference itself when serializing task state to the instant execution cache.

Also handle the remaining primitive types (short and float) and a couple of additional internal services.

  1. … 2 more files in changeset.
Allow a task to reference itself when serializing task state to the instant execution cache.

Also handle the remaining primitive types (short and float) and a couple of additional internal services.

  1. … 2 more files in changeset.
Allow a task to reference itself when serializing task state to the instant execution cache.

Also handle the remaining primitive types (short and float) and a couple of additional internal services.

  1. … 2 more files in changeset.
Handle `Double`, `double` and `FileCollectionFactory` types when serializing task state to the instant execution cache.

  1. … 3 more files in changeset.
Handle `Double`, `double` and `FileCollectionFactory` types when serializing task state to the instant execution cache.

  1. … 3 more files in changeset.
Handle cycles in the "bean" object graphs written to the instant execution cache.

Also preserve object identity for the "beans" for a given task. That is, if 2 fields for a task reference the same instance of a "bean" when written to the cache, then they will also reference the same instance when read from the cache. Identity is intentionally not preserved across task instances, to keep the tasks isolated.

  1. … 9 more files in changeset.
Handle cycles in the "bean" object graphs written to the instant execution cache.

Also preserve object identity for the "beans" for a given task. That is, if 2 fields for a task reference the same instance of a "bean" when written to the cache, then they will also reference the same instance when read from the cache. Identity is intentionally not preserved across task instances, to keep the tasks isolated.

  1. … 9 more files in changeset.
Polish `StateSerialization`

- Use pattern `0 until size` for iteration consistently

- Favour indexer over method call

Write values of type `Byte`, `byte` and `Provider<T>` to the instant execution cache.

  1. … 3 more files in changeset.
Write values of type `Byte`, `byte` and `Provider<T>` to the instant execution cache.

  1. … 3 more files in changeset.
Write values of type `Byte`, `byte` and `Provider<T>` to the instant execution cache.

  1. … 3 more files in changeset.
Write values of type `Byte`, `byte` and `Provider<T>` to the instant execution cache.

  1. … 3 more files in changeset.
Handle serialization of objects of several more types to the instance execution cache.

Also add some more test coverage of Java builds.

  1. … 5 more files in changeset.
Handle serialization of objects of several more types to the instance execution cache.

Also add some more test coverage of Java builds.

  1. … 5 more files in changeset.
Handle serialization of objects of several more types to the instance execution cache.

Also add some more test coverage of Java builds.

  1. … 5 more files in changeset.
Handle serialization of objects of several more types to the instance execution cache.

Also add some more test coverage of Java builds.

  1. … 5 more files in changeset.
Treat all objects of an unrecognized type as a "bean" when serializing values to the instant execution cache, regardless of whether the type has a zero args constructor.

Also handle values of type `Long` and `long`, and handle bean fields of type `Property`, `DirectoryProperty` and `RegularFileProperty`.

  1. … 10 more files in changeset.
Treat all objects of an unrecognized type as a "bean" when serializing values to the instant execution cache, regardless of whether the type has a zero args constructor.

Also handle values of type `Long` and `long`, and handle bean fields of type `Property`, `DirectoryProperty` and `RegularFileProperty`.

  1. … 10 more files in changeset.
Treat all objects of an unrecognized type as a "bean" when serializing values to the instant execution cache, regardless of whether the type has a zero args constructor.

Also handle values of type `Long` and `long`, and handle bean fields of type `Property`, `DirectoryProperty` and `RegularFileProperty`.

  1. … 10 more files in changeset.
Serialize several more JVM types to the instant execution cache.

  1. … 2 more files in changeset.