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)