From b5c2c76949e7bf12289adfcfc8320f3d49b8ef6c Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Tue, 7 Apr 2026 13:16:11 +0500 Subject: [PATCH 1/2] IGNITE-27975 Use MessageSerializer for IgniteIoTestMessage --- .../communication/GridIoMessageFactory.java | 2 +- .../communication/IgniteIoTestMessage.java | 295 +++--------------- .../IgniteIoTestMessagesTest.java | 6 +- .../testsuites/IgniteCacheTestSuite10.java | 1 - 4 files changed, 40 insertions(+), 264 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 6eff060a04618..b284cab5ddac1 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 @@ -385,7 +385,7 @@ public GridIoMessageFactory(Marshaller marsh, ClassLoader clsLdr) { factory.register(-49, UpdateErrors::new, new UpdateErrorsSerializer()); factory.register(-48, GridDhtAtomicNearResponse::new, new GridDhtAtomicNearResponseSerializer()); factory.register(-45, GridChangeGlobalStateMessageResponse::new, new GridChangeGlobalStateMessageResponseSerializer()); - factory.register((short)-43, IgniteIoTestMessage::new); + factory.register(-43, IgniteIoTestMessage::new, new IgniteIoTestMessageMarshallableSerializer(marsh, clsLdr)); factory.register(-36, GridDhtAtomicSingleUpdateRequest::new, new GridDhtAtomicSingleUpdateRequestSerializer()); factory.register(-27, GridDhtTxOnePhaseCommitAckRequest::new, new GridDhtTxOnePhaseCommitAckRequestSerializer()); factory.register(-25, TxLock::new, new TxLockSerializer()); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java index a2302730ed373..7c1c242642811 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java @@ -17,70 +17,81 @@ package org.apache.ignite.internal.managers.communication; -import java.nio.ByteBuffer; import java.util.UUID; -import org.apache.ignite.internal.GridDirectTransient; -import org.apache.ignite.internal.IgniteCodeGeneratingFail; +import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.util.typedef.internal.S; -import org.apache.ignite.plugin.extensions.communication.Message; -import org.apache.ignite.plugin.extensions.communication.MessageReader; -import org.apache.ignite.plugin.extensions.communication.MessageWriter; +import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.plugin.extensions.communication.MarshallableMessage; /** * */ -@IgniteCodeGeneratingFail -public class IgniteIoTestMessage implements Message { +public class IgniteIoTestMessage implements MarshallableMessage { /** */ private static final byte FLAG_PROC_FROM_NIO = 1; /** */ - private long id; + @Order(0) + long id; /** */ - private byte flags; + @Order(1) + byte flags; /** */ - private boolean req; + @Order(2) + boolean req; /** */ - private byte[] payload; + @Order(3) + byte[] payload; /** */ - private long reqCreateTs; + @Order(4) + long reqCreateTs; /** */ - private long reqSndTs; + @Order(5) + long reqSndTs; /** */ - private long reqSndTsMillis; + @Order(6) + long reqSndTsMillis; /** */ - private long reqRcvTs; + @Order(7) + long reqRcvTs; /** */ - private long reqRcvTsMillis; + @Order(8) + long reqRcvTsMillis; /** */ - private long reqProcTs; + @Order(9) + long reqProcTs; /** */ - private long resSndTs; + @Order(10) + long resSndTs; /** */ - private long resSndTsMillis; + @Order(11) + long resSndTsMillis; /** */ - private long resRcvTs; + @Order(12) + long resRcvTs; /** */ - private long resRcvTsMillis; + @Order(13) + long resRcvTsMillis; /** */ - private long resProcTs; + @Order(14) + long resProcTs; /** */ - @GridDirectTransient private UUID sndNodeId; /** @@ -314,247 +325,15 @@ public void senderNodeId(UUID sndNodeId) { } /** {@inheritDoc} */ - @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { - writer.setBuffer(buf); - + @Override public void prepareMarshal(Marshaller marsh) throws IgniteCheckedException { onBeforeWrite(); - - if (!writer.isHeaderWritten()) { - if (!writer.writeHeader(directType())) - return false; - - writer.onHeaderWritten(); - } - - switch (writer.state()) { - case 0: - if (!writer.writeByte(flags)) - return false; - - writer.incrementState(); - - case 1: - if (!writer.writeLong(id)) - return false; - - writer.incrementState(); - - case 2: - if (!writer.writeByteArray(payload)) - return false; - - writer.incrementState(); - - case 3: - if (!writer.writeBoolean(req)) - return false; - - writer.incrementState(); - - case 4: - if (!writer.writeLong(reqCreateTs)) - return false; - - writer.incrementState(); - - case 5: - if (!writer.writeLong(reqProcTs)) - return false; - - writer.incrementState(); - - case 6: - if (!writer.writeLong(reqRcvTs)) - return false; - - writer.incrementState(); - - case 7: - if (!writer.writeLong(reqRcvTsMillis)) - return false; - - writer.incrementState(); - - case 8: - if (!writer.writeLong(reqSndTs)) - return false; - - writer.incrementState(); - - case 9: - if (!writer.writeLong(reqSndTsMillis)) - return false; - - writer.incrementState(); - - case 10: - if (!writer.writeLong(resProcTs)) - return false; - - writer.incrementState(); - - case 11: - if (!writer.writeLong(resRcvTs)) - return false; - - writer.incrementState(); - - case 12: - if (!writer.writeLong(resRcvTsMillis)) - return false; - - writer.incrementState(); - - case 13: - if (!writer.writeLong(resSndTs)) - return false; - - writer.incrementState(); - - case 14: - if (!writer.writeLong(resSndTsMillis)) - return false; - - writer.incrementState(); - - } - - return true; } /** {@inheritDoc} */ - @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { - reader.setBuffer(buf); - - switch (reader.state()) { - case 0: - flags = reader.readByte(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 1: - id = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 2: - payload = reader.readByteArray(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 3: - req = reader.readBoolean(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 4: - reqCreateTs = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 5: - reqProcTs = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 6: - reqRcvTs = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 7: - reqRcvTsMillis = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 8: - reqSndTs = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 9: - reqSndTsMillis = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 10: - resProcTs = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 11: - resRcvTs = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 12: - resRcvTsMillis = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 13: - resSndTs = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 14: - resSndTsMillis = reader.readLong(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - } - + @Override public void finishUnmarshal(Marshaller marsh, ClassLoader clsLdr) throws IgniteCheckedException { onAfterRead(); - - return true; } - /** {@inheritDoc} */ @Override public String toString() { return S.toString(IgniteIoTestMessage.class, this); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java index 5c301694114a3..46b0adfd4598b 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java @@ -40,11 +40,9 @@ public class IgniteIoTestMessagesTest extends GridCommonAbstractTest { startClientGrid(4); } - /** - * @throws Exception If failed. - */ + /** */ @Test - public void testIoTestMessages() throws Exception { + public void testIoTestMessages() { for (Ignite node : G.allGrids()) { IgniteKernal ignite = (IgniteKernal)node; diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite10.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite10.java index 18eef5f83ffc1..2bfc589d6ea4a 100755 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite10.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite10.java @@ -185,7 +185,6 @@ public static List> suite(Collection ignoredTests) { GridTestUtils.addTestIfNeeded(suite, IgniteCommunicationBalanceMultipleConnectionsTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, IgniteCommunicationSslBalanceTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, IgniteIoTestMessagesTest.class, ignoredTests); - GridTestUtils.addTestIfNeeded(suite, IgniteIoTestMessagesTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, IgniteMessageFactoryImplTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, MessageDirectTypeIdConflictTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, IgniteIoCommunicationMessageSerializationTest.class, ignoredTests); From b20c22aafe6b0a2bcbb78e40a120aaad4b4f2de7 Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Tue, 7 Apr 2026 18:16:54 +0500 Subject: [PATCH 2/2] remove IgniteCodeGeneratingFail --- .../internal/IgniteCodeGeneratingFail.java | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/IgniteCodeGeneratingFail.java diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteCodeGeneratingFail.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteCodeGeneratingFail.java deleted file mode 100644 index 4938dd486888e..0000000000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteCodeGeneratingFail.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotates fields that code generator should not be override. - * Deprecated, see {@link MessageProcessor} and {@link MessageSerializerGenerator} for details. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -@Deprecated -public @interface IgniteCodeGeneratingFail { - // No-op. -}