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

nizhikov 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 eea94bf674d  IGNITE-26044 Simplify BinaryContext creation (#12225)
eea94bf674d is described below

commit eea94bf674dd687af42c45c77fd16ddb7b3d32e5
Author: Nikolay <[email protected]>
AuthorDate: Mon Jul 28 20:55:37 2025 +0300

     IGNITE-26044 Simplify BinaryContext creation (#12225)
---
 .../jdbc/thin/JdbcThinConnectionSelfTest.java      |  3 +-
 .../ignite/internal/binary/BinaryContext.java      | 43 +++++++---------------
 .../ignite/internal/binary/BinaryMarshaller.java   |  6 +--
 .../apache/ignite/internal/binary/BinaryUtils.java |  9 +++--
 .../client/thin/ClientBinaryMarshaller.java        | 12 ++++--
 .../internal/client/thin/TcpClientChannel.java     |  5 +--
 .../internal/jdbc/thin/JdbcThinConnection.java     | 13 ++++---
 .../ignite/internal/jdbc/thin/JdbcThinTcpIo.java   |  7 +---
 .../binary/CacheObjectBinaryProcessorImpl.java     | 31 +++++++---------
 .../processors/odbc/ClientListenerNioListener.java |  7 +---
 .../processors/platform/utils/PlatformUtils.java   |  8 +---
 .../apache/ignite/internal/util/IgniteUtils.java   | 42 ++++++++++++++++++++-
 .../binary/BinaryContextPredefinedTypesTest.java   |  4 +-
 .../binary/BinaryFieldExtractionSelfTest.java      | 11 +-----
 .../binary/BinaryFieldsAbstractSelfTest.java       | 10 +----
 .../BinaryFooterOffsetsAbstractSelfTest.java       | 11 ++----
 .../internal/binary/BinaryMarshallerSelfTest.java  | 24 ++----------
 .../GridBinaryMarshallerCtxDisabledSelfTest.java   |  5 +--
 .../binary/GridBinaryWildcardsSelfTest.java        | 12 +-----
 .../binary/RawBinaryObjectExtractorTest.java       |  6 +--
 .../GridBinaryCacheEntryMemorySizeSelfTest.java    |  6 +--
 .../platform/PlatformGetInternalCachesTask.java    |  6 +--
 .../session/GridSessionCheckpointSelfTest.java     | 15 +-------
 .../testframework/junits/GridAbstractTest.java     | 13 +------
 .../junits/GridTestBinaryMarshaller.java           | 13 +------
 .../ignite/testframework/junits/IgniteMock.java    |  6 +--
 .../testframework/junits/IgniteTestResources.java  |  5 +--
 ...aryMetadataConcurrentUpdateWithIndexesTest.java |  4 +-
 28 files changed, 118 insertions(+), 219 deletions(-)

diff --git 
a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinConnectionSelfTest.java
 
b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinConnectionSelfTest.java
index 04c37434ed8..2d46232ec03 100644
--- 
a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinConnectionSelfTest.java
+++ 
b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinConnectionSelfTest.java
@@ -2232,9 +2232,8 @@ public class JdbcThinConnectionSelfTest extends 
JdbcThinAbstractSelfTest {
 
         marsh.setContext(getFakeMarshallerCtx());
 
-        BinaryContext ctx = U.emptyBinaryContext();
+        BinaryContext ctx = U.binaryContext(marsh);
 
-        ctx.configure(marsh);
         ctx.registerUserTypesSchema();
 
         return ctx;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index 74a0df8daa7..3d016fc9b99 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -78,7 +78,6 @@ import org.apache.ignite.internal.processors.query.QueryUtils;
 import org.apache.ignite.internal.util.IgniteUtils;
 import org.apache.ignite.internal.util.lang.GridMapEntry;
 import org.apache.ignite.internal.util.typedef.T2;
-import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteBiTuple;
 import org.apache.ignite.lang.IgniteUuid;
@@ -157,7 +156,7 @@ public class BinaryContext {
     private final ConcurrentMap<Integer, BinaryIdentityResolver> identities = 
new ConcurrentHashMap<>(0);
 
     /** */
-    private BinaryMetadataHandler metaHnd;
+    private final BinaryMetadataHandler metaHnd;
 
     /** Node name. */
     private final @Nullable String igniteInstanceName;
@@ -175,7 +174,7 @@ public class BinaryContext {
     private final @Nullable BinaryConfiguration bcfg;
 
     /** Logger. */
-    private IgniteLogger log;
+    private final IgniteLogger log;
 
     /** */
     private final OptimizedMarshaller optmMarsh = new 
OptimizedMarshaller(false);
@@ -186,36 +185,22 @@ public class BinaryContext {
     /** Object schemas. */
     private volatile Map<Integer, BinarySchemaRegistry> schemas;
 
-    /**
-     * @param log Logger
-     */
-    public BinaryContext(IgniteLogger log) {
-        this(BinaryNoopMetadataHandler.instance(), null, null, null, log);
-    }
-
-    /**
-     * @param metaHnd Meta data handler.
-     * @param log Logger.
-     */
-    public BinaryContext(
-        BinaryMetadataHandler metaHnd,
-        IgniteLogger log
-    ) {
-        this(metaHnd, null, null, null, log);
-    }
-
     /**
      * @param metaHnd Meta data handler.
+     * @param marsh Binary marshaller.
      * @param igniteInstanceName Ignite instance name.
      * @param clsLdr Class loader.
      * @param bcfg Binary configuration.
+     * @param affFlds Affinity fields.
      * @param log Logger.
      */
     public BinaryContext(
         BinaryMetadataHandler metaHnd,
+        @Nullable BinaryMarshaller marsh,
         @Nullable String igniteInstanceName,
         @Nullable ClassLoader clsLdr,
         @Nullable BinaryConfiguration bcfg,
+        Map<String, String> affFlds,
         IgniteLogger log
     ) {
         assert metaHnd != null;
@@ -310,6 +295,8 @@ public class BinaryContext {
             U.warn(log, "ReflectionFactory not found, deserialization of 
binary objects for classes without " +
                 "default constructor is not possible");
         }
+
+        configure(marsh, bcfg, affFlds);
     }
 
     /**
@@ -361,21 +348,17 @@ public class BinaryContext {
         return clsLdr;
     }
 
-    /**
-     * @param marsh Binary marshaller.
-     * @throws BinaryObjectException In case of error.
-     */
-    public void configure(BinaryMarshaller marsh) throws BinaryObjectException 
{
-        configure(marsh, null, CU.affinityFields(null));
-    }
-
     /**
      * @param marsh Binary marshaller.
      * @param binaryCfg Binary configuration.
      * @param affFlds Type name to affinity key field name mapping.
      * @throws BinaryObjectException In case of error.
      */
-    public void configure(BinaryMarshaller marsh, BinaryConfiguration 
binaryCfg, Map<String, String> affFlds) throws BinaryObjectException {
+    private void configure(
+        BinaryMarshaller marsh,
+        BinaryConfiguration binaryCfg,
+        Map<String, String> affFlds
+    ) throws BinaryObjectException {
         if (marsh == null)
             return;
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMarshaller.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMarshaller.java
index dd5336d2fa2..db0a86e86fa 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMarshaller.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMarshaller.java
@@ -23,9 +23,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
-import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller;
 import org.jetbrains.annotations.Nullable;
@@ -74,9 +72,7 @@ public class BinaryMarshaller extends 
AbstractNodeNameAwareMarshaller {
      * <p/>
      * @param ctx Binary context.
      */
-    public void setBinaryContext(BinaryContext ctx, IgniteConfiguration cfg) {
-        ctx.configure(this, cfg != null ? cfg.getBinaryConfiguration() : null, 
CU.affinityFields(cfg));
-
+    public void setBinaryContext(BinaryContext ctx) {
         impl = new GridBinaryMarshaller(ctx);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index 6fcafb4a289..a20482004ca 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -2941,13 +2941,16 @@ public class BinaryUtils {
         return new BinaryWriterExImpl(ctx, out, schema, null);
     }
 
-    /**
-     * @return Instance of caching handler.
-     */
+    /** @return Instance of caching handler. */
     public static BinaryMetadataHandler cachingMetadataHandler() {
         return BinaryCachingMetadataHandler.create();
     }
 
+    /** @return Instance of noop handler. */
+    public static BinaryMetadataHandler noopMetadataHandler() {
+        return BinaryNoopMetadataHandler.instance();
+    }
+
     /**
      * @param val Value to check.
      * @return {@code True} if {@code val} instance of {@link 
BinaryObjectExImpl}.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
index e95f8929819..a496265c5b1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
@@ -18,12 +18,13 @@
 package org.apache.ignite.internal.client.thin;
 
 import org.apache.ignite.configuration.BinaryConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryMetadataHandler;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
 import org.apache.ignite.internal.binary.streams.BinaryInputStream;
-import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContext;
 
@@ -103,13 +104,16 @@ class ClientBinaryMarshaller {
             binCfg.setCompactFooter(false);
         }
 
-        BinaryContext ctx = new BinaryContext(metaHnd, null, null, binCfg, 
NullLogger.INSTANCE);
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(marshCtx);
 
-        ctx.configure(marsh, binCfg, CU.affinityFields(null));
+        BinaryContext ctx = U.binaryContext(
+            metaHnd,
+            marsh,
+            new IgniteConfiguration().setBinaryConfiguration(binCfg),
+            NullLogger.INSTANCE
+        );
 
         ctx.registerUserTypesSchema();
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
index 1585819f2e0..f8316faf64c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
@@ -51,7 +51,6 @@ import 
org.apache.ignite.client.ClientFeatureNotSupportedByServerException;
 import org.apache.ignite.client.ClientReconnectedException;
 import org.apache.ignite.client.events.ConnectionDescription;
 import org.apache.ignite.configuration.ClientConfiguration;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryReaderEx;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
@@ -839,9 +838,7 @@ class TcpClientChannel implements ClientChannel, 
ClientMessageHandler, ClientCon
     /** Send handshake request. */
     private void handshakeReq(ProtocolVersion proposedVer, String user, String 
pwd,
         Map<String, String> userAttrs) throws ClientConnectionException {
-        BinaryContext ctx = U.emptyBinaryContext();
-
-        try (BinaryWriterEx writer = BinaryUtils.writer(ctx, 
BinaryStreams.outputStream(32), null)) {
+        try (BinaryWriterEx writer = BinaryUtils.writer(U.binaryContext(null), 
BinaryStreams.outputStream(32), null)) {
             ProtocolContext protocolCtx = 
protocolContextFromVersion(proposedVer);
 
             writer.writeInt(0); // reserve an integer for the request size
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java
index c804ff05845..9af01eaaa45 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java
@@ -75,6 +75,7 @@ import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.client.ClientException;
 import org.apache.ignite.configuration.BinaryConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.MarshallerPlatformIds;
 import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
@@ -120,7 +121,6 @@ import 
org.apache.ignite.internal.sql.optimizer.affinity.PartitionClientContext;
 import org.apache.ignite.internal.sql.optimizer.affinity.PartitionResult;
 import org.apache.ignite.internal.util.HostAndPortRange;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
-import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteProductVersion;
@@ -323,11 +323,12 @@ public class JdbcThinConnection implements Connection {
         BinaryMarshaller marsh = new BinaryMarshaller();
         marsh.setContext(marshCtx);
 
-        BinaryConfiguration binCfg = new 
BinaryConfiguration().setCompactFooter(true);
-
-        BinaryContext ctx = new BinaryContext(metaHnd, NullLogger.INSTANCE);
-
-        ctx.configure(marsh, binCfg, CU.affinityFields(null));
+        BinaryContext ctx = U.binaryContext(
+            metaHnd,
+            marsh,
+            new IgniteConfiguration().setBinaryConfiguration(new 
BinaryConfiguration().setCompactFooter(true)),
+            NullLogger.INSTANCE
+        );
 
         ctx.registerUserTypesSchema();
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
index 7d079586c6a..330affaf773 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
@@ -268,16 +268,11 @@ public class JdbcThinTcpIo {
      * @throws SQLException On connection reject.
      */
     private HandshakeResult handshake(ClientListenerProtocolVersion ver) 
throws IOException, SQLException {
-        BinaryContext ctx = U.emptyBinaryContext();
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(new MarshallerContextImpl(null, null));
 
-        ctx.configure(marsh);
-
-        BinaryWriterEx writer = BinaryUtils.writer(ctx, 
BinaryStreams.outputStream(HANDSHAKE_MSG_SIZE),
-            null);
+        BinaryWriterEx writer = BinaryUtils.writer(U.binaryContext(marsh), 
BinaryStreams.outputStream(HANDSHAKE_MSG_SIZE), null);
 
         writer.writeByte((byte)ClientListenerRequest.HANDSHAKE);
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
index 4a5bbd4892f..3eec434fbe1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
@@ -167,10 +167,6 @@ public class CacheObjectBinaryProcessorImpl extends 
GridProcessorAdapter impleme
     /** How long to wait for schema if no updates in progress. */
     private long waitSchemaTimeout = 
IgniteSystemProperties.getLong(IGNITE_WAIT_SCHEMA_UPDATE, 
DFLT_WAIT_SCHEMA_UPDATE);
 
-    /** For tests. */
-    @SuppressWarnings("PublicField")
-    public static boolean useTestBinaryCtx;
-
     /** */
     @GridToStringExclude
     private IgniteBinary binaries;
@@ -278,19 +274,11 @@ public class CacheObjectBinaryProcessorImpl extends 
GridProcessorAdapter impleme
             }
         };
 
-        binaryCtx = useTestBinaryCtx
-            ? new TestBinaryContext(metaHnd, ctx.config(), 
ctx.log(BinaryContext.class))
-            : new BinaryContext(
-                metaHnd,
-                ctx.config().getIgniteInstanceName(),
-                ctx.config().getClassLoader(),
-                ctx.config().getBinaryConfiguration(),
-                ctx.log(BinaryContext.class)
-            );
+        binaryCtx = U.binaryContext(metaHnd, marsh, ctx.config(), 
ctx.log(BinaryContext.class));
 
-        transport = new BinaryMetadataTransport(metadataLocCache, 
metadataFileStore, binaryCtx, ctx, log);
+        marsh.setBinaryContext(binaryCtx);
 
-        marsh.setBinaryContext(binaryCtx, ctx.config());
+        transport = new BinaryMetadataTransport(metadataLocCache, 
metadataFileStore, binaryCtx, ctx, log);
 
         binaryMarsh = new GridBinaryMarshaller(binaryCtx);
 
@@ -1642,9 +1630,16 @@ public class CacheObjectBinaryProcessorImpl extends 
GridProcessorAdapter impleme
          * @param cfg Ignite configuration.
          * @param log Logger.
          */
-        public TestBinaryContext(BinaryMetadataHandler metaHnd, 
IgniteConfiguration cfg,
-            IgniteLogger log) {
-            super(metaHnd, cfg.getIgniteInstanceName(), cfg.getClassLoader(), 
cfg.getBinaryConfiguration(), log);
+        public TestBinaryContext(BinaryMetadataHandler metaHnd, 
BinaryMarshaller marsh, IgniteConfiguration cfg, IgniteLogger log) {
+            super(
+                metaHnd,
+                marsh,
+                cfg.getIgniteInstanceName(),
+                cfg.getClassLoader(),
+                cfg.getBinaryConfiguration(),
+                CU.affinityFields(cfg),
+                log
+            );
         }
 
         /** {@inheritDoc} */
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
index ee1a981e488..d7d6a428595 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
@@ -28,7 +28,6 @@ import org.apache.ignite.failure.FailureContext;
 import org.apache.ignite.failure.FailureType;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.MarshallerContextImpl;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryReaderEx;
 import org.apache.ignite.internal.binary.BinaryUtils;
@@ -356,15 +355,11 @@ public class ClientListenerNioListener extends 
GridNioServerListenerAdapter<Clie
      * @param msg Message bytes.
      */
     private void onHandshake(GridNioSession ses, ClientMessage msg) {
-        BinaryContext ctx = U.emptyBinaryContext();
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(new MarshallerContextImpl(null, null));
 
-        ctx.configure(marsh);
-
-        BinaryReaderEx reader = BinaryUtils.reader(ctx, 
BinaryStreams.inputStream(msg.payload()), null, true);
+        BinaryReaderEx reader = BinaryUtils.reader(U.binaryContext(marsh), 
BinaryStreams.inputStream(msg.payload()), null, true);
 
         byte cmd = reader.readByte();
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformUtils.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformUtils.java
index 2603203cec9..3274a6f7382 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformUtils.java
@@ -45,7 +45,6 @@ import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.MarshallerContextImpl;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryFieldMetadata;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryMetadata;
@@ -76,7 +75,6 @@ import org.apache.ignite.lang.IgniteBiTuple;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteProductVersion;
 import org.apache.ignite.lang.IgniteUuid;
-import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.services.ServiceConfiguration;
 import org.jetbrains.annotations.Nullable;
 
@@ -882,15 +880,11 @@ public class PlatformUtils {
      * @return Marshaller.
      */
     public static GridBinaryMarshaller marshaller() {
-        BinaryContext ctx = new BinaryContext(NullLogger.INSTANCE);
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(new MarshallerContextImpl(null, null));
 
-        ctx.configure(marsh);
-
-        return new GridBinaryMarshaller(ctx);
+        return new 
GridBinaryMarshaller(U.binaryContext(BinaryUtils.noopMetadataHandler(), marsh));
     }
 
     /**
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 934e2873ad2..01fe353bd0b 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
@@ -176,6 +176,8 @@ import 
org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
 import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.binary.BinaryContext;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
+import org.apache.ignite.internal.binary.BinaryMetadataHandler;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
 import org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException;
@@ -192,6 +194,7 @@ import 
org.apache.ignite.internal.mxbean.IgniteStandardMXBean;
 import org.apache.ignite.internal.processors.cache.CacheClassLoaderMarker;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import 
org.apache.ignite.internal.processors.cache.IgnitePeerToPeerClassLoadingException;
+import 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.TestBinaryContext;
 import 
org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException;
 import 
org.apache.ignite.internal.transactions.IgniteTxOptimisticCheckedException;
 import 
org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
@@ -208,6 +211,7 @@ import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.internal.util.typedef.P1;
 import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.LT;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.SB;
@@ -496,6 +500,10 @@ public abstract class IgniteUtils extends CommonUtils {
     public static boolean IGNITE_TEST_FEATURES_ENABLED =
         
IgniteSystemProperties.getBoolean(IgniteSystemProperties.IGNITE_TEST_FEATURES_ENABLED);
 
+    /** For tests. */
+    @SuppressWarnings("PublicField")
+    public static boolean useTestBinaryCtx;
+
     /** */
     private static final boolean assertionsEnabled;
 
@@ -9823,8 +9831,38 @@ public abstract class IgniteUtils extends CommonUtils {
     }
 
     /** @return Empty binary context instance. */
-    public static BinaryContext emptyBinaryContext() {
-        return new BinaryContext(BinaryUtils.cachingMetadataHandler(), 
NullLogger.INSTANCE);
+    public static BinaryContext binaryContext(BinaryMarshaller marsh) {
+        return binaryContext(BinaryUtils.cachingMetadataHandler(), marsh);
+    }
+
+    /** @return Empty binary context instance. */
+    public static BinaryContext binaryContext(BinaryMetadataHandler metaHnd, 
BinaryMarshaller marsh) {
+        return binaryContext(metaHnd, marsh, new IgniteConfiguration(), 
NullLogger.INSTANCE);
+    }
+
+    /** @return Empty binary context instance. */
+    public static BinaryContext binaryContext(BinaryMarshaller marsh, 
IgniteConfiguration cfg) {
+        return binaryContext(BinaryUtils.cachingMetadataHandler(), marsh, cfg, 
NullLogger.INSTANCE);
+    }
+
+    /** @return Empty binary context instance. */
+    public static BinaryContext binaryContext(
+        BinaryMetadataHandler metaHnd,
+        BinaryMarshaller marsh,
+        IgniteConfiguration cfg,
+        IgniteLogger log
+    ) {
+        return useTestBinaryCtx
+            ? new TestBinaryContext(metaHnd, marsh, cfg, log)
+            : new BinaryContext(
+                metaHnd,
+                marsh,
+                cfg.getIgniteInstanceName(),
+                cfg.getClassLoader(),
+                cfg.getBinaryConfiguration(),
+                CU.affinityFields(cfg),
+                log
+            );
     }
 
     /**
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryContextPredefinedTypesTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryContextPredefinedTypesTest.java
index 83481a1145e..a2d43ed927f 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryContextPredefinedTypesTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryContextPredefinedTypesTest.java
@@ -30,9 +30,7 @@ public class BinaryContextPredefinedTypesTest extends 
GridCommonAbstractTest {
      */
     @Test
     public void testDefaultConstructor() {
-        BinaryContext binCtx = U.emptyBinaryContext();
-
-        for (BinaryClassDescriptor desc : binCtx.predefinedTypes()) {
+        for (BinaryClassDescriptor desc : 
U.binaryContext(null).predefinedTypes()) {
             if (!desc.isBinary())
                 continue;
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java
index a18de6d3db6..447d55646c1 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java
@@ -43,19 +43,10 @@ public class BinaryFieldExtractionSelfTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     protected BinaryMarshaller createMarshaller() throws Exception {
-        BinaryContext ctx = U.emptyBinaryContext();
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
-        BinaryConfiguration bCfg = new BinaryConfiguration();
-
-        IgniteConfiguration iCfg = new IgniteConfiguration();
-
-        iCfg.setBinaryConfiguration(bCfg);
-
         marsh.setContext(new MarshallerContextTestImpl(null));
-
-        marsh.setBinaryContext(ctx, iCfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, new 
IgniteConfiguration().setBinaryConfiguration(new BinaryConfiguration())));
 
         return marsh;
     }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java
index 2f9d34d248d..21e868db9ca 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java
@@ -47,27 +47,19 @@ public abstract class BinaryFieldsAbstractSelfTest extends 
GridCommonAbstractTes
      * @throws Exception If failed.
      */
     protected BinaryMarshaller createMarshaller() throws Exception {
-        BinaryContext ctx = U.emptyBinaryContext();
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         BinaryConfiguration bCfg = new BinaryConfiguration();
 
         bCfg.setCompactFooter(compactFooter());
-
         bCfg.setTypeConfigurations(Arrays.asList(
             new BinaryTypeConfiguration(TestObject.class.getName()),
             new BinaryTypeConfiguration(TestOuterObject.class.getName()),
             new BinaryTypeConfiguration(TestInnerObject.class.getName())
         ));
 
-        IgniteConfiguration iCfg = new IgniteConfiguration();
-
-        iCfg.setBinaryConfiguration(bCfg);
-
         marsh.setContext(new MarshallerContextTestImpl(null));
-
-        marsh.setBinaryContext(ctx, iCfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, new 
IgniteConfiguration().setBinaryConfiguration(bCfg)));
 
         return marsh;
     }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java
index 011015c18b7..0ada1bb1ff5 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java
@@ -47,23 +47,18 @@ public abstract class BinaryFooterOffsetsAbstractSelfTest 
extends GridCommonAbst
     @Override protected void beforeTest() throws Exception {
         super.beforeTest();
 
-        ctx = U.emptyBinaryContext();
-
         marsh = new BinaryMarshaller();
 
-        IgniteConfiguration iCfg = new IgniteConfiguration();
-
         BinaryConfiguration bCfg = new BinaryConfiguration();
 
         bCfg.setTypeConfigurations(Arrays.asList(new 
BinaryTypeConfiguration(TestObject.class.getName())));
-
         bCfg.setCompactFooter(compactFooter());
 
-        iCfg.setBinaryConfiguration(bCfg);
-
         marsh.setContext(new MarshallerContextTestImpl(null));
 
-        marsh.setBinaryContext(ctx, iCfg);
+        ctx = U.binaryContext(marsh, new 
IgniteConfiguration().setBinaryConfiguration(bCfg));
+
+        marsh.setBinaryContext(ctx);
     }
 
     /**
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 b60a2de675e..1423f520b5b 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
@@ -99,7 +99,6 @@ import org.apache.ignite.internal.util.typedef.T2;
 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.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
@@ -4166,14 +4165,6 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
         });
         iCfg.setSystemViewExporterSpi(new JmxSystemViewExporterSpi());
 
-        BinaryContext ctx = new BinaryContext(
-            BinaryUtils.cachingMetadataHandler(),
-            iCfg.getIgniteInstanceName(),
-            iCfg.getClassLoader(),
-            iCfg.getBinaryConfiguration(),
-            NullLogger.INSTANCE
-        );
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         MarshallerContextTestImpl marshCtx = new 
MarshallerContextTestImpl(null, excludedClasses);
@@ -4187,8 +4178,7 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
         marshCtx.onMarshallerProcessorStarted(kernCtx, null);
 
         marsh.setContext(marshCtx);
-
-        marsh.setBinaryContext(ctx, iCfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, iCfg));
 
         return marsh;
     }
@@ -4233,14 +4223,6 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
         });
         iCfg.setSystemViewExporterSpi(new JmxSystemViewExporterSpi());
 
-        BinaryContext ctx = new BinaryContext(
-            BinaryUtils.cachingMetadataHandler(),
-            iCfg.getIgniteInstanceName(),
-            iCfg.getClassLoader(),
-            iCfg.getBinaryConfiguration(),
-            NullLogger.INSTANCE
-        );
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         MarshallerContextTestImpl marshCtx = new 
MarshallerContextTestImpl(null, excludedClasses);
@@ -4255,7 +4237,9 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
 
         marsh.setContext(marshCtx);
 
-        marsh.setBinaryContext(ctx, iCfg);
+        BinaryContext ctx = U.binaryContext(marsh, iCfg);
+
+        marsh.setBinaryContext(ctx);
 
         return BinaryObjectBuilders.builder(ctx, typeName);
     }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java
index 51d5ee21952..03d0b3752c6 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java
@@ -46,10 +46,7 @@ public class GridBinaryMarshallerCtxDisabledSelfTest extends 
GridCommonAbstractT
     public void testObjectExchange() throws Exception {
         BinaryMarshaller marsh = new BinaryMarshaller();
         marsh.setContext(new MarshallerContextWithNoStorage());
-
-        BinaryContext ctx = U.emptyBinaryContext();
-
-        marsh.setBinaryContext(ctx, new IgniteConfiguration());
+        marsh.setBinaryContext(U.binaryContext(marsh, new 
IgniteConfiguration()));
 
         SimpleObject simpleObj = new SimpleObject();
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java
index 5d7de3c3b2a..015e6e29d44 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java
@@ -33,7 +33,6 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.binary.test.GridBinaryTestClass1;
 import org.apache.ignite.internal.binary.test.GridBinaryTestClass2;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -674,19 +673,10 @@ public class GridBinaryWildcardsSelfTest extends 
GridCommonAbstractTest {
 
         iCfg.setBinaryConfiguration(bCfg);
 
-        BinaryContext ctx = new BinaryContext(
-            BinaryNoopMetadataHandler.instance(),
-            iCfg.getIgniteInstanceName(),
-            iCfg.getClassLoader(),
-            bCfg,
-            NullLogger.INSTANCE
-        );
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(new MarshallerContextTestImpl(null));
-
-        marsh.setBinaryContext(ctx, iCfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, iCfg));
 
         return marsh;
     }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java
index 420ee554f6c..41dd2bc03b2 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java
@@ -77,15 +77,11 @@ public class RawBinaryObjectExtractorTest extends 
GridCommonAbstractTest {
 
     /** */
     public static BinaryContext createTestBinaryContext() {
-        BinaryContext ctx = U.emptyBinaryContext();
-
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(new TestMarshallerContext());
 
-        ctx.configure(marsh);
-
-        return ctx;
+        return U.binaryContext(marsh);
     }
 
     /** */
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 c96b0458692..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
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.cache.binary;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
 import org.apache.ignite.internal.managers.systemview.GridSystemViewManager;
@@ -65,10 +64,7 @@ public class GridBinaryCacheEntryMemorySizeSelfTest extends 
GridCacheEntryMemory
         marshCtx.onMarshallerProcessorStarted(kernCtx, null);
 
         marsh.setContext(marshCtx);
-
-        BinaryContext pCtx = U.emptyBinaryContext();
-
-        marsh.setBinaryContext(pCtx, iCfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, iCfg));
 
         return marsh;
     }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java
 
b/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java
index dbbf10a84c9..ee767453873 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java
@@ -28,7 +28,6 @@ import org.apache.ignite.compute.ComputeJobAdapter;
 import org.apache.ignite.compute.ComputeJobResult;
 import org.apache.ignite.compute.ComputeTaskAdapter;
 import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
@@ -69,10 +68,7 @@ public class PlatformGetInternalCachesTask extends 
ComputeTaskAdapter<Object, by
         @Override public byte[] execute() {
             IgniteEx ign = (IgniteEx)ignite;
 
-            BinaryContext ctx = U.emptyBinaryContext();
-
-            try (BinaryWriterEx writer
-                     = BinaryUtils.writer(ctx, 
BinaryStreams.outputStream(512), null)) {
+            try (BinaryWriterEx writer = 
BinaryUtils.writer(U.binaryContext(null), BinaryStreams.outputStream(512), 
null)) {
                 Collection<IgniteInternalCache<?, ?>> caches = ign.cachesx();
 
                 writer.writeInt(caches.size());
diff --git 
a/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java
index f14dd60f071..868e6f5fb4a 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java
@@ -19,10 +19,8 @@ package org.apache.ignite.session;
 
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
-import org.apache.ignite.internal.binary.BinaryUtils;
-import org.apache.ignite.logger.NullLogger;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
 import org.apache.ignite.spi.checkpoint.cache.CacheCheckpointSpi;
 import org.apache.ignite.spi.checkpoint.jdbc.JdbcCheckpointSpi;
@@ -100,17 +98,8 @@ public class GridSessionCheckpointSelfTest extends 
GridSessionCheckpointAbstract
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
-        BinaryContext ctx = new BinaryContext(
-            BinaryUtils.cachingMetadataHandler(),
-            cfg.getIgniteInstanceName(),
-            cfg.getClassLoader(),
-            cfg.getBinaryConfiguration(),
-            NullLogger.INSTANCE
-        );
-
         marsh.setContext(new MarshallerContextTestImpl(null));
-
-        marsh.setBinaryContext(ctx, cfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, cfg));
 
         GridSessionCheckpointSelfTest.spi = spi;
 
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 40de6532bc6..0a4bce9e44a 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
@@ -82,7 +82,6 @@ import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgnitionEx;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.managers.systemview.JmxSystemViewExporterSpi;
@@ -108,7 +107,6 @@ import org.apache.ignite.lang.IgniteBiTuple;
 import org.apache.ignite.lang.IgniteCallable;
 import org.apache.ignite.lang.IgniteClosure;
 import org.apache.ignite.lang.IgniteFuture;
-import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
 import org.apache.ignite.marshaller.MarshallerExclusions;
 import org.apache.ignite.resources.IgniteInstanceResource;
@@ -2024,17 +2022,8 @@ public abstract class GridAbstractTest extends 
JUnitAssertAware {
     protected BinaryMarshaller 
createStandaloneBinaryMarshaller(IgniteConfiguration cfg) throws 
IgniteCheckedException {
         BinaryMarshaller marsh = new BinaryMarshaller();
 
-        BinaryContext ctx = new BinaryContext(
-            BinaryUtils.cachingMetadataHandler(),
-            cfg.getIgniteInstanceName(),
-            cfg.getClassLoader(),
-            cfg.getBinaryConfiguration(),
-            NullLogger.INSTANCE
-        );
-
         marsh.setContext(new MarshallerContextTestImpl());
-
-        marsh.setBinaryContext(ctx, cfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, cfg));
 
         return marsh;
     }
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 96b1d07a035..df2f0d2ef42 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
@@ -23,13 +23,11 @@ import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.binary.BinaryContext;
 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.processors.cache.persistence.filename.SharedFileTree;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
@@ -75,14 +73,6 @@ public class GridTestBinaryMarshaller {
                 }
             });
 
-        BinaryContext ctx = new BinaryContext(
-            BinaryUtils.cachingMetadataHandler(),
-            iCfg.getIgniteInstanceName(),
-            iCfg.getClassLoader(),
-            iCfg.getBinaryConfiguration(),
-            NullLogger.INSTANCE
-        );
-
         MarshallerContextTestImpl marshCtx = new MarshallerContextTestImpl();
 
         marshCtx.setMarshallerMappingFileStoreDir(new 
SharedFileTree(U.defaultWorkDirectory()).marshaller());
@@ -91,8 +81,7 @@ public class GridTestBinaryMarshaller {
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(marshCtx);
-
-        marsh.setBinaryContext(ctx, iCfg);
+        marsh.setBinaryContext(U.binaryContext(marsh, iCfg));
 
         return marsh;
     }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
index 0a0de30dfcb..b3cff2119d4 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
@@ -445,17 +445,17 @@ public class IgniteMock implements IgniteEx {
             /** {@inheritDoc} */
             ctx = new BinaryContext(
                 BinaryUtils.cachingMetadataHandler(),
+                (BinaryMarshaller)marshaller,
                 configuration().getIgniteInstanceName(),
                 configuration().getClassLoader(),
                 configuration().getBinaryConfiguration(),
-                new NullLogger()
+                CU.affinityFields(configuration()),
+                NullLogger.INSTANCE
             ) {
                 @Override public int typeId(String typeName) {
                     return typeName.hashCode();
                 }
             };
-
-            ctx.configure((BinaryMarshaller)marshaller, 
configuration().getBinaryConfiguration(), CU.affinityFields(configuration()));
         }
 
         binaryMock = new NoOpBinary() {
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
index d3d208348e5..ea9585dcc23 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
@@ -247,10 +247,7 @@ public class IgniteTestResources {
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(new MarshallerContextTestImpl());
-        marsh.setBinaryContext(
-            U.emptyBinaryContext(),
-            new IgniteConfiguration()
-        );
+        marsh.setBinaryContext(U.binaryContext(marsh, new 
IgniteConfiguration()));
 
         return marsh;
     }
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
index 5bfa65e76c8..f0b2844e754 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
@@ -343,14 +343,14 @@ public class 
BinaryMetadataConcurrentUpdateWithIndexesTest extends GridCommonAbs
     @Override protected void beforeTest() throws Exception {
         super.beforeTest();
 
-        CacheObjectBinaryProcessorImpl.useTestBinaryCtx = true;
+        U.useTestBinaryCtx = true;
     }
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         super.afterTest();
 
-        CacheObjectBinaryProcessorImpl.useTestBinaryCtx = false;
+        U.useTestBinaryCtx = false;
 
         stopAllGrids();
     }

Reply via email to