[ 
https://issues.apache.org/jira/browse/IGNITE-28520?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anton Vinogradov updated IGNITE-28520:
--------------------------------------
    Description: 
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.

  was:
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). Removes 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.


> Generate message serialization / marshalling / deployment from @Order & 
> @Marshalled annotations
> -----------------------------------------------------------------------------------------------
>
>                 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)

Reply via email to