This is an automated email from the ASF dual-hosted git repository.

sergeychugunov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new b1b4a11617f IGNITE-26400 Use MessageSerializer for 
CacheGroupAffinityMessage (#12327)
b1b4a11617f is described below

commit b1b4a11617f6e240b8deffa751b8e8de5d9a88b5
Author: Dmitry Werner <[email protected]>
AuthorDate: Tue Sep 9 18:22:38 2025 +0500

    IGNITE-26400 Use MessageSerializer for CacheGroupAffinityMessage (#12327)
---
 .../communication/GridIoMessageFactory.java        |   3 +-
 .../dht/preloader/CacheGroupAffinityMessage.java   | 109 +++++++--------------
 2 files changed, 37 insertions(+), 75 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 207190bfd75..211c68726ea 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
@@ -26,6 +26,7 @@ import org.apache.ignite.internal.GridTaskCancelRequest;
 import org.apache.ignite.internal.GridTaskSessionRequest;
 import org.apache.ignite.internal.IgniteDiagnosticMessage;
 import org.apache.ignite.internal.codegen.CacheEvictionEntrySerializer;
+import org.apache.ignite.internal.codegen.CacheGroupAffinityMessageSerializer;
 import org.apache.ignite.internal.codegen.CacheVersionedValueSerializer;
 import 
org.apache.ignite.internal.codegen.GenerateEncryptionKeyRequestSerializer;
 import org.apache.ignite.internal.codegen.GridCacheEntryInfoSerializer;
@@ -330,7 +331,7 @@ public class GridIoMessageFactory implements 
MessageFactoryProvider {
         factory.register((short)125, GridNearAtomicSingleUpdateRequest::new);
         factory.register((short)126, 
GridNearAtomicSingleUpdateInvokeRequest::new);
         factory.register((short)127, 
GridNearAtomicSingleUpdateFilterRequest::new);
-        factory.register((short)128, CacheGroupAffinityMessage::new);
+        factory.register((short)128, CacheGroupAffinityMessage::new, new 
CacheGroupAffinityMessageSerializer());
         factory.register((short)129, WalStateAckMessage::new, new 
WalStateAckMessageSerializer());
         factory.register((short)130, 
UserManagementOperationFinishedMessage::new, new 
UserManagementOperationFinishedMessageSerializer());
         factory.register((short)131, UserAuthenticateRequestMessage::new, new 
UserAuthenticateRequestMessageSerializer());
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
index 5526318423c..26b1105aa5e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
@@ -17,14 +17,12 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht.preloader;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.GridDirectCollection;
-import org.apache.ignite.internal.GridDirectMap;
+import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.managers.discovery.DiscoCache;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import 
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache;
@@ -35,9 +33,6 @@ import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 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;
 
 /**
@@ -45,15 +40,15 @@ import org.jetbrains.annotations.Nullable;
  */
 public class CacheGroupAffinityMessage implements Message {
     /** */
-    @GridDirectCollection(GridLongList.class)
+    @Order(value = 0, method = "assignments")
     private List<GridLongList> assigns;
 
     /** */
-    @GridDirectCollection(GridLongList.class)
+    @Order(value = 1, method = "idealAssignments")
     private List<GridLongList> idealAssigns;
 
     /** */
-    @GridDirectMap(keyType = Integer.class, valueType = GridLongList.class)
+    @Order(value = 2, method = "assignmentsDiff")
     private Map<Integer, GridLongList> assignsDiff;
 
     /**
@@ -240,79 +235,45 @@ public class CacheGroupAffinityMessage implements Message 
{
     }
 
     /**
-     * @return Difference with ideal affinity assignment.
+     * @return Assignment.
      */
-    public Map<Integer, GridLongList> assignmentsDiff() {
-        return assignsDiff;
+    public List<GridLongList> assignments() {
+        return assigns;
     }
 
-    /** {@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.writeCollection(assigns, 
MessageCollectionItemType.MSG))
-                    return false;
-
-                writer.incrementState();
-
-            case 1:
-                if (!writer.writeMap(assignsDiff, 
MessageCollectionItemType.INT, MessageCollectionItemType.MSG))
-                    return false;
-
-                writer.incrementState();
-
-            case 2:
-                if (!writer.writeCollection(idealAssigns, 
MessageCollectionItemType.MSG))
-                    return false;
-
-                writer.incrementState();
-
-        }
-
-        return true;
+    /**
+     * @param assigns Assignment.
+     */
+    public void assignments(List<GridLongList> assigns) {
+        this.assigns = assigns;
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
-        reader.setBuffer(buf);
-
-        switch (reader.state()) {
-            case 0:
-                assigns = reader.readCollection(MessageCollectionItemType.MSG);
-
-                if (!reader.isLastRead())
-                    return false;
-
-                reader.incrementState();
-
-            case 1:
-                assignsDiff = reader.readMap(MessageCollectionItemType.INT, 
MessageCollectionItemType.MSG, false);
-
-                if (!reader.isLastRead())
-                    return false;
-
-                reader.incrementState();
-
-            case 2:
-                idealAssigns = 
reader.readCollection(MessageCollectionItemType.MSG);
-
-                if (!reader.isLastRead())
-                    return false;
+    /**
+     * @return Ideal assignment.
+     */
+    public List<GridLongList> idealAssignments() {
+        return idealAssigns;
+    }
 
-                reader.incrementState();
+    /**
+     * @param idealAssigns Ideal assignment.
+     */
+    public void idealAssignments(List<GridLongList> idealAssigns) {
+        this.idealAssigns = idealAssigns;
+    }
 
-        }
+    /**
+     * @return Difference with ideal affinity assignment.
+     */
+    public Map<Integer, GridLongList> assignmentsDiff() {
+        return assignsDiff;
+    }
 
-        return true;
+    /**
+     * @param assignsDiff Difference with ideal affinity assignment.
+     */
+    public void assignmentsDiff(Map<Integer, GridLongList> assignsDiff) {
+        this.assignsDiff = assignsDiff;
     }
 
     /** {@inheritDoc} */

Reply via email to