[lworld] RFR: 8340409: [lworld] Simple serialization and deserialization of core migrated classes [v3]
Roger Riggs
rriggs at openjdk.org
Tue Oct 22 15:37:35 UTC 2024
On Wed, 9 Oct 2024 18:17:34 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.
>
> Roger Riggs has updated the pull request incrementally with one additional commit since the last revision:
>
> From review comments.
> Tidy up unreachable IllegalAccessException after setAccessible; throw InternalError.
> Move declaration of local into for loop header.
> Cleanup TRACE Property parsing.
> Improve test output readability.
Are there any more review comments; I'd like to get this integrated.
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/1248#issuecomment-2429615623
More information about the valhalla-dev
mailing list