From dd9ac103f9c1dc1da579811535447c3b448613e8 Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Fri, 20 Feb 2026 22:11:17 +0500 Subject: [PATCH] IGNITE-27927 Use MessageSerializer for GridIoUserMessage --- .../communication/GridIoMessageFactory.java | 2 +- .../communication/GridIoUserMessage.java | 161 ++---------------- 2 files changed, 16 insertions(+), 147 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java index 35602626a154b..82782d56a74e4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java @@ -369,7 +369,7 @@ public class GridIoMessageFactory implements MessageFactoryProvider { factory.register((short)6, GridTaskSessionRequest::new, new GridTaskSessionRequestSerializer()); factory.register((short)7, GridCheckpointRequest::new, new GridCheckpointRequestSerializer()); factory.register((short)8, GridIoMessage::new, new GridIoMessageSerializer()); - factory.register((short)9, GridIoUserMessage::new); + factory.register((short)9, GridIoUserMessage::new, new GridIoUserMessageSerializer()); factory.register((short)10, GridDeploymentInfoBean::new); factory.register((short)11, GridDeploymentRequest::new, new GridDeploymentRequestSerializer()); factory.register((short)12, GridDeploymentResponse::new, new GridDeploymentResponseSerializer()); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java index 89cca69737d9b..46338092b3450 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java @@ -17,21 +17,16 @@ package org.apache.ignite.internal.managers.communication; -import java.nio.ByteBuffer; import java.util.Collections; import java.util.Map; import java.util.UUID; import org.apache.ignite.configuration.DeploymentMode; -import org.apache.ignite.internal.GridDirectMap; -import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.deployment.GridDeployment; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.extensions.communication.Message; -import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; -import org.apache.ignite.plugin.extensions.communication.MessageReader; -import org.apache.ignite.plugin.extensions.communication.MessageWriter; import org.jetbrains.annotations.Nullable; /** @@ -39,38 +34,41 @@ */ public class GridIoUserMessage implements Message { /** Message body. */ - @GridDirectTransient private Object body; /** Serialized message body. */ - private byte[] bodyBytes; + @Order(0) + byte[] bodyBytes; /** Class loader ID. */ - private IgniteUuid clsLdrId; + @Order(1) + IgniteUuid clsLdrId; /** Message topic. */ - @GridDirectTransient private Object topic; /** Serialized message topic. */ - private byte[] topicBytes; + @Order(2) + byte[] topicBytes; /** Deployment mode. */ - private DeploymentMode depMode; + @Order(3) + DeploymentMode depMode; /** Deployment class name. */ - private String depClsName; + @Order(4) + String depClsName; /** User version. */ - private String userVer; + @Order(5) + String userVer; /** Node class loader participants. */ + @Order(6) @GridToStringInclude - @GridDirectMap(keyType = UUID.class, valueType = IgniteUuid.class) - private Map ldrParties; + Map ldrParties; /** Message deployment. */ - @GridDirectTransient private GridDeployment dep; /** @@ -203,135 +201,6 @@ public void deployment(GridDeployment dep) { return dep; } - /** {@inheritDoc} */ - @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { - writer.setBuffer(buf); - - if (!writer.isHeaderWritten()) { - if (!writer.writeHeader(directType())) - return false; - - writer.onHeaderWritten(); - } - - switch (writer.state()) { - case 0: - if (!writer.writeByteArray(bodyBytes)) - return false; - - writer.incrementState(); - - case 1: - if (!writer.writeIgniteUuid(clsLdrId)) - return false; - - writer.incrementState(); - - case 2: - if (!writer.writeString(depClsName)) - return false; - - writer.incrementState(); - - case 3: - if (!writer.writeByte(depMode != null ? (byte)depMode.ordinal() : -1)) - return false; - - writer.incrementState(); - - case 4: - if (!writer.writeMap(ldrParties, MessageCollectionItemType.UUID, MessageCollectionItemType.IGNITE_UUID)) - return false; - - writer.incrementState(); - - case 5: - if (!writer.writeByteArray(topicBytes)) - return false; - - writer.incrementState(); - - case 6: - if (!writer.writeString(userVer)) - return false; - - writer.incrementState(); - - } - - return true; - } - - /** {@inheritDoc} */ - @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { - reader.setBuffer(buf); - - switch (reader.state()) { - case 0: - bodyBytes = reader.readByteArray(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 1: - clsLdrId = reader.readIgniteUuid(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 2: - depClsName = reader.readString(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 3: - byte depModeOrd; - - depModeOrd = reader.readByte(); - - if (!reader.isLastRead()) - return false; - - depMode = DeploymentMode.fromOrdinal(depModeOrd); - - reader.incrementState(); - - case 4: - ldrParties = reader.readMap(MessageCollectionItemType.UUID, MessageCollectionItemType.IGNITE_UUID, false); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 5: - topicBytes = reader.readByteArray(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 6: - userVer = reader.readString(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - } - - return true; - } - /** {@inheritDoc} */ @Override public short directType() { return 9;