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

namelchev 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 9eb86031c34 IGNITE-28051 Use MessageSerializer for 
ServiceChangeBatchRequest, ServiceClusterDeploymentResultBatch (#12895)
9eb86031c34 is described below

commit 9eb86031c34c589c626d59784752247ef75fff7f
Author: Alexey Abashev <[email protected]>
AuthorDate: Tue Mar 31 15:47:53 2026 +0300

    IGNITE-28051 Use MessageSerializer for ServiceChangeBatchRequest, 
ServiceClusterDeploymentResultBatch (#12895)
---
 .../discovery/DiscoveryMessageFactory.java         | 27 ++++++++++++++--
 .../service/ServiceChangeAbstractRequest.java      | 19 +++---------
 .../service/ServiceChangeBatchRequest.java         | 18 ++++++++---
 .../service/ServiceClusterDeploymentResult.java    | 19 +++++++-----
 .../ServiceClusterDeploymentResultBatch.java       | 21 ++++++++++---
 .../service/ServiceDeploymentRequest.java          | 36 +++++++++++++++++-----
 .../service/ServiceUndeploymentRequest.java        |  8 +++--
 7 files changed, 106 insertions(+), 42 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 a61c994b7fb..5e05b7d8757 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
@@ -125,6 +125,20 @@ import 
org.apache.ignite.internal.processors.query.schema.operation.SchemaIndexC
 import 
org.apache.ignite.internal.processors.query.schema.operation.SchemaIndexCreateOperationMarshallableSerializer;
 import 
org.apache.ignite.internal.processors.query.schema.operation.SchemaIndexDropOperation;
 import 
org.apache.ignite.internal.processors.query.schema.operation.SchemaIndexDropOperationSerializer;
+import org.apache.ignite.internal.processors.service.ServiceChangeBatchRequest;
+import 
org.apache.ignite.internal.processors.service.ServiceChangeBatchRequestSerializer;
+import 
org.apache.ignite.internal.processors.service.ServiceClusterDeploymentResult;
+import 
org.apache.ignite.internal.processors.service.ServiceClusterDeploymentResultBatch;
+import 
org.apache.ignite.internal.processors.service.ServiceClusterDeploymentResultBatchSerializer;
+import 
org.apache.ignite.internal.processors.service.ServiceClusterDeploymentResultSerializer;
+import 
org.apache.ignite.internal.processors.service.ServiceDeploymentProcessId;
+import 
org.apache.ignite.internal.processors.service.ServiceDeploymentProcessIdSerializer;
+import org.apache.ignite.internal.processors.service.ServiceDeploymentRequest;
+import 
org.apache.ignite.internal.processors.service.ServiceDeploymentRequestMarshallableSerializer;
+import 
org.apache.ignite.internal.processors.service.ServiceSingleNodeDeploymentResult;
+import 
org.apache.ignite.internal.processors.service.ServiceSingleNodeDeploymentResultSerializer;
+import 
org.apache.ignite.internal.processors.service.ServiceUndeploymentRequest;
+import 
org.apache.ignite.internal.processors.service.ServiceUndeploymentRequestSerializer;
 import org.apache.ignite.internal.util.distributed.FullMessage;
 import org.apache.ignite.internal.util.distributed.FullMessageSerializer;
 import org.apache.ignite.internal.util.distributed.InitMessage;
@@ -293,6 +307,10 @@ public class DiscoveryMessageFactory implements 
MessageFactoryProvider {
 
         factory.register(86, GridCacheVersion::new, new 
GridCacheVersionSerializer());
 
+        factory.register(167, ServiceDeploymentProcessId::new, new 
ServiceDeploymentProcessIdSerializer());
+        factory.register(169, ServiceSingleNodeDeploymentResult::new, new 
ServiceSingleNodeDeploymentResultSerializer());
+        factory.register(170, ServiceClusterDeploymentResult::new, new 
ServiceClusterDeploymentResultSerializer());
+
         // DiscoveryCustomMessage
         factory.register(500, CacheStatisticsModeChangeMessage::new, new 
CacheStatisticsModeChangeMessageSerializer());
         factory.register(501, SecurityAwareCustomMessageWrapper::new,
@@ -336,7 +354,12 @@ public class DiscoveryMessageFactory implements 
MessageFactoryProvider {
             new ChangeGlobalStateMessageMarshallableSerializer(marsh, clsLdr));
         factory.register(533, ClientCacheChangeDummyDiscoveryMessage::new,
             new 
ClientCacheChangeDummyDiscoveryMessageMarshallableSerializer(marsh, clsLdr));
-        factory.register(534, DynamicCacheChangeBatch::new,
-            new DynamicCacheChangeBatchMarshallableSerializer(marsh, clsLdr));
+        factory.register(534, DynamicCacheChangeBatch::new, new 
DynamicCacheChangeBatchMarshallableSerializer(marsh, clsLdr));
+        factory.register(535, ServiceClusterDeploymentResultBatch::new,
+            new ServiceClusterDeploymentResultBatchSerializer());
+        factory.register(536, ServiceChangeBatchRequest::new, new 
ServiceChangeBatchRequestSerializer());
+        factory.register(537, ServiceDeploymentRequest::new,
+            new ServiceDeploymentRequestMarshallableSerializer(marsh, clsLdr));
+        factory.register(538, ServiceUndeploymentRequest::new, new 
ServiceUndeploymentRequestSerializer());
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeAbstractRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeAbstractRequest.java
index d083aad0126..48e26a6980e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeAbstractRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeAbstractRequest.java
@@ -17,27 +17,18 @@
 
 package org.apache.ignite.internal.processors.service;
 
-import java.io.Serializable;
+import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.lang.IgniteUuid;
-import org.jetbrains.annotations.NotNull;
+import org.apache.ignite.plugin.extensions.communication.Message;
 
 /**
  * Abstract class for service change requests.
  */
-abstract class ServiceChangeAbstractRequest implements Serializable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
+abstract class ServiceChangeAbstractRequest implements Message {
     /** Service id. */
-    protected final IgniteUuid srvcId;
-
-    /**
-     * @param srvcId Service id.
-     */
-    protected ServiceChangeAbstractRequest(@NotNull IgniteUuid srvcId) {
-        this.srvcId = srvcId;
-    }
+    @Order(0)
+    IgniteUuid srvcId;
 
     /**
      * @return Service id.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeBatchRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeBatchRequest.java
index 854bf368226..875432ccbfb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeBatchRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceChangeBatchRequest.java
@@ -19,31 +19,40 @@ package org.apache.ignite.internal.processors.service;
 
 import java.util.Collection;
 import java.util.Collections;
+import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.F;
 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.apache.ignite.plugin.extensions.communication.MessageFactory;
 import org.jetbrains.annotations.Nullable;
 
 /**
  * Service change batch request discovery message.
  */
-public class ServiceChangeBatchRequest implements DiscoveryCustomMessage {
+public class ServiceChangeBatchRequest implements DiscoveryCustomMessage, 
Message {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Unique custom message ID. */
-    private final IgniteUuid id = IgniteUuid.randomUuid();
+    @Order(0)
+    IgniteUuid id;
 
     /** Change requests. */
     @GridToStringInclude
-    private final Collection<ServiceChangeAbstractRequest> reqs;
+    @Order(1)
+    Collection<ServiceChangeAbstractRequest> reqs;
 
     /** Services deployment actions to be processed on services deployment 
process. */
     @GridToStringExclude
-    @Nullable private transient ServiceDeploymentActions 
serviceDeploymentActions;
+    @Nullable private ServiceDeploymentActions serviceDeploymentActions;
+
+    /** Default constructor for {@link MessageFactory}. */
+    public ServiceChangeBatchRequest() {
+    }
 
     /**
      * @param reqs Change requests.
@@ -51,6 +60,7 @@ public class ServiceChangeBatchRequest implements 
DiscoveryCustomMessage {
     public ServiceChangeBatchRequest(Collection<ServiceChangeAbstractRequest> 
reqs) {
         assert !F.isEmpty(reqs);
 
+        id = IgniteUuid.randomUuid();
         this.reqs = reqs;
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResult.java
index 45e2c529392..655f70dfd45 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResult.java
@@ -17,13 +17,15 @@
 
 package org.apache.ignite.internal.processors.service;
 
-import java.io.Serializable;
 import java.util.Collections;
 import java.util.Map;
 import java.util.UUID;
+import org.apache.ignite.internal.Order;
 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.apache.ignite.plugin.extensions.communication.MessageFactory;
 import org.jetbrains.annotations.NotNull;
 
 /**
@@ -31,16 +33,19 @@ import org.jetbrains.annotations.NotNull;
  * <p/>
  * Contains coint of deployed service and deployment errors across the cluster 
mapped to nodes ids.
  */
-public class ServiceClusterDeploymentResult implements Serializable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
+public class ServiceClusterDeploymentResult implements Message {
     /** Service id. */
-    private final IgniteUuid srvcId;
+    @Order(0)
+    IgniteUuid srvcId;
 
     /** Per node deployments results. */
+    @Order(1)
     @GridToStringInclude
-    private final Map<UUID, ServiceSingleNodeDeploymentResult> results;
+    Map<UUID, ServiceSingleNodeDeploymentResult> results;
+
+     /** Default constructor for {@link MessageFactory}. */
+    public ServiceClusterDeploymentResult() {
+    }
 
     /**
      * @param srvcId Service id.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResultBatch.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResultBatch.java
index 3c4f1cc785d..f947d54131e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResultBatch.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceClusterDeploymentResultBatch.java
@@ -18,11 +18,14 @@
 package org.apache.ignite.internal.processors.service;
 
 import java.util.Collection;
+import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 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.apache.ignite.plugin.extensions.communication.MessageFactory;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -31,23 +34,30 @@ import org.jetbrains.annotations.Nullable;
  * <p/>
  * Contains collection of {@link ServiceClusterDeploymentResult}.
  */
-public class ServiceClusterDeploymentResultBatch implements 
DiscoveryCustomMessage {
+public class ServiceClusterDeploymentResultBatch implements 
DiscoveryCustomMessage, Message {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Unique custom message ID. */
-    private final IgniteUuid id = IgniteUuid.randomUuid();
+    @Order(0)
+    IgniteUuid id;
 
     /** Deployment process id. */
-    private final ServiceDeploymentProcessId depId;
+    @Order(1)
+    ServiceDeploymentProcessId depId;
 
     /** Services deployments results. */
+    @Order(2)
     @GridToStringInclude
-    private Collection<ServiceClusterDeploymentResult> results;
+    Collection<ServiceClusterDeploymentResult> results;
 
     /** Services deployment actions to be processed on services deployment 
process. */
     @GridToStringExclude
-    @Nullable private transient ServiceDeploymentActions 
serviceDeploymentActions;
+    @Nullable private ServiceDeploymentActions serviceDeploymentActions;
+
+    /** Default constructor for {@link MessageFactory}. */
+    public ServiceClusterDeploymentResultBatch() {
+    }
 
     /**
      * @param depId Deployment process id.
@@ -55,6 +65,7 @@ public class ServiceClusterDeploymentResultBatch implements 
DiscoveryCustomMessa
      */
     public ServiceClusterDeploymentResultBatch(@NotNull 
ServiceDeploymentProcessId depId,
         @NotNull Collection<ServiceClusterDeploymentResult> results) {
+        this.id = IgniteUuid.randomUuid();
         this.depId = depId;
         this.results = results;
     }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceDeploymentRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceDeploymentRequest.java
index ba7152ed187..4d1813477ad 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceDeploymentRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceDeploymentRequest.java
@@ -17,27 +17,37 @@
 
 package org.apache.ignite.internal.processors.service;
 
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteUuid;
+import org.apache.ignite.marshaller.Marshaller;
+import org.apache.ignite.plugin.extensions.communication.MarshallableMessage;
+import org.apache.ignite.plugin.extensions.communication.MessageFactory;
 import org.jetbrains.annotations.NotNull;
 
 /**
  * Service deployment request.
  */
-public class ServiceDeploymentRequest extends ServiceChangeAbstractRequest {
-    /** */
-    private static final long serialVersionUID = 0L;
-
+public class ServiceDeploymentRequest extends ServiceChangeAbstractRequest 
implements MarshallableMessage {
     /** Service configuration. */
-    private final LazyServiceConfiguration cfg;
+    private LazyServiceConfiguration cfg;
+
+    /** JDK serialization for {@link #cfg}. */
+    @Order(0)
+    byte[] cfgBytes;
+
+    /** Default constructor for {@link MessageFactory}. */
+    public ServiceDeploymentRequest() {
+    }
 
     /**
      * @param srvcId Service id.
      * @param cfg Service configuration.
      */
     public ServiceDeploymentRequest(@NotNull IgniteUuid srvcId, @NotNull 
LazyServiceConfiguration cfg) {
-        super(srvcId);
-
+        this.srvcId = srvcId;
         this.cfg = cfg;
     }
 
@@ -48,6 +58,18 @@ public class ServiceDeploymentRequest extends 
ServiceChangeAbstractRequest {
         return cfg;
     }
 
+    /** {@inheritDoc} */
+    @Override public void prepareMarshal(Marshaller marsh) throws 
IgniteCheckedException {
+        if (cfg != null)
+            cfgBytes = U.marshal(marsh, cfg);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void finishUnmarshal(Marshaller marsh, ClassLoader 
clsLdr) throws IgniteCheckedException {
+        if (cfgBytes != null)
+            cfg = U.unmarshal(marsh, cfgBytes, clsLdr);
+    }
+
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(ServiceDeploymentRequest.class, this);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceUndeploymentRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceUndeploymentRequest.java
index 54823628b73..5a5911c6533 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceUndeploymentRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceUndeploymentRequest.java
@@ -19,20 +19,22 @@ package org.apache.ignite.internal.processors.service;
 
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.lang.IgniteUuid;
+import org.apache.ignite.plugin.extensions.communication.MessageFactory;
 import org.jetbrains.annotations.NotNull;
 
 /**
  * Service undeployment request.
  */
 public class ServiceUndeploymentRequest extends ServiceChangeAbstractRequest {
-    /** */
-    private static final long serialVersionUID = 0L;
+    /** Default constructor for {@link MessageFactory}. */
+    public ServiceUndeploymentRequest() {
+    }
 
     /**
      * @param srvcId Service id.
      */
     public ServiceUndeploymentRequest(@NotNull IgniteUuid srvcId) {
-        super(srvcId);
+        this.srvcId = srvcId;
     }
 
     /** {@inheritDoc} */

Reply via email to