[
https://issues.apache.org/jira/browse/IGNITE-28520?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anton Vinogradov updated IGNITE-28520:
--------------------------------------
Summary: Auto-generate message serialization / marshalling / deployment
(was: Generate message serialization / marshalling / deployment)
> Auto-generate message serialization / marshalling / deployment
> --------------------------------------------------------------
>
> Key: IGNITE-28520
> URL: https://issues.apache.org/jira/browse/IGNITE-28520
> Project: Ignite
> Issue Type: Task
> Reporter: Alex Abashev
> Assignee: Anton Vinogradov
> Priority: Minor
> Labels: IEP-132, ise
> Fix For: 2.19
>
> Time Spent: 25h 50m
> Remaining Estimate: 0h
>
> Goals
> • Simplify. Replace per-message hand-written writeTo/readFrom (serialization),
> prepareMarshal/finishUnmarshal (marshalling) and prepareDeployment
> (deployment)
> with companion classes generated by an annotation processor from declarative
> field annotations (@Order, @Marshalled, @MarshalledCollection,
> @MarshalledMap,
> @NioField). Remove boilerplate and whole classes of manual bugs: wrong field
> order, forgotten field, read/write mismatch.
> • Unify. One mechanism and vocabulary across the three concerns —
> serialize (writeTo/readFrom) · marshal/unmarshal · deploy — dispatched
> uniformly through the message factory
> (serializer()/marshaller()/deployer()).
> • Harden. Compile-time validation of message structure: an ArchUnit rule keeps
> callers on the static facades; a gated marshal-once/unmarshal-once dedup
> check
> catches double-(un)marshal (folded away in production).
> • Keep runtime neutral-or-better.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)