Anton Vinogradov created IGNITE-28937:
-----------------------------------------

             Summary: Register core messages uniformly: drop 
withSchema/withNoSchema
                 Key: IGNITE-28937
                 URL: https://issues.apache.org/jira/browse/IGNITE-28937
             Project: Ignite
          Issue Type: Sub-task
          Components: messaging
            Reporter: Anton Vinogradov
            Assignee: Anton Vinogradov
             Fix For: 2.19


h3. Goal

One registration form for every message, and a single source of truth for the 
marshaller.

h3. Why

After IGNITE-28929 the marshaller is stated by {{@UseBinaryMarshaller}}, and 
{{CoreMessagesProvider#withSchema}} / {{#withNoSchema}} became identical - they 
differ only by an assertion that the annotation matches the chosen helper. The 
truth is duplicated in two places and the assertion exists solely to catch the 
two drifting apart. The same commit already left the plain form 
{{register(factory, cls, id)}} in {{CalciteMessageFactory}}.

Additionally, {{register}} threads a {{Marshaller}} into the {{Serializer}} and 
{{Deployer}} companion lookups, which never take one: 0 of 462 generated 
serializers and 0 of 31 generated deployers declare a constructor with 
{{Marshaller}}, and the generators cannot emit one.

h3. How

* replace the 297 {{withSchema}}/{{withNoSchema}} calls with 
{{register(factory, cls, msgIdx++)}} and delete both helpers;
* pass the marshaller only into the {{Marshaller}} companion lookup in 
{{AbstractMarshallableMessageFactoryProvider}}.

h3. Expected result

Registration in core reads exactly like calcite, and the marshaller is stated 
once. Behaviour is unchanged: no generated companion differs.

Note: until the transport subtask lands, a misplaced annotation is silently 
ignored instead of tripping an assertion - the window is closed for good when 
the annotation itself is removed.

h3. How to verify

Diff the generated companions before and after - they must be identical; 
{{MessageFactoryMarshallerInitializationTest}}, {{MessageProcessorTest}}, 
{{DirectMarshallingMessagesTest}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to