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

Aleksandr Polovtcev updated IGNITE-14649:
-----------------------------------------
    Component/s: networking

> 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
>
> {{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)

Reply via email to