You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Anton Vinogradov (Jira)" <ji...@apache.org> on 2026/07/30 15:10:00 UTC

[jira] [Created] (IGNITE-28937) Register core messages uniformly: drop withSchema/withNoSchema

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)