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 <[email protected]>
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) ||