You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2026/03/16 12:26:41 UTC
(ignite) branch master updated: IGNITE-27971 Use message serializer for MappingAcceptedMessage and MappingProposedMessage (#12811)
This is an automated email from the ASF dual-hosted git repository.
av 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 f6dacaaf29b IGNITE-27971 Use message serializer for MappingAcceptedMessage and MappingProposedMessage (#12811)
f6dacaaf29b is described below
commit f6dacaaf29bd780552e36dfe0fba536a283af52e
Author: Alexey Abashev <al...@abashev.ru>
AuthorDate: Mon Mar 16 15:26:34 2026 +0300
IGNITE-27971 Use message serializer for MappingAcceptedMessage and MappingProposedMessage (#12811)
---
.../discovery/DiscoveryMessageFactory.java | 10 ++++++
.../marshaller/MappingAcceptedMessage.java | 24 +++++++++++---
.../marshaller/MappingProposedMessage.java | 37 ++++++++++++++++------
.../marshaller/MarshallerMappingItem.java | 26 +++++++++++----
...teMarshallerCacheClientRequestsMappingTest.java | 2 +-
5 files changed, 76 insertions(+), 23 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java
index 3969c9dd317..58eede617e8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java
@@ -51,6 +51,12 @@ import org.apache.ignite.internal.processors.continuous.StopRoutineAckDiscoveryM
import org.apache.ignite.internal.processors.continuous.StopRoutineAckDiscoveryMessageSerializer;
import org.apache.ignite.internal.processors.continuous.StopRoutineDiscoveryMessage;
import org.apache.ignite.internal.processors.continuous.StopRoutineDiscoveryMessageSerializer;
+import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessage;
+import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessageSerializer;
+import org.apache.ignite.internal.processors.marshaller.MappingProposedMessage;
+import org.apache.ignite.internal.processors.marshaller.MappingProposedMessageSerializer;
+import org.apache.ignite.internal.processors.marshaller.MarshallerMappingItem;
+import org.apache.ignite.internal.processors.marshaller.MarshallerMappingItemSerializer;
import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessage;
import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessageSerializer;
import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasMessage;
@@ -220,5 +226,9 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider {
factory.register((short)514, StopRoutineDiscoveryMessage::new, new StopRoutineDiscoveryMessageSerializer());
factory.register((short)515, CacheAffinityChangeMessage::new, new CacheAffinityChangeMessageSerializer());
factory.register((short)516, ClientCacheChangeDiscoveryMessage::new, new ClientCacheChangeDiscoveryMessageSerializer());
+ factory.register((short)517, MappingAcceptedMessage::new, new MappingAcceptedMessageSerializer());
+ factory.register((short)518, MappingProposedMessage::new, new MappingProposedMessageSerializer());
+ factory.register((short)519, MarshallerMappingItem::new, new MarshallerMappingItemSerializer());
+
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java
index e40815f31f4..9223aa2cb26 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java
@@ -17,9 +17,11 @@
package org.apache.ignite.internal.processors.marshaller;
+import org.apache.ignite.internal.Order;
import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
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.jetbrains.annotations.Nullable;
/**
@@ -27,21 +29,28 @@ import org.jetbrains.annotations.Nullable;
*
* If any nodes were waiting for this mapping to be accepted they will be unblocked on receiving this message.
*/
-public class MappingAcceptedMessage implements DiscoveryCustomMessage {
+public class MappingAcceptedMessage implements DiscoveryCustomMessage, Message {
/** */
private static final long serialVersionUID = 0L;
/** */
- private final IgniteUuid id = IgniteUuid.randomUuid();
+ @Order(0)
+ IgniteUuid id;
/** */
- private final MarshallerMappingItem item;
+ @Order(1)
+ MarshallerMappingItem item;
+
+ /** */
+ public MappingAcceptedMessage() {
+ // No-op.
+ }
/**
* @param item Item.
*/
MappingAcceptedMessage(MarshallerMappingItem item) {
- this.item = item;
+ id = IgniteUuid.randomUuid();
}
/** {@inheritDoc} */
@@ -55,10 +64,15 @@ public class MappingAcceptedMessage implements DiscoveryCustomMessage {
}
/** */
- MarshallerMappingItem getMappingItem() {
+ public MarshallerMappingItem getMappingItem() {
return item;
}
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return 517;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(MappingAcceptedMessage.class, this);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingProposedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingProposedMessage.java
index 33a2168c226..2e2a6cb5e69 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingProposedMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingProposedMessage.java
@@ -18,10 +18,11 @@
package org.apache.ignite.internal.processors.marshaller;
import java.util.UUID;
+import org.apache.ignite.internal.Order;
import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
-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.jetbrains.annotations.Nullable;
/**
@@ -33,9 +34,9 @@ import org.jetbrains.annotations.Nullable;
* When it completes a pass around the cluster ring with no conflicts observed,
* {@link MappingAcceptedMessage} is sent as an acknowledgement that everything is fine.
*/
-public class MappingProposedMessage implements DiscoveryCustomMessage {
+public class MappingProposedMessage implements DiscoveryCustomMessage, Message {
/** */
- private enum ProposalStatus {
+ enum ProposalStatus {
/** */
SUCCESSFUL,
/** */
@@ -48,20 +49,29 @@ public class MappingProposedMessage implements DiscoveryCustomMessage {
private static final long serialVersionUID = 0L;
/** */
- private final IgniteUuid id = IgniteUuid.randomUuid();
+ @Order(0)
+ IgniteUuid id;
/** */
- private final UUID origNodeId;
+ @Order(1)
+ UUID origNodeId;
/** */
- @GridToStringInclude
- private final MarshallerMappingItem mappingItem;
+ @Order(2)
+ MarshallerMappingItem mappingItem;
/** */
- private ProposalStatus status = ProposalStatus.SUCCESSFUL;
+ @Order(3)
+ ProposalStatus status;
/** */
- private String conflictingClsName;
+ @Order(4)
+ String conflictingClsName;
+
+ /** */
+ public MappingProposedMessage() {
+ // No-op.
+ }
/**
* @param mappingItem Mapping item.
@@ -70,8 +80,10 @@ public class MappingProposedMessage implements DiscoveryCustomMessage {
MappingProposedMessage(MarshallerMappingItem mappingItem, UUID origNodeId) {
assert origNodeId != null;
+ id = IgniteUuid.randomUuid();
this.mappingItem = mappingItem;
this.origNodeId = origNodeId;
+ status = ProposalStatus.SUCCESSFUL;
}
/** {@inheritDoc} */
@@ -84,7 +96,7 @@ public class MappingProposedMessage implements DiscoveryCustomMessage {
*/
@Nullable @Override public DiscoveryCustomMessage ackMessage() {
if (status == ProposalStatus.SUCCESSFUL)
- return new MappingAcceptedMessage(mappingItem);
+ return new MappingAcceptedMessage(mappingItem());
else
return null;
}
@@ -130,6 +142,11 @@ public class MappingProposedMessage implements DiscoveryCustomMessage {
return conflictingClsName;
}
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return 518;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(MappingProposedMessage.class, this);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MarshallerMappingItem.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MarshallerMappingItem.java
index f715eb2fa7f..6414d545e73 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MarshallerMappingItem.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MarshallerMappingItem.java
@@ -17,26 +17,33 @@
package org.apache.ignite.internal.processors.marshaller;
-import java.io.Serializable;
import java.util.Objects;
+import org.apache.ignite.internal.Order;
+import org.apache.ignite.plugin.extensions.communication.Message;
import org.jetbrains.annotations.Nullable;
/**
* Used to exchange mapping information on new mapping added or missing mapping requested flows.
* See {@link GridMarshallerMappingProcessor} javadoc for more information.
*/
-public final class MarshallerMappingItem implements Serializable {
+public final class MarshallerMappingItem implements Message {
/** */
- private static final long serialVersionUID = 0L;
+ @Order(0)
+ byte platformId;
/** */
- private final byte platformId;
+ @Order(1)
+ int typeId;
/** */
- private final int typeId;
+ @Order(2)
+ String clsName;
- /** */
- private String clsName;
+ /**
+ * no-op
+ */
+ public MarshallerMappingItem() {
+ }
/**
* Class name may be null when instance is created to request missing mapping from cluster.
@@ -97,4 +104,9 @@ public final class MarshallerMappingItem implements Serializable {
@Override public String toString() {
return "[platformId: " + platformId + ", typeId:" + typeId + ", clsName: " + clsName + "]";
}
+
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return 519;
+ }
}
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java
index 5dc0d6bf69e..658c56872e6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java
@@ -168,7 +168,7 @@ public class IgniteMarshallerCacheClientRequestsMappingTest extends GridCommonAb
DiscoveryCustomMessage delegate = U.unwrapCustomMessage(evtMsg.message());
if (delegate instanceof MappingAcceptedMessage) {
- MarshallerMappingItem item = GridTestUtils.getFieldValue(delegate, "item");
+ MarshallerMappingItem item = ((MappingAcceptedMessage)delegate).getMappingItem();
if (item.className().equals(PERSON_CLASS_NAME) ||
item.className().equals(ORGANIZATION_CLASS_NAME) ||