[
https://issues.apache.org/jira/browse/IGNITE-14649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17351110#comment-17351110
]
Ivan Bessonov commented on IGNITE-14649:
----------------------------------------
[~apolovtcev] looks good to me, thank you!
> Create an annotation processor for generating message serializers and
> de-serializers
> ------------------------------------------------------------------------------------
>
> Key: IGNITE-14649
> URL: https://issues.apache.org/jira/browse/IGNITE-14649
> Project: Ignite
> Issue Type: Sub-task
> Components: networking
> Reporter: Semyon Danilov
> Assignee: Aleksandr Polovtcev
> Priority: Major
> Fix For: 3.0.0-alpha3
>
> Time Spent: 5h
> Remaining Estimate: 0h
>
> {{NetworkMessage}} instances can be (de-)serialized using instances of
> {{MessageSerializer}} and {{MessageDeserializer}} interfaces. These
> interfaces have to be implemented for every message type which is very
> tedious and can be automated. It is proposed to use annotation processing to
> generate the corresponding implementations for every network message.
> Current serialization procedure looks like the following:
> # Message header is written.
> # Message fields are sorted alphanumerically. This is done for historical
> reasons and not needed at the moment, but it was decided to keep this logic.
> # Message fields are dumped into the provided stateful {{MessageWriter}}.
> De-serialization procedure performs the same actions in reverse order.
> h3. Requirements
> # Create an annotation processor for generating instances of the following
> interfaces:
> ## {{MessageDeserializer}}
> ## {{MessageSerializer}}
> ## {{MessageSerializationFactory}}
> # Introduce the {{@AutoSerializable}} annotation that will be used to mark
> {{NetworkMessage}} implementations which will be considered as candidates for
> code generation by the annotation processor.
> # It should be possible to implement custom (de-)serializers for some
> messages. In this case it is proposed to simply omit the
> {{@AutoSerializable}} annotation on such messages.
> # Auto-generated {{MessageSerializationFactory}} instances should be
> automatically registered in a {{MessageSerializationRegistry}}. It is
> proposed to create a helper class that will add the generated factories to
> the provided registry.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)