Skip to content

IGNITE-29153 Move BinaryUtils read helpers to BinaryReaderExImpl - #13695

Merged
nizhikov merged 2 commits into
apache:masterfrom
nizhikov:IGNITE-29153
Oct 16, 2026
Merged

nizhikov merged 2 commits into
apache:masterfrom
nizhikov:IGNITE-29153

Conversation

@nizhikov

Copy link
Copy Markdown
Contributor

Part of IGNITE-25090 (extract binary implementation from ignite-core). Sub-task: https://issues.apache.org/jira/browse/IGNITE-29153

What. Two commits, no behaviour change:

  1. BinariesFactory#unmarshal is added and GridBinaryMarshaller goes through it instead of calling the package-private BinaryUtils#unmarshal directly.
  2. The unmarshal switch and its doRead* helpers move out of ignite-binary-api. The 31 helpers used only by the reader become private static members of BinaryReaderExImpl; checkProtocolVersion, length, doReadClassName and doReadOptimized, which the builder and the offheap object also use, move to BinaryImplUtils. doReadStringArray stays in BinaryUtils because the thin client calls it.

Why. Once the marshaller reaches unmarshal through the factory, the whole read family is referenced only from ignite-binary-impl, so it no longer belongs in the API module. Method bodies move verbatim; the diff outside BinaryUtils/BinaryReaderExImpl is four one-line call-site changes plus imports.

Checked. ignite-binary-api, ignite-binary-impl, ignite-core compile; checkstyle passes on all three; core binary suites (BinaryMarshallerSelfTest, builder, enums, arrays, heap/offheap fields) pass, 857 tests.

🤖 Generated with Claude Code

nizhikov and others added 2 commits October 15, 2026 22:30
…ller through it

GridBinaryMarshaller no longer calls the package-private BinaryUtils#unmarshal
directly, which lets the read helpers leave the binary API module.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…derExImpl

The unmarshal switch and its doRead* helpers were reachable only from
binary-impl once GridBinaryMarshaller went through BinariesFactory. They
move verbatim as static methods: the 31 helpers used only by the reader
become private members of BinaryReaderExImpl, and the four shared with the
builder and offheap object (checkProtocolVersion, length, doReadClassName,
doReadOptimized) move to BinaryImplUtils. doReadStringArray stays in
BinaryUtils because the thin client calls it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@ignitetcbot

Copy link
Copy Markdown
Contributor

TCBot Test Analysis

Possible Blockers (0)

No blockers found.

New Tests (0)

No new tests found.

@nizhikov
nizhikov merged commit e98a571 into apache:master Oct 16, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants