[lworld] Integrated: 8340409: [lworld] Simple serialization and deserialization of core migrated classes
Roger Riggs
rriggs at openjdk.org
Thu Oct 24 14:51:38 UTC 2024
On Wed, 18 Sep 2024 20:31:25 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
> Serialization and deerialization of value classes.
> For java.base value classes migrated from identity classes:
> - Must be annotated with jdk.internal.MigratedValueClass (in tests too)
> - Must have a constructor or static factory method:
> - annotated with jdk.internal.value.DeserializeConstrucctor
> - constructor parameters must match order and types of serializable fields of the class
> - Value class must not have superclass with fields; only Object or abstract w/o fields
> - Uses same technique as for Records to extract and concat values from stream to invoke constructor
> - Migrated value classes are serialized using the same format/fields as the identity class
>
> Non-migrated value classes throw InvalidClassException
>
> Along the way, refactored code to break out different modes of deserialization: full custom deserialization with custom data, default deserialization only, externalizable, no local class, record, and then added mode to deserialize a value class.
>
> Updates to value class tests and added a combo test to check many combinations of value and identity classes with different parameters.
This pull request has now been integrated.
Changeset: e02c628f
Author: Roger Riggs <rriggs at openjdk.org>
URL: https://git.openjdk.org/valhalla/commit/e02c628f867d564bd3ddf644ec2fcc465c75b8f3
Stats: 3174 lines in 21 files changed: 2588 ins; 423 del; 163 mod
8340409: [lworld] Simple serialization and deserialization of core migrated classes
-------------
PR: https://git.openjdk.org/valhalla/pull/1248
More information about the valhalla-dev
mailing list