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 c96903fb6ac IGNITE-27778 Refactor of DiscoverySpiCustomMessage (#12919)
c96903fb6ac is described below

commit c96903fb6ac687290b31a8acfff67836c808400e
Author: Nikita Amelchev <[email protected]>
AuthorDate: Wed Mar 25 08:42:09 2026 +0300

    IGNITE-27778 Refactor of DiscoverySpiCustomMessage (#12919)
---
 .../managers/discovery/DiscoveryCustomMessage.java | 30 ++-------------
 .../managers/discovery/GridDiscoveryManager.java   |  3 +-
 .../SecurityAwareCustomMessageWrapper.java         |  6 +--
 .../wal/reader/StandaloneNoopDiscoverySpi.java     |  4 +-
 .../apache/ignite/internal/util/IgniteUtils.java   |  5 ++-
 .../spi/discovery/DiscoveryNotification.java       |  7 ++--
 .../apache/ignite/spi/discovery/DiscoverySpi.java  |  3 +-
 .../spi/discovery/DiscoverySpiCustomMessage.java   | 44 ++++++++++++++--------
 .../DiscoverySpiMutableCustomMessageSupport.java   |  5 +--
 .../discovery/isolated/IsolatedDiscoverySpi.java   |  6 +--
 .../ignite/spi/discovery/tcp/ClientImpl.java       | 10 ++---
 .../ignite/spi/discovery/tcp/ServerImpl.java       | 12 +++---
 .../ignite/spi/discovery/tcp/TcpDiscoveryImpl.java |  4 +-
 .../ignite/spi/discovery/tcp/TcpDiscoverySpi.java  |  4 +-
 .../messages/TcpDiscoveryCustomEventMessage.java   | 10 ++---
 .../TcpDiscoveryServerOnlyCustomEventMessage.java  |  4 +-
 .../ignite/internal/DiscoverySpiTestListener.java  |  9 +++--
 .../internal/binary/BinaryMarshallerSelfTest.java  |  6 +--
 .../internal/client/thin/ServiceAwarenessTest.java |  5 ++-
 .../IgniteDiscoverySpiInternalListener.java        |  3 +-
 .../GridBinaryCacheEntryMemorySizeSelfTest.java    |  4 +-
 .../db/IgniteSequentialNodeCrashRecoveryTest.java  |  2 +-
 .../snapshot/AbstractSnapshotSelfTest.java         |  5 ++-
 .../IgniteNoCustomEventsOnNodeStart.java           |  4 +-
 .../NodeSecurityContextPropagationTest.java        |  3 +-
 .../service/ServiceConcurrentUndeployTest.java     |  4 +-
 .../ServiceDeploymentProcessAbstractTest.java      |  4 +-
 .../discovery/DiscoverySpiDataExchangeTest.java    |  3 +-
 .../spi/discovery/tcp/TestTcpDiscoverySpi.java     |  4 +-
 .../testframework/junits/GridAbstractTest.java     |  4 +-
 .../junits/GridTestBinaryMarshaller.java           |  4 +-
 .../cache/BinaryTypeRegistrationTest.java          |  4 +-
 .../cache/CacheRegisterMetadataLocallyTest.java    |  3 +-
 .../internal/processors/query/KillQueryTest.java   |  3 +-
 .../processors/query/RunningQueriesTest.java       |  3 +-
 .../spi/discovery/zk/ZookeeperDiscoverySpi.java    |  4 +-
 .../zk/internal/DiscoveryMessageParser.java        |  8 ++--
 .../ZkCommunicationErrorResolveFinishMessage.java  | 10 +----
 .../ZkCommunicationErrorResolveStartMessage.java   | 10 +----
 .../zk/internal/ZkDiscoveryCustomEventData.java    |  6 +--
 .../zk/internal/ZkForceNodeFailMessage.java        | 10 +----
 .../discovery/zk/internal/ZkNoServersMessage.java  | 10 +----
 .../zk/internal/ZookeeperDiscoveryImpl.java        | 18 ++++-----
 .../discovery/zk/TestZookeeperDiscoverySpi.java    |  4 +-
 44 files changed, 142 insertions(+), 172 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryCustomMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryCustomMessage.java
index b82a317515e..6ac15e57702 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryCustomMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryCustomMessage.java
@@ -17,14 +17,12 @@
 
 package org.apache.ignite.internal.managers.discovery;
 
-import java.io.Serializable;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
 import org.apache.ignite.lang.IgniteUuid;
-import org.apache.ignite.spi.discovery.DiscoverySpiMutableCustomMessageSupport;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeAddFinishedMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeAddedMessage;
-import org.jetbrains.annotations.Nullable;
 
 /**
  * <b>DiscoveryCustomMessage</b> messages are handled by discovery protocol 
which provides some guarantees around them.
@@ -75,33 +73,11 @@ import org.jetbrains.annotations.Nullable;
  *     </li>
  * </ol>
  */
-public interface DiscoveryCustomMessage extends Serializable {
+public interface DiscoveryCustomMessage extends DiscoverySpiCustomMessage {
     /**
      * @return Unique custom message ID.
      */
-    public IgniteUuid id();
-
-    /**
-     * Called when custom message has been handled by all nodes.
-     *
-     * @return Ack message or {@code null} if ack is not required.
-     */
-    @Nullable public DiscoveryCustomMessage ackMessage();
-
-    /**
-     * @return {@code True} if message can be modified during listener 
notification. Changes will be sent to next nodes.
-     * @see DiscoverySpiMutableCustomMessageSupport
-     */
-    default boolean isMutable() {
-        return false;
-    }
-
-    /**
-     * @return {@code True} if message should not be sent to others nodes 
after it was processed on coordinator.
-     */
-    public default boolean stopProcess() {
-        return false;
-    }
+    IgniteUuid id();
 
     /**
      * Creates new discovery cache if message caused topology version change.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index daed2693367..8c5564616d4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -133,6 +133,7 @@ import 
org.apache.ignite.spi.discovery.DiscoveryDataBag.JoiningNodeDiscoveryData
 import org.apache.ignite.spi.discovery.DiscoveryMetricsProvider;
 import org.apache.ignite.spi.discovery.DiscoveryNotification;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiDataExchange;
 import org.apache.ignite.spi.discovery.DiscoverySpiHistorySupport;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
@@ -932,7 +933,7 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<DiscoverySpi> {
 
                 /** */
                 @Override public void run() {
-                    DiscoveryCustomMessage customMsg = 
notification.customMessage();
+                    DiscoverySpiCustomMessage customMsg = 
notification.customMessage();
 
                     if (customMsg instanceof 
SecurityAwareCustomMessageWrapper) {
                         UUID secSubjId = 
((SecurityAwareCustomMessageWrapper)customMsg).securitySubjectId();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/SecurityAwareCustomMessageWrapper.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/SecurityAwareCustomMessageWrapper.java
index 97d798b66b6..6ec97155d61 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/SecurityAwareCustomMessageWrapper.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/SecurityAwareCustomMessageWrapper.java
@@ -29,7 +29,7 @@ import 
org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.jetbrains.annotations.Nullable;
 
 /** Custom message wrapper with ID of security subject that initiated the 
current message. */
-public class SecurityAwareCustomMessageWrapper extends 
DiscoverySpiCustomMessage implements MarshallableMessage {
+public class SecurityAwareCustomMessageWrapper implements 
DiscoverySpiCustomMessage, MarshallableMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -87,8 +87,8 @@ public class SecurityAwareCustomMessageWrapper extends 
DiscoverySpiCustomMessage
     }
 
     /** {@inheritDoc} */
-    @Override public @Nullable DiscoveryCustomMessage ackMessage() {
-        DiscoveryCustomMessage ack = delegate().ackMessage();
+    @Override public @Nullable DiscoverySpiCustomMessage ackMessage() {
+        DiscoveryCustomMessage ack = 
(DiscoveryCustomMessage)delegate().ackMessage();
 
         return ack == null ? null : new SecurityAwareCustomMessageWrapper(ack, 
secSubjId);
     }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneNoopDiscoverySpi.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneNoopDiscoverySpi.java
index 3dd6d0b5f45..3946c4fd2a8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneNoopDiscoverySpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneNoopDiscoverySpi.java
@@ -23,13 +23,13 @@ import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.lang.IgniteProductVersion;
 import org.apache.ignite.spi.IgniteSpiAdapter;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.IgniteSpiNoop;
 import org.apache.ignite.spi.discovery.DiscoveryMetricsProvider;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiDataExchange;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
 import org.apache.ignite.spi.discovery.DiscoverySpiNodeAuthenticator;
@@ -101,7 +101,7 @@ public class StandaloneNoopDiscoverySpi extends 
IgniteSpiAdapter implements Disc
     }
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage msg) throws 
IgniteException {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
 
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 41783b4d815..a1f3bfd1479 100755
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -230,6 +230,7 @@ import org.apache.ignite.plugin.PluginProvider;
 import org.apache.ignite.spi.IgniteSpi;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiOrderSupport;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.thread.IgniteThread;
@@ -8296,8 +8297,8 @@ public abstract class IgniteUtils extends CommonUtils {
      *
      * @param msg Message.
      */
-    public static DiscoveryCustomMessage 
unwrapCustomMessage(DiscoveryCustomMessage msg) {
+    public static DiscoveryCustomMessage 
unwrapCustomMessage(DiscoverySpiCustomMessage msg) {
         return msg instanceof SecurityAwareCustomMessageWrapper ?
-            ((SecurityAwareCustomMessageWrapper)msg).delegate() : msg;
+            ((SecurityAwareCustomMessageWrapper)msg).delegate() : 
(DiscoveryCustomMessage)msg;
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNotification.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNotification.java
index 194b5b3e781..8e9821eb7e3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNotification.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNotification.java
@@ -19,7 +19,6 @@ package org.apache.ignite.spi.discovery;
 import java.util.Collection;
 import java.util.NavigableMap;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.processors.tracing.messages.SpanContainer;
 import org.jetbrains.annotations.Nullable;
 
@@ -43,7 +42,7 @@ public class DiscoveryNotification {
     private @Nullable NavigableMap<Long, Collection<ClusterNode>> topHist;
 
     /** Custom message. */
-    private @Nullable DiscoveryCustomMessage customMsg;
+    private @Nullable DiscoverySpiCustomMessage customMsg;
 
     /** Span container. */
     private SpanContainer spanContainer;
@@ -76,7 +75,7 @@ public class DiscoveryNotification {
         ClusterNode node,
         Collection<ClusterNode> topSnapshot,
         @Nullable NavigableMap<Long, Collection<ClusterNode>> topHist,
-        @Nullable DiscoveryCustomMessage customMsg,
+        @Nullable DiscoverySpiCustomMessage customMsg,
         SpanContainer spanContainer
     ) {
         this.eventType = eventType;
@@ -126,7 +125,7 @@ public class DiscoveryNotification {
     /**
      * @return Custom message.
      */
-    public DiscoveryCustomMessage customMessage() {
+    public DiscoverySpiCustomMessage customMessage() {
         return customMsg;
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java
index 3d51a2fc3bf..545e1a043e7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java
@@ -23,7 +23,6 @@ import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.lang.IgniteProductVersion;
 import org.apache.ignite.spi.IgniteSpi;
 import org.apache.ignite.spi.IgniteSpiException;
@@ -154,7 +153,7 @@ public interface DiscoverySpi extends IgniteSpi {
      * @param msg Custom message.
      * @throws IgniteException if failed to sent the event message.
      */
-    public void sendCustomEvent(DiscoveryCustomMessage msg) throws 
IgniteException;
+    public void sendCustomEvent(DiscoverySpiCustomMessage msg) throws 
IgniteException;
 
     /**
      * Initiates failure of provided node.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiCustomMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiCustomMessage.java
index 661234b5a7e..2cae2cfa9fc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiCustomMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiCustomMessage.java
@@ -17,28 +17,40 @@
 
 package org.apache.ignite.spi.discovery;
 
-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.lang.IgniteUuid;
+import java.io.Serializable;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Message to send across ring.
  *
- * @see GridDiscoveryManager#sendCustomEvent(DiscoveryCustomMessage)
- * TODO: Should be removed in 
https://issues.apache.org/jira/browse/IGNITE-27778
+ * @see DiscoverySpi#sendCustomEvent
  */
-@Deprecated(forRemoval = true)
-public abstract class DiscoverySpiCustomMessage implements 
DiscoveryCustomMessage {
-    /** {@inheritDoc} */
-    @Override public IgniteUuid id() {
-        return null;
+public interface DiscoverySpiCustomMessage extends Serializable {
+    /**
+     * Called when custom message has been handled by all nodes.
+     *
+     * @return Ack message or {@code null} if ack is not required.
+     */
+    @Nullable DiscoverySpiCustomMessage ackMessage();
+
+    /**
+     * @return {@code True} if message can be modified during listener 
notification. Changes will be sent to next nodes.
+     * @see DiscoverySpiMutableCustomMessageSupport
+     */
+    default boolean isMutable() {
+        return false;
     }
 
-    /** {@inheritDoc} */
-    @Override public DiscoCache createDiscoCache(GridDiscoveryManager mgr, 
AffinityTopologyVersion topVer,
-        DiscoCache discoCache) {
-        return null;
+    /**
+     * Called on discovery coordinator node after listener is notified. If 
returns {@code true}
+     * then message is not passed to others nodes, if after this method {@link 
#ackMessage()} returns non-null ack
+     * message, it is sent to all nodes.
+     *
+     * Note: this method is used then and only then the zookeeper discovery is 
configured.
+     *
+     * @return {@code True} if message should not be sent to all nodes.
+     */
+    default boolean stopProcess() {
+        return false;
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiMutableCustomMessageSupport.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiMutableCustomMessageSupport.java
index ccd2fe1978b..e7952682cb7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiMutableCustomMessageSupport.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiMutableCustomMessageSupport.java
@@ -23,11 +23,10 @@ import java.lang.annotation.Inherited;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 
 /**
  * This annotation is for all implementations of {@link DiscoverySpi} that 
support
- * topology mutable {@link DiscoveryCustomMessage}s.
+ * topology mutable {@link DiscoverySpiCustomMessage}s.
  */
 @Documented
 @Inherited
@@ -35,7 +34,7 @@ import 
org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 @Target({ElementType.TYPE})
 public @interface DiscoverySpiMutableCustomMessageSupport {
     /**
-     * @return Whether or not target SPI supports mutable {@link 
DiscoveryCustomMessage}s.
+     * @return Whether or not target SPI supports mutable {@link 
DiscoverySpiCustomMessage}s.
      */
     public boolean value();
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/isolated/IsolatedDiscoverySpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/isolated/IsolatedDiscoverySpi.java
index 9e00dd311a9..1e0d02019fb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/isolated/IsolatedDiscoverySpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/isolated/IsolatedDiscoverySpi.java
@@ -30,7 +30,6 @@ import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteKernal;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi;
 import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.lang.IgniteProductVersion;
@@ -42,6 +41,7 @@ import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.IgniteSpiMultipleInstancesSupport;
 import org.apache.ignite.spi.discovery.DiscoveryMetricsProvider;
 import org.apache.ignite.spi.discovery.DiscoveryNotification;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiDataExchange;
 import org.apache.ignite.spi.discovery.DiscoverySpiHistorySupport;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
@@ -159,7 +159,7 @@ public class IsolatedDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDisc
     }
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage msg) throws 
IgniteException {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
         exec.execute(() -> {
             IgniteFuture<?> fut = lsnr.onDiscovery(new DiscoveryNotification(
                 EVT_DISCOVERY_CUSTOM_EVT,
@@ -172,7 +172,7 @@ public class IsolatedDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDisc
 
             // Acknowledge message must be send after initial message 
processed.
             fut.listen((f) -> {
-                DiscoveryCustomMessage ack = msg.ackMessage();
+                DiscoverySpiCustomMessage ack = msg.ackMessage();
 
                 if (ack != null) {
                     exec.execute(() -> lsnr.onDiscovery(new 
DiscoveryNotification(
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
index 4ee318ba2f3..02f56983d41 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
@@ -65,7 +65,6 @@ import 
org.apache.ignite.internal.IgniteClientDisconnectedCheckedException;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.IgniteNodeAttributes;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.managers.discovery.DiscoveryServerOnlyCustomMessage;
 import org.apache.ignite.internal.processors.tracing.Span;
 import org.apache.ignite.internal.processors.tracing.SpanTags;
@@ -90,6 +89,7 @@ import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.IgniteSpiOperationTimeoutHelper;
 import org.apache.ignite.spi.IgniteSpiThread;
 import org.apache.ignite.spi.discovery.DiscoveryNotification;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
 import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket;
 import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
@@ -491,7 +491,7 @@ class ClientImpl extends TcpDiscoveryImpl {
     }
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage evt) {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage evt) {
         State state = this.state;
 
         if (state == DISCONNECTED)
@@ -503,7 +503,7 @@ class ClientImpl extends TcpDiscoveryImpl {
         try {
             TcpDiscoveryCustomEventMessage msg;
 
-            DiscoveryCustomMessage customMsg = U.unwrapCustomMessage(evt);
+            DiscoverySpiCustomMessage customMsg = U.unwrapCustomMessage(evt);
 
             if (customMsg instanceof DiscoveryServerOnlyCustomMessage)
                 msg = new 
TcpDiscoveryServerOnlyCustomEventMessage(getLocalNodeId(), evt);
@@ -2598,7 +2598,7 @@ class ClientImpl extends TcpDiscoveryImpl {
                         try {
                             msg.finishUnmarshal(spi.marshaller(), 
U.resolveClassLoader(spi.ignite().configuration()));
 
-                            DiscoveryCustomMessage msgObj = msg.message();
+                            DiscoverySpiCustomMessage msgObj = msg.message();
 
                             notifyDiscovery(
                                 EVT_DISCOVERY_CUSTOM_EVT, topVer, node, 
allVisibleNodes(), msgObj, msg.spanContainer());
@@ -2693,7 +2693,7 @@ class ClientImpl extends TcpDiscoveryImpl {
             long topVer,
             ClusterNode node,
             Collection<ClusterNode> top,
-            @Nullable DiscoveryCustomMessage customMsg,
+            @Nullable DiscoverySpiCustomMessage customMsg,
             SpanContainer spanContainer
         ) {
             DiscoverySpiListener lsnr = spi.lsnr;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index f8d28cc912f..f5495299899 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -78,7 +78,6 @@ import 
org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.IgnitionEx;
 import org.apache.ignite.internal.events.DiscoveryCustomEvent;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.managers.discovery.DiscoveryServerOnlyCustomMessage;
 import 
org.apache.ignite.internal.processors.configuration.distributed.DistributedBooleanProperty;
 import org.apache.ignite.internal.processors.failure.FailureProcessor;
@@ -122,6 +121,7 @@ import 
org.apache.ignite.spi.IgniteSpiOperationTimeoutHelper;
 import org.apache.ignite.spi.IgniteSpiThread;
 import org.apache.ignite.spi.discovery.DiscoveryDataBag;
 import org.apache.ignite.spi.discovery.DiscoveryNotification;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
 import org.apache.ignite.spi.discovery.IgniteDiscoveryThread;
 import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket;
@@ -1017,11 +1017,11 @@ class ServerImpl extends TcpDiscoveryImpl {
     }
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage evt) {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage evt) {
         try {
             TcpDiscoveryCustomEventMessage msg;
 
-            DiscoveryCustomMessage customMsg = U.unwrapCustomMessage(evt);
+            DiscoverySpiCustomMessage customMsg = U.unwrapCustomMessage(evt);
 
             if (customMsg instanceof DiscoveryServerOnlyCustomMessage)
                 msg = new 
TcpDiscoveryServerOnlyCustomEventMessage(getLocalNodeId(), evt);
@@ -6080,7 +6080,7 @@ class ServerImpl extends TcpDiscoveryImpl {
                 else {
                     addMessage(new 
TcpDiscoveryDiscardMessage(getLocalNodeId(), msg.id(), true));
 
-                    DiscoveryCustomMessage msgObj = null;
+                    DiscoverySpiCustomMessage msgObj = null;
 
                     try {
                         msg.finishUnmarshal(spi.marshaller(), 
U.resolveClassLoader(spi.ignite().configuration()));
@@ -6092,7 +6092,7 @@ class ServerImpl extends TcpDiscoveryImpl {
                     }
 
                     if (msgObj != null) {
-                        DiscoveryCustomMessage nextMsg = msgObj.ackMessage();
+                        DiscoverySpiCustomMessage nextMsg = 
msgObj.ackMessage();
 
                         if (nextMsg != null) {
                             try {
@@ -6271,7 +6271,7 @@ class ServerImpl extends TcpDiscoveryImpl {
                 if (node == null)
                     return;
 
-                DiscoveryCustomMessage msgObj;
+                DiscoverySpiCustomMessage msgObj;
 
                 try {
                     msg.finishUnmarshal(spi.marshaller(), 
U.resolveClassLoader(spi.ignite().configuration()));
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
index aa7dc4a6322..e115a3cca03 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
@@ -37,7 +37,6 @@ import org.apache.ignite.cluster.ClusterMetrics;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.ClusterMetricsSnapshot;
 import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.processors.cache.CacheMetricsSnapshot;
 import org.apache.ignite.internal.processors.cluster.CacheMetricsMessage;
 import org.apache.ignite.internal.processors.cluster.NodeMetricsMessage;
@@ -50,6 +49,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.IgniteSpiContext;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.IgniteSpiThread;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientNodesMetricsMessage;
@@ -281,7 +281,7 @@ abstract class TcpDiscoveryImpl {
      * @param msg Message.
      * @throws IgniteException If failed.
      */
-    public abstract void sendCustomEvent(DiscoveryCustomMessage msg) throws 
IgniteException;
+    public abstract void sendCustomEvent(DiscoverySpiCustomMessage msg) throws 
IgniteException;
 
     /**
      * @param nodeId Node id.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index a4b7cb80c94..c8cd42dcc3d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -57,7 +57,6 @@ import org.apache.ignite.failure.FailureContext;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import 
org.apache.ignite.internal.managers.communication.IgniteMessageFactoryImpl;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi;
 import org.apache.ignite.internal.processors.failure.FailureProcessor;
@@ -92,6 +91,7 @@ import org.apache.ignite.spi.IgniteSpiVersionCheckException;
 import org.apache.ignite.spi.discovery.DiscoveryDataBag;
 import org.apache.ignite.spi.discovery.DiscoveryMetricsProvider;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiDataExchange;
 import org.apache.ignite.spi.discovery.DiscoverySpiHistorySupport;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
@@ -537,7 +537,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDiscovery
     }
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage msg) throws 
IgniteException {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
         impl.sendCustomEvent(msg);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
index 5ac1523f0a0..4f0088562fb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCustomEventMessage.java
@@ -21,13 +21,13 @@ import java.util.Objects;
 import java.util.UUID;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.internal.Order;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import 
org.apache.ignite.internal.managers.discovery.IncompleteDeserializationException;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.marshaller.Marshaller;
 import org.apache.ignite.plugin.extensions.communication.Message;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -40,7 +40,7 @@ public class TcpDiscoveryCustomEventMessage extends 
TcpDiscoveryAbstractTraceabl
     private static final long serialVersionUID = 0L;
 
     /** */
-    private volatile DiscoveryCustomMessage msg;
+    private volatile DiscoverySpiCustomMessage msg;
 
     /** Serialized message bytes. */
     // TODO: Should be removed in 
https://issues.apache.org/jira/browse/IGNITE-27627
@@ -63,7 +63,7 @@ public class TcpDiscoveryCustomEventMessage extends 
TcpDiscoveryAbstractTraceabl
      * @param creatorNodeId Creator node id.
      * @param msg Message.
      */
-    public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, 
DiscoveryCustomMessage msg) {
+    public TcpDiscoveryCustomEventMessage(UUID creatorNodeId, 
DiscoverySpiCustomMessage msg) {
         super(creatorNodeId);
 
         this.msg = msg;
@@ -91,7 +91,7 @@ public class TcpDiscoveryCustomEventMessage extends 
TcpDiscoveryAbstractTraceabl
     /**
      * @return Original message.
      */
-    public DiscoveryCustomMessage message() {
+    public DiscoverySpiCustomMessage message() {
         return msg;
     }
 
@@ -126,7 +126,7 @@ public class TcpDiscoveryCustomEventMessage extends 
TcpDiscoveryAbstractTraceabl
             return;
 
         if (serMsg != null)
-            msg = (DiscoveryCustomMessage)serMsg;
+            msg = (DiscoverySpiCustomMessage)serMsg;
         else {
             try {
                 if (msgBytes != null)
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryServerOnlyCustomEventMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryServerOnlyCustomEventMessage.java
index ece2d61f806..2b37f0027ad 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryServerOnlyCustomEventMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryServerOnlyCustomEventMessage.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.spi.discovery.tcp.messages;
 
 import java.util.UUID;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.jetbrains.annotations.NotNull;
 
 /**
@@ -40,7 +40,7 @@ public class TcpDiscoveryServerOnlyCustomEventMessage extends 
TcpDiscoveryCustom
      * @param creatorNodeId Creator node id.
      * @param msg Message.
      */
-    public TcpDiscoveryServerOnlyCustomEventMessage(UUID creatorNodeId, 
@NotNull DiscoveryCustomMessage msg) {
+    public TcpDiscoveryServerOnlyCustomEventMessage(UUID creatorNodeId, 
@NotNull DiscoverySpiCustomMessage msg) {
         super(creatorNodeId, msg);
     }
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiTestListener.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiTestListener.java
index 465f7f78d47..9e947fe8eed 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiTestListener.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiTestListener.java
@@ -30,6 +30,7 @@ import 
org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpiInternalListener;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 
 /**
  * Test callback for discovery SPI.
@@ -50,7 +51,7 @@ public class DiscoverySpiTestListener implements 
IgniteDiscoverySpiInternalListe
     private final Object mux = new Object();
 
     /** */
-    private List<DiscoveryCustomMessage> blockedMsgs = new ArrayList<>();
+    private List<DiscoverySpiCustomMessage> blockedMsgs = new ArrayList<>();
 
     /** */
     private volatile DiscoverySpi spi;
@@ -119,7 +120,7 @@ public class DiscoverySpiTestListener implements 
IgniteDiscoverySpiInternalListe
     }
 
     /** {@inheritDoc} */
-    @Override public boolean beforeSendCustomEvent(DiscoverySpi spi, 
IgniteLogger log, DiscoveryCustomMessage msg) {
+    @Override public boolean beforeSendCustomEvent(DiscoverySpi spi, 
IgniteLogger log, DiscoverySpiCustomMessage msg) {
         this.spi = spi;
         this.log = log;
 
@@ -174,7 +175,7 @@ public class DiscoverySpiTestListener implements 
IgniteDiscoverySpiInternalListe
         if (spi == null)
             return;
 
-        List<DiscoveryCustomMessage> msgs;
+        List<DiscoverySpiCustomMessage> msgs;
 
         synchronized (this) {
             msgs = new ArrayList<>(blockedMsgs);
@@ -184,7 +185,7 @@ public class DiscoverySpiTestListener implements 
IgniteDiscoverySpiInternalListe
             blockedMsgs.clear();
         }
 
-        for (DiscoveryCustomMessage msg : msgs) {
+        for (DiscoverySpiCustomMessage msg : msgs) {
             log.info("Resend blocked message: " + msg);
 
             spi.sendCustomEvent(msg);
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
index d1e16d62729..6a76831a79b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
@@ -85,7 +85,6 @@ import 
org.apache.ignite.internal.binary.streams.BinaryInputStream;
 import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
 import org.apache.ignite.internal.binary.streams.BinaryStreamsTestUtils;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
 import org.apache.ignite.internal.managers.systemview.GridSystemViewManager;
 import org.apache.ignite.internal.managers.systemview.JmxSystemViewExporterSpi;
@@ -101,6 +100,7 @@ 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.MarshallerContextTestImpl;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.GridTestKernalContext;
@@ -4159,7 +4159,7 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
         iCfg.setBinaryConfiguration(bCfg);
         iCfg.setClientMode(false);
         iCfg.setDiscoverySpi(new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 //No-op.
             }
         });
@@ -4217,7 +4217,7 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
         iCfg.setBinaryConfiguration(bCfg);
         iCfg.setClientMode(false);
         iCfg.setDiscoverySpi(new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 //No-op.
             }
         });
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/client/thin/ServiceAwarenessTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/client/thin/ServiceAwarenessTest.java
index 5943b5e2c72..765ec6d5216 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/client/thin/ServiceAwarenessTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/client/thin/ServiceAwarenessTest.java
@@ -59,6 +59,7 @@ import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.services.ServiceConfiguration;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.testframework.ListeningTestLogger;
 import org.apache.ignite.testframework.junits.logger.GridTestLog4jLogger;
@@ -651,9 +652,9 @@ public class ServiceAwarenessTest extends 
AbstractThinClientTest {
         private final List<DiscoveryCustomMessage> blocked = new 
CopyOnWriteArrayList<>();
 
         /** {@inheritDoc} */
-        @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+        @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
             if (toBlock.stream().anyMatch(mt -> 
mt.isAssignableFrom(U.unwrapCustomMessage(msg).getClass()))) {
-                blocked.add(msg);
+                blocked.add((DiscoveryCustomMessage)msg);
 
                 return;
             }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteDiscoverySpiInternalListener.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteDiscoverySpiInternalListener.java
index 3d0a267a2ff..6b25e9ff5d9 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteDiscoverySpiInternalListener.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteDiscoverySpiInternalListener.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.managers.discovery;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 
 /**
  * For TESTING only.
@@ -45,5 +46,5 @@ public interface IgniteDiscoverySpiInternalListener {
      * @param msg Custom message.
      * @return {@code False} to cancel event send.
      */
-    public boolean beforeSendCustomEvent(DiscoverySpi spi, IgniteLogger log, 
DiscoveryCustomMessage msg);
+    public boolean beforeSendCustomEvent(DiscoverySpi spi, IgniteLogger log, 
DiscoverySpiCustomMessage msg);
 }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridBinaryCacheEntryMemorySizeSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridBinaryCacheEntryMemorySizeSelfTest.java
index f359db9fc7a..15910a33d19 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridBinaryCacheEntryMemorySizeSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridBinaryCacheEntryMemorySizeSelfTest.java
@@ -21,7 +21,6 @@ import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
 import org.apache.ignite.internal.managers.systemview.GridSystemViewManager;
 import org.apache.ignite.internal.managers.systemview.JmxSystemViewExporterSpi;
@@ -29,6 +28,7 @@ import 
org.apache.ignite.internal.processors.cache.GridCacheEntryMemorySizeSelfT
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.marshaller.Marshaller;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.systemview.view.SystemView;
 import org.apache.ignite.testframework.junits.GridTestKernalContext;
@@ -43,7 +43,7 @@ public class GridBinaryCacheEntryMemorySizeSelfTest extends 
GridCacheEntryMemory
 
         IgniteConfiguration iCfg = new IgniteConfiguration();
         iCfg.setDiscoverySpi(new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 // No-op.
             }
         });
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteSequentialNodeCrashRecoveryTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteSequentialNodeCrashRecoveryTest.java
index b6162d71da1..e404873a8cc 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteSequentialNodeCrashRecoveryTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteSequentialNodeCrashRecoveryTest.java
@@ -359,7 +359,7 @@ public class IgniteSequentialNodeCrashRecoveryTest extends 
GridCommonAbstractTes
             try {
                 msg.finishUnmarshal(marshaller(), U.gridClassLoader());
 
-                msgObj = msg.message();
+                msgObj = (DiscoveryCustomMessage)msg.message();
             }
             catch (Throwable e) {
                 U.error(log, "Failed to unmarshal discovery custom message.", 
e);
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
index b74dfddcae4..8b8e91e3fba 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
@@ -97,6 +97,7 @@ import org.apache.ignite.lang.IgniteBiTuple;
 import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.lang.IgniteFutureCancelledException;
 import org.apache.ignite.lang.IgnitePredicate;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.encryption.keystore.KeystoreEncryptionSpi;
 import org.apache.ignite.testframework.GridTestUtils;
@@ -918,11 +919,11 @@ public abstract class AbstractSnapshotSelfTest extends 
GridCommonAbstractTest {
         private volatile IgnitePredicate<DiscoveryCustomMessage> blockPred;
 
         /** {@inheritDoc} */
-        @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+        @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
             DiscoveryCustomMessage msg0 = U.unwrapCustomMessage(msg);
 
             if (blockPred != null && blockPred.apply(msg0)) {
-                blocked.add(msg);
+                blocked.add((DiscoveryCustomMessage)msg);
 
                 if (log.isInfoEnabled())
                     log.info("Discovery message has been blocked: " + msg0);
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java
index c94eab7a02f..c4f772ef0d5 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java
@@ -17,9 +17,9 @@
 
 package org.apache.ignite.internal.processors.continuous;
 
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.processors.cache.CacheAffinityChangeMessage;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -60,7 +60,7 @@ public class IgniteNoCustomEventsOnNodeStart extends 
GridCommonAbstractTest {
      */
     static class TestTcpDiscoverySpi extends TcpDiscoverySpi {
         /** {@inheritDoc} */
-        @Override public void sendCustomEvent(DiscoveryCustomMessage msg) {
+        @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) {
             if (U.unwrapCustomMessage(msg) instanceof 
CacheAffinityChangeMessage)
                 return;
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/security/NodeSecurityContextPropagationTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/security/NodeSecurityContextPropagationTest.java
index ff19efb9c5f..43cb4a6dcae 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/security/NodeSecurityContextPropagationTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/security/NodeSecurityContextPropagationTest.java
@@ -39,6 +39,7 @@ import 
org.apache.ignite.internal.managers.discovery.SecurityAwareCustomMessageW
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage;
@@ -183,7 +184,7 @@ public class NodeSecurityContextPropagationTest extends 
GridCommonAbstractTest {
             Object unwrappedMsg = msg;
 
             if (msg instanceof TcpDiscoveryCustomEventMessage) {
-                DiscoveryCustomMessage customMsg = getFieldValue(msg, 
"serMsg");
+                DiscoverySpiCustomMessage customMsg = getFieldValue(msg, 
"serMsg");
 
                 assert customMsg instanceof SecurityAwareCustomMessageWrapper;
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceConcurrentUndeployTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceConcurrentUndeployTest.java
index 1f0ca99ab5d..04ea1764839 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceConcurrentUndeployTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceConcurrentUndeployTest.java
@@ -26,10 +26,10 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.DiscoverySpiTestListener;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.processors.service.inner.LongInitializedTestService;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TestTcpDiscoverySpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -50,7 +50,7 @@ public class ServiceConcurrentUndeployTest extends 
GridCommonAbstractTest {
         TestTcpDiscoverySpi disco = new TestTcpDiscoverySpi();
 
         disco.setInternalListener(new DiscoverySpiTestListener() {
-            @Override public boolean beforeSendCustomEvent(DiscoverySpi spi, 
IgniteLogger log, DiscoveryCustomMessage msg) {
+            @Override public boolean beforeSendCustomEvent(DiscoverySpi spi, 
IgniteLogger log, DiscoverySpiCustomMessage msg) {
                 if (spi.isClientMode()) {
                     if (U.unwrapCustomMessage(msg) instanceof 
ServiceChangeBatchRequest) {
                         ServiceChangeBatchRequest batch = 
(ServiceChangeBatchRequest)U.unwrapCustomMessage(msg);
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessAbstractTest.java
index dcfe6ec5e97..cd4d7fdf93d 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessAbstractTest.java
@@ -22,11 +22,11 @@ import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.managers.communication.GridIoMessage;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteInClosure;
 import org.apache.ignite.plugin.extensions.communication.Message;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.TestTcpDiscoverySpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -102,7 +102,7 @@ public abstract class ServiceDeploymentProcessAbstractTest 
extends GridCommonAbs
         private volatile boolean block;
 
         /** {@inheritDoc} */
-        @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+        @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
             if (block && U.unwrapCustomMessage(msg) instanceof 
ServiceClusterDeploymentResultBatch)
                 return;
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchangeTest.java
 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchangeTest.java
index 9cffa43b922..30a7ec80298 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchangeTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchangeTest.java
@@ -29,7 +29,6 @@ import org.apache.ignite.IgniteException;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi;
 import org.apache.ignite.internal.util.typedef.T2;
 import org.apache.ignite.lang.IgniteProductVersion;
@@ -154,7 +153,7 @@ public class DiscoverySpiDataExchangeTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+        @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
             delegate.sendCustomEvent(msg);
         }
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestTcpDiscoverySpi.java
 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestTcpDiscoverySpi.java
index 336c8537060..e3038bf5dc6 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestTcpDiscoverySpi.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestTcpDiscoverySpi.java
@@ -20,8 +20,8 @@ package org.apache.ignite.spi.discovery.tcp;
 import java.io.IOException;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpiInternalListener;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientReconnectMessage;
@@ -73,7 +73,7 @@ public class TestTcpDiscoverySpi extends TcpDiscoverySpi 
implements IgniteDiscov
     }
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage msg) throws 
IgniteException {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) 
throws IgniteException {
         IgniteDiscoverySpiInternalListener internalLsnr = this.internalLsnr;
 
         if (internalLsnr != null) {
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 34fed2e5537..039309f8663 100755
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -84,7 +84,6 @@ import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgnitionEx;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryUtils;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.systemview.JmxSystemViewExporterSpi;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.CacheGroupContext;
@@ -114,6 +113,7 @@ import org.apache.ignite.resources.IgniteInstanceResource;
 import org.apache.ignite.spi.checkpoint.sharedfs.SharedFsCheckpointSpi;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.DiscoverySpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.TestTcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
@@ -647,7 +647,7 @@ public abstract class GridAbstractTest extends 
JUnitAssertAware {
 
         cfg.setClientMode(false);
         cfg.setDiscoverySpi(new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 // No-op.
             }
         });
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java
index 524c2d6f257..ff9af51975f 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java
@@ -26,10 +26,10 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.processors.cache.persistence.filename.SharedFileTree;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 
 /** */
@@ -68,7 +68,7 @@ public class GridTestBinaryMarshaller {
             )
             .setClientMode(false)
             .setDiscoverySpi(new TcpDiscoverySpi() {
-                @Override public void sendCustomEvent(DiscoveryCustomMessage 
msg) throws IgniteException {
+                @Override public void 
sendCustomEvent(DiscoverySpiCustomMessage msg) throws IgniteException {
                     //No-op.
                 }
             });
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryTypeRegistrationTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryTypeRegistrationTest.java
index 34e27cecb70..d030bf7b7b9 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryTypeRegistrationTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryTypeRegistrationTest.java
@@ -27,9 +27,9 @@ import org.apache.ignite.IgniteBinary;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.processors.cache.binary.MetadataUpdateProposedMessage;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -48,7 +48,7 @@ public class BinaryTypeRegistrationTest extends 
GridCommonAbstractTest {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 if (U.unwrapCustomMessage(msg) instanceof 
MetadataUpdateProposedMessage)
                     
metadataUpdateProposedMessages.add(U.unwrapCustomMessage(msg));
 
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java
index f63d6b55513..b1d6ecc1dbb 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java
@@ -39,6 +39,7 @@ import org.apache.ignite.lang.IgniteInClosure;
 import org.apache.ignite.plugin.extensions.communication.Message;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
@@ -69,7 +70,7 @@ public class CacheRegisterMetadataLocallyTest extends 
GridCommonAbstractTest {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setDiscoverySpi(new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 DiscoveryCustomMessage realMsg = U.unwrapCustomMessage(msg);
 
                 if (realMsg instanceof MetadataUpdateProposedMessage || 
realMsg instanceof MetadataUpdateAcceptedMessage)
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java
index 997692f77bf..48b1d907e53 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java
@@ -81,6 +81,7 @@ import 
org.apache.ignite.internal.processors.query.schema.message.SchemaProposeD
 import org.apache.ignite.internal.util.GridSpinBusyLock;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
@@ -194,7 +195,7 @@ public class KillQueryTest extends GridCommonAbstractTest {
             clientBlocker = commSpi;
 
         cfg.setDiscoverySpi(new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 DiscoveryCustomMessage delegate = U.unwrapCustomMessage(msg);
 
                 if (delegate instanceof DynamicCacheChangeBatch) {
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/RunningQueriesTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/RunningQueriesTest.java
index 3a4165eb466..9100505883a 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/RunningQueriesTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/RunningQueriesTest.java
@@ -60,6 +60,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteInClosure;
 import org.apache.ignite.plugin.extensions.communication.Message;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.jetbrains.annotations.Nullable;
@@ -166,7 +167,7 @@ public class RunningQueriesTest extends 
AbstractIndexingCommonTest {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi() {
-            @Override public void sendCustomEvent(DiscoveryCustomMessage msg) 
throws IgniteException {
+            @Override public void sendCustomEvent(DiscoverySpiCustomMessage 
msg) throws IgniteException {
                 DiscoveryCustomMessage delegate = U.unwrapCustomMessage(msg);
 
                 if 
(DynamicCacheChangeBatch.class.isAssignableFrom(delegate.getClass())) {
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
index e5105615e72..54347b18970 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
@@ -30,7 +30,6 @@ import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi;
 import org.apache.ignite.internal.processors.metric.MetricRegistryImpl;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
@@ -50,6 +49,7 @@ import 
org.apache.ignite.spi.IgniteSpiMultipleInstancesSupport;
 import org.apache.ignite.spi.communication.CommunicationSpi;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.DiscoveryMetricsProvider;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiDataExchange;
 import org.apache.ignite.spi.discovery.DiscoverySpiHistorySupport;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
@@ -404,7 +404,7 @@ public class ZookeeperDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDis
     }
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage msg) {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) {
         impl.sendCustomMessage(msg);
     }
 
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/DiscoveryMessageParser.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/DiscoveryMessageParser.java
index 790a573df4a..ea83271c9f5 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/DiscoveryMessageParser.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/DiscoveryMessageParser.java
@@ -29,7 +29,6 @@ import java.util.zip.InflaterInputStream;
 import org.apache.ignite.internal.direct.DirectMessageReader;
 import org.apache.ignite.internal.direct.DirectMessageWriter;
 import 
org.apache.ignite.internal.managers.communication.IgniteMessageFactoryImpl;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.marshaller.Marshaller;
@@ -39,6 +38,7 @@ import 
org.apache.ignite.plugin.extensions.communication.MessageFactory;
 import 
org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider;
 import org.apache.ignite.plugin.extensions.communication.MessageSerializer;
 import org.apache.ignite.spi.IgniteSpiException;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 
 import static 
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.makeMessageType;
 
@@ -70,7 +70,7 @@ public class DiscoveryMessageParser {
     }
 
     /** Marshals discovery message to bytes array. */
-    public byte[] marshalZip(DiscoveryCustomMessage msg) {
+    public byte[] marshalZip(DiscoverySpiCustomMessage msg) {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
         try (DeflaterOutputStream out = new DeflaterOutputStream(baos)) {
@@ -93,7 +93,7 @@ public class DiscoveryMessageParser {
     }
 
     /** Unmarshals discovery message from bytes array. */
-    public DiscoveryCustomMessage unmarshalZip(byte[] bytes) {
+    public DiscoverySpiCustomMessage unmarshalZip(byte[] bytes) {
         try (
             ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
             InflaterInputStream in = new InflaterInputStream(bais)
@@ -106,7 +106,7 @@ public class DiscoveryMessageParser {
             if (MESSAGE_SERIALIZATION != mode)
                 throw new IOException("Received unexpected byte while reading 
discovery message: " + mode);
 
-            return (DiscoveryCustomMessage)deserializeMessage(in);
+            return (DiscoverySpiCustomMessage)deserializeMessage(in);
         }
         catch (Exception e) {
             throw new IgniteSpiException("Failed to deserialize message.", e);
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveFinishMessage.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveFinishMessage.java
index 471d7939220..1dff2edf88a 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveFinishMessage.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveFinishMessage.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.spi.discovery.zk.internal;
 
 import java.util.UUID;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.jetbrains.annotations.Nullable;
@@ -26,7 +25,7 @@ import org.jetbrains.annotations.Nullable;
 /**
  *
  */
-class ZkCommunicationErrorResolveFinishMessage extends 
DiscoverySpiCustomMessage implements ZkInternalMessage {
+class ZkCommunicationErrorResolveFinishMessage implements 
DiscoverySpiCustomMessage, ZkInternalMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -49,15 +48,10 @@ class ZkCommunicationErrorResolveFinishMessage extends 
DiscoverySpiCustomMessage
     }
 
     /** {@inheritDoc} */
-    @Nullable @Override public DiscoveryCustomMessage ackMessage() {
+    @Nullable @Override public DiscoverySpiCustomMessage ackMessage() {
         return null;
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean stopProcess() {
-        return false;
-    }
-
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(ZkCommunicationErrorResolveFinishMessage.class, 
this);
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveStartMessage.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveStartMessage.java
index d420d8bbfbe..763fe51147b 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveStartMessage.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkCommunicationErrorResolveStartMessage.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.spi.discovery.zk.internal;
 
 import java.util.UUID;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.jetbrains.annotations.Nullable;
@@ -26,7 +25,7 @@ import org.jetbrains.annotations.Nullable;
 /**
  * Zk Communication Error Resolve Start Message.
  */
-public class ZkCommunicationErrorResolveStartMessage extends 
DiscoverySpiCustomMessage implements ZkInternalMessage {
+public class ZkCommunicationErrorResolveStartMessage implements 
DiscoverySpiCustomMessage, ZkInternalMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -41,15 +40,10 @@ public class ZkCommunicationErrorResolveStartMessage 
extends DiscoverySpiCustomM
     }
 
     /** {@inheritDoc} */
-    @Nullable @Override public DiscoveryCustomMessage ackMessage() {
+    @Nullable @Override public DiscoverySpiCustomMessage ackMessage() {
         return null;
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean stopProcess() {
-        return false;
-    }
-
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(ZkCommunicationErrorResolveStartMessage.class, this);
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDiscoveryCustomEventData.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDiscoveryCustomEventData.java
index 87754e169c3..e606f384fcf 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDiscoveryCustomEventData.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDiscoveryCustomEventData.java
@@ -18,8 +18,8 @@
 package org.apache.ignite.spi.discovery.zk.internal;
 
 import java.util.UUID;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 
 /**
  *
@@ -41,7 +41,7 @@ class ZkDiscoveryCustomEventData extends ZkDiscoveryEventData 
{
     byte[] msgBytes;
 
     /** Unmarshalled message. */
-    transient DiscoveryCustomMessage resolvedMsg;
+    transient DiscoverySpiCustomMessage resolvedMsg;
 
     /**
      * @param evtId Event ID.
@@ -56,7 +56,7 @@ class ZkDiscoveryCustomEventData extends ZkDiscoveryEventData 
{
         long origEvtId,
         long topVer,
         UUID sndNodeId,
-        DiscoveryCustomMessage msg,
+        DiscoverySpiCustomMessage msg,
         String evtPath
     ) {
         super(evtId, ZK_EVT_CUSTOM_EVT, topVer);
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkForceNodeFailMessage.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkForceNodeFailMessage.java
index f24ff535484..060f354bdda 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkForceNodeFailMessage.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkForceNodeFailMessage.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.spi.discovery.zk.internal;
 
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.jetbrains.annotations.Nullable;
@@ -25,7 +24,7 @@ import org.jetbrains.annotations.Nullable;
 /**
  * Zk Force Node Fail Message.
  */
-public class ZkForceNodeFailMessage extends DiscoverySpiCustomMessage 
implements ZkInternalMessage {
+public class ZkForceNodeFailMessage implements DiscoverySpiCustomMessage, 
ZkInternalMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -45,15 +44,10 @@ public class ZkForceNodeFailMessage extends 
DiscoverySpiCustomMessage implements
     }
 
     /** {@inheritDoc} */
-    @Nullable @Override public DiscoveryCustomMessage ackMessage() {
+    @Nullable @Override public DiscoverySpiCustomMessage ackMessage() {
         return null;
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean stopProcess() {
-        return false;
-    }
-
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(ZkForceNodeFailMessage.class, this);
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkNoServersMessage.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkNoServersMessage.java
index 96706754a2d..82c804de1f2 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkNoServersMessage.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkNoServersMessage.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.spi.discovery.zk.internal;
 
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.jetbrains.annotations.Nullable;
@@ -25,20 +24,15 @@ import org.jetbrains.annotations.Nullable;
 /**
  *
  */
-class ZkNoServersMessage extends DiscoverySpiCustomMessage implements 
ZkInternalMessage {
+class ZkNoServersMessage implements DiscoverySpiCustomMessage, 
ZkInternalMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** {@inheritDoc} */
-    @Nullable @Override public DiscoveryCustomMessage ackMessage() {
+    @Nullable @Override public DiscoverySpiCustomMessage ackMessage() {
         return null;
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean stopProcess() {
-        return false;
-    }
-
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(ZkNoServersMessage.class, this);
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
index ddc79f498b0..2cac8fd62f2 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
@@ -62,7 +62,6 @@ import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgnitionEx;
 import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
 import org.apache.ignite.internal.events.DiscoveryCustomEvent;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import org.apache.ignite.internal.processors.security.SecurityContext;
 import org.apache.ignite.internal.thread.pool.IgniteThreadPoolExecutor;
 import org.apache.ignite.internal.util.GridLongList;
@@ -84,6 +83,7 @@ import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.IgniteSpiTimeoutObject;
 import org.apache.ignite.spi.discovery.DiscoveryDataBag;
 import org.apache.ignite.spi.discovery.DiscoveryNotification;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiDataExchange;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
 import org.apache.ignite.spi.discovery.DiscoverySpiNodeAuthenticator;
@@ -654,7 +654,7 @@ public class ZookeeperDiscoveryImpl {
     /**
      * @param msg Message.
      */
-    public void sendCustomMessage(DiscoveryCustomMessage msg) {
+    public void sendCustomMessage(DiscoverySpiCustomMessage msg) {
         assert msg != null;
 
         List<ClusterNode> nodes = rtState.top.topologySnapshot();
@@ -2471,7 +2471,7 @@ public class ZookeeperDiscoveryImpl {
             if (sndNode != null) {
                 byte[] evtBytes = readCustomEventData(zkClient, evtPath, 
sndNodeId);
 
-                DiscoveryCustomMessage msg;
+                DiscoverySpiCustomMessage msg;
 
                 try {
                     msg = msgParser.unmarshalZip(evtBytes);
@@ -2502,7 +2502,7 @@ public class ZookeeperDiscoveryImpl {
      */
     private void generateAndProcessCustomEventOnCoordinator(String evtPath,
         ZookeeperClusterNode sndNode,
-        DiscoveryCustomMessage msg
+        DiscoverySpiCustomMessage msg
     ) throws Exception {
         ZookeeperClient zkClient = rtState.zkClient;
         ZkDiscoveryEventsData evtsData = rtState.evtsData;
@@ -2585,7 +2585,7 @@ public class ZookeeperDiscoveryImpl {
 
                 evtsData.evtIdGen--;
 
-                DiscoveryCustomMessage ack = msg.ackMessage();
+                DiscoverySpiCustomMessage ack = msg.ackMessage();
 
                 if (ack != null) {
                     evtData = createAckEvent(ack, evtData);
@@ -3501,7 +3501,7 @@ public class ZookeeperDiscoveryImpl {
      * @param evtData Event data.
      * @param msg Custom message.
      */
-    private void notifyCustomEvent(final ZkDiscoveryCustomEventData evtData, 
final DiscoveryCustomMessage msg) {
+    private void notifyCustomEvent(final ZkDiscoveryCustomEventData evtData, 
final DiscoverySpiCustomMessage msg) {
         assert !(msg instanceof ZkInternalMessage) : msg;
 
         if (log.isDebugEnabled())
@@ -3707,7 +3707,7 @@ public class ZookeeperDiscoveryImpl {
                     }
 
                     case ZkDiscoveryEventData.ZK_EVT_CUSTOM_EVT: {
-                        DiscoveryCustomMessage ack = 
handleProcessedCustomEvent(ctx,
+                        DiscoverySpiCustomMessage ack = 
handleProcessedCustomEvent(ctx,
                             (ZkDiscoveryCustomEventData)evtData);
 
                         if (ack != null) {
@@ -3755,7 +3755,7 @@ public class ZookeeperDiscoveryImpl {
      * @throws Exception If failed.
      */
     private ZkDiscoveryCustomEventData createAckEvent(
-        DiscoveryCustomMessage ack,
+        DiscoverySpiCustomMessage ack,
         ZkDiscoveryCustomEventData origEvt) throws Exception {
         assert ack != null;
 
@@ -3876,7 +3876,7 @@ public class ZookeeperDiscoveryImpl {
      * @return Ack message.
      * @throws Exception If failed.
      */
-    @Nullable private DiscoveryCustomMessage handleProcessedCustomEvent(String 
ctx, ZkDiscoveryCustomEventData evtData)
+    @Nullable private DiscoverySpiCustomMessage 
handleProcessedCustomEvent(String ctx, ZkDiscoveryCustomEventData evtData)
         throws Exception {
         if (log.isDebugEnabled())
             log.debug("All nodes processed custom event [ctx=" + ctx + ", 
evtData=" + evtData + ']');
diff --git 
a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/TestZookeeperDiscoverySpi.java
 
b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/TestZookeeperDiscoverySpi.java
index 23352efc152..fd9e4ba4239 100644
--- 
a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/TestZookeeperDiscoverySpi.java
+++ 
b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/TestZookeeperDiscoverySpi.java
@@ -18,8 +18,8 @@
 package org.apache.ignite.spi.discovery.zk;
 
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
 import 
org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpiInternalListener;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import 
org.apache.ignite.spi.discovery.tcp.IgniteDiscoverySpiInternalListenerSupport;
 import org.apache.ignite.testframework.junits.GridAbstractTest;
 
@@ -32,7 +32,7 @@ public class TestZookeeperDiscoverySpi extends 
ZookeeperDiscoverySpi implements
     private volatile IgniteDiscoverySpiInternalListener internalLsnr;
 
     /** {@inheritDoc} */
-    @Override public void sendCustomEvent(DiscoveryCustomMessage msg) {
+    @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) {
         IgniteDiscoverySpiInternalListener internalLsnr = this.internalLsnr;
 
         if (internalLsnr != null && !internalLsnr.beforeSendCustomEvent(this, 
log, msg))

Reply via email to