From 9fa07781d28ff22e2cc9c828776e231b3d547826 Mon Sep 17 00:00:00 2001 From: Alex Abashev Date: Wed, 18 Feb 2026 20:34:39 +0300 Subject: [PATCH] IGNITE-27901 Migrate MetadataUpdateAcceptedMessage --- .../discovery/DiscoveryMessageFactory.java | 7 ++++ .../binary/MetadataUpdateAcceptedMessage.java | 32 +++++++++++++++++-- 2 files changed, 36 insertions(+), 3 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 753f00569c5cf..01565cbefdc4f 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 @@ -20,6 +20,7 @@ import org.apache.ignite.internal.codegen.DiscoveryDataPacketSerializer; import org.apache.ignite.internal.codegen.InetAddressMessageSerializer; import org.apache.ignite.internal.codegen.InetSocketAddressMessageSerializer; +import org.apache.ignite.internal.codegen.MetadataUpdateAcceptedMessageSerializer; import org.apache.ignite.internal.codegen.NodeSpecificDataSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryAuthFailedMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryCacheMetricsMessageSerializer; @@ -45,6 +46,8 @@ import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryRingLatencyCheckMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryStatusCheckMessageSerializer; +import org.apache.ignite.internal.processors.cache.CacheStatisticsClearMessage; +import org.apache.ignite.internal.processors.cache.binary.MetadataUpdateAcceptedMessage; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; @@ -110,5 +113,9 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)17, TcpDiscoveryNodeFailedMessage::new, new TcpDiscoveryNodeFailedMessageSerializer()); factory.register((short)18, TcpDiscoveryStatusCheckMessage::new, new TcpDiscoveryStatusCheckMessageSerializer()); factory.register((short)19, TcpDiscoveryNodeAddFinishedMessage::new, new TcpDiscoveryNodeAddFinishedMessageSerializer()); + + // DiscoveryCustomMessages (500+) + factory.register(MetadataUpdateAcceptedMessage.DIRECT_TYPE, MetadataUpdateAcceptedMessage::new, + new MetadataUpdateAcceptedMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/MetadataUpdateAcceptedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/MetadataUpdateAcceptedMessage.java index 0416746a04b68..f0317cefba322 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/MetadataUpdateAcceptedMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/MetadataUpdateAcceptedMessage.java @@ -16,12 +16,14 @@ */ package org.apache.ignite.internal.processors.cache.binary; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; 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; /** @@ -30,22 +32,31 @@ * As discovery messaging doesn't guarantee that message makes only one pass across the cluster * MetadataUpdateAcceptedMessage enables to mark it as duplicated so other nodes won't process it but skip. */ -public class MetadataUpdateAcceptedMessage implements DiscoveryCustomMessage { +public class MetadataUpdateAcceptedMessage implements DiscoveryCustomMessage, Message { /** */ private static final long serialVersionUID = 0L; + /** */ + public static final short DIRECT_TYPE = 501; + /** */ private final IgniteUuid id = IgniteUuid.randomUuid(); /** */ - private final int typeId; + @Order(0) + private int typeId; /** */ - private final int acceptedVer; + @Order(1) + private int acceptedVer; /** */ + @Order(2) private boolean duplicated; + /** */ + public MetadataUpdateAcceptedMessage() {} + /** * @param typeId Type id. * @param acceptedVer Accepted version. @@ -81,11 +92,21 @@ int acceptedVersion() { return acceptedVer; } + /** */ + public void acceptedVer(int acceptedVer) { + this.acceptedVer = acceptedVer; + } + /** */ public int typeId() { return typeId; } + /** */ + public void typeId(int typeId) { + this.typeId = typeId; + } + /** */ public boolean duplicated() { return duplicated; @@ -98,6 +119,11 @@ public void duplicated(boolean duplicated) { this.duplicated = duplicated; } + /** {@inheritDoc} */ + @Override public short directType() { + return DIRECT_TYPE; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(MetadataUpdateAcceptedMessage.class, this);