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 8c283c99cf9 IGNITE-25928 Remove IgniteConfiguration from BinaryContext 
(#12194)
8c283c99cf9 is described below

commit 8c283c99cf9f5886926a1c1d798a57d5c93253cb
Author: Nikolay <[email protected]>
AuthorDate: Mon Jul 21 15:54:28 2025 +0300

    IGNITE-25928 Remove IgniteConfiguration from BinaryContext (#12194)
---
 .../jdbc/thin/JdbcThinConnectionSelfTest.java      |   3 +-
 .../apache/ignite/internal/binary/BinaryArray.java |   2 +-
 .../ignite/internal/binary/BinaryContext.java      | 114 +++++++++++++--------
 .../internal/binary/BinaryEnumObjectImpl.java      |   2 +-
 .../ignite/internal/binary/BinaryMarshaller.java   |   3 +-
 .../ignite/internal/binary/BinaryObjectImpl.java   |   4 +-
 .../internal/binary/BinaryObjectOffheapImpl.java   |   2 +-
 .../ignite/internal/binary/BinaryReaderExImpl.java |   2 +-
 .../apache/ignite/internal/binary/BinaryUtils.java |   2 +-
 .../ignite/internal/binary/BinaryWriterExImpl.java |   2 +-
 .../internal/binary/builder/BinaryBuilderEnum.java |   2 +-
 .../binary/builder/BinaryBuilderReader.java        |   6 +-
 .../binary/builder/BinaryEnumArrayLazyValue.java   |   2 +-
 .../binary/builder/BinaryObjectArrayLazyValue.java |   2 +-
 .../binary/builder/BinaryObjectBuilderImpl.java    |   2 +-
 .../client/thin/ClientBinaryMarshaller.java        |  10 +-
 .../internal/client/thin/TcpClientChannel.java     |   3 +-
 .../internal/jdbc/thin/JdbcThinConnection.java     |   8 +-
 .../ignite/internal/jdbc/thin/JdbcThinTcpIo.java   |   3 +-
 .../internal/processors/cache/GridCacheUtils.java  |  16 +++
 .../binary/CacheObjectBinaryProcessorImpl.java     |  18 ++--
 .../processors/odbc/ClientListenerNioListener.java |   3 +-
 .../processors/platform/utils/PlatformUtils.java   |   4 +-
 .../apache/ignite/internal/util/IgniteUtils.java   |  29 ++++--
 .../binary/BinaryContextPredefinedTypesTest.java   |   4 +-
 .../binary/BinaryFieldExtractionSelfTest.java      |   3 +-
 .../binary/BinaryFieldsAbstractSelfTest.java       |   4 +-
 .../BinaryFooterOffsetsAbstractSelfTest.java       |   4 +-
 .../internal/binary/BinaryMarshallerSelfTest.java  |  16 ++-
 .../GridBinaryMarshallerCtxDisabledSelfTest.java   |   8 +-
 .../binary/GridBinaryWildcardsSelfTest.java        |   8 +-
 .../binary/RawBinaryObjectExtractorTest.java       |   3 +-
 .../GridBinaryCacheEntryMemorySizeSelfTest.java    |   4 +-
 .../platform/PlatformGetInternalCachesTask.java    |   4 +-
 .../session/GridSessionCheckpointSelfTest.java     |   8 +-
 .../testframework/junits/GridAbstractTest.java     |   8 +-
 .../junits/GridTestBinaryMarshaller.java           |   8 +-
 .../ignite/testframework/junits/IgniteMock.java    |  11 +-
 .../testframework/junits/IgniteTestResources.java  |   5 +-
 39 files changed, 218 insertions(+), 124 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 ac955f613a4..04c37434ed8 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
@@ -49,7 +49,6 @@ import org.apache.ignite.internal.jdbc.thin.JdbcThinTcpIo;
 import org.apache.ignite.internal.util.lang.RunnableX;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgnitePredicate;
-import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContext;
 import org.apache.ignite.marshaller.jdk.JdkMarshaller;
 import org.apache.ignite.testframework.GridStringLogger;
@@ -2233,7 +2232,7 @@ public class JdbcThinConnectionSelfTest extends 
JdbcThinAbstractSelfTest {
 
         marsh.setContext(getFakeMarshallerCtx());
 
-        BinaryContext ctx = new BinaryContext(new IgniteConfiguration(), new 
NullLogger());
+        BinaryContext ctx = U.emptyBinaryContext();
 
         ctx.configure(marsh);
         ctx.registerUserTypesSchema();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java
index b5269f4a11d..fef7e7d746a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java
@@ -103,7 +103,7 @@ class BinaryArray implements BinaryObjectEx, 
Externalizable, Comparable<BinaryAr
 
     /** {@inheritDoc} */
     @Override public <T> T deserialize(ClassLoader ldr) throws 
BinaryObjectException {
-        ClassLoader resolveLdr = ldr == null ? 
ctx.configuration().getClassLoader() : ldr;
+        ClassLoader resolveLdr = ldr == null ? ctx.classLoader() : ldr;
 
         if (ldr != null)
             GridBinaryMarshaller.USE_CACHE.set(Boolean.FALSE);
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 6cebcf0b168..74a0df8daa7 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
@@ -60,11 +60,9 @@ import org.apache.ignite.binary.BinaryReflectiveSerializer;
 import org.apache.ignite.binary.BinarySerializer;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.binary.BinaryTypeConfiguration;
-import org.apache.ignite.cache.CacheKeyConfiguration;
 import org.apache.ignite.cache.affinity.AffinityKey;
 import org.apache.ignite.cache.affinity.AffinityKeyMapped;
 import org.apache.ignite.configuration.BinaryConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.DuplicateTypeIdException;
 import org.apache.ignite.internal.UnregisteredBinaryTypeException;
 import org.apache.ignite.internal.UnregisteredClassException;
@@ -79,8 +77,8 @@ import 
org.apache.ignite.internal.processors.platform.websession.PlatformDotNetS
 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.F;
 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;
@@ -161,14 +159,20 @@ public class BinaryContext {
     /** */
     private BinaryMetadataHandler metaHnd;
 
+    /** Node name. */
+    private final @Nullable String igniteInstanceName;
+
+    /** Class loader. */
+    private final @Nullable ClassLoader clsLdr;
+
     /** Actual marshaller. */
     private BinaryMarshaller marsh;
 
     /** */
     private MarshallerContext marshCtx;
 
-    /** */
-    private IgniteConfiguration igniteCfg;
+    /** Binary configuration. */
+    private final @Nullable BinaryConfiguration bcfg;
 
     /** Logger. */
     private IgniteLogger log;
@@ -183,26 +187,45 @@ public class BinaryContext {
     private volatile Map<Integer, BinarySchemaRegistry> schemas;
 
     /**
-     * @param igniteCfg Ignite configuration.
+     * @param log Logger
+     */
+    public BinaryContext(IgniteLogger log) {
+        this(BinaryNoopMetadataHandler.instance(), null, null, null, log);
+    }
+
+    /**
+     * @param metaHnd Meta data handler.
      * @param log Logger.
      */
-    public BinaryContext(IgniteConfiguration igniteCfg, IgniteLogger log) {
-        this(BinaryNoopMetadataHandler.instance(), igniteCfg, log);
+    public BinaryContext(
+        BinaryMetadataHandler metaHnd,
+        IgniteLogger log
+    ) {
+        this(metaHnd, null, null, null, log);
     }
 
     /**
      * @param metaHnd Meta data handler.
-     * @param igniteCfg Ignite configuration.
+     * @param igniteInstanceName Ignite instance name.
+     * @param clsLdr Class loader.
+     * @param bcfg Binary configuration.
      * @param log Logger.
      */
-    public BinaryContext(BinaryMetadataHandler metaHnd, IgniteConfiguration 
igniteCfg, IgniteLogger log) {
+    public BinaryContext(
+        BinaryMetadataHandler metaHnd,
+        @Nullable String igniteInstanceName,
+        @Nullable ClassLoader clsLdr,
+        @Nullable BinaryConfiguration bcfg,
+        IgniteLogger log
+    ) {
         assert metaHnd != null;
-        assert igniteCfg != null;
 
-        MarshallerUtils.setNodeName(optmMarsh, 
igniteCfg.getIgniteInstanceName());
+        MarshallerUtils.setNodeName(optmMarsh, igniteInstanceName);
 
         this.metaHnd = metaHnd;
-        this.igniteCfg = igniteCfg;
+        this.igniteInstanceName = igniteInstanceName;
+        this.clsLdr = clsLdr;
+        this.bcfg = bcfg;
         this.log = log;
 
         colTypes.put(ArrayList.class, GridBinaryMarshaller.ARR_LIST);
@@ -325,10 +348,17 @@ public class BinaryContext {
     }
 
     /**
-     * @return Ignite configuration.
+     * @return Ignite instance name.
      */
-    public IgniteConfiguration configuration() {
-        return igniteCfg;
+    public String igniteInstanceName() {
+        return igniteInstanceName;
+    }
+
+    /**
+     * @return Class loader.
+     */
+    public ClassLoader classLoader() {
+        return clsLdr;
     }
 
     /**
@@ -336,15 +366,16 @@ public class BinaryContext {
      * @throws BinaryObjectException In case of error.
      */
     public void configure(BinaryMarshaller marsh) throws BinaryObjectException 
{
-        configure(marsh, null);
+        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) throws BinaryObjectException {
+    public void configure(BinaryMarshaller marsh, BinaryConfiguration 
binaryCfg, Map<String, String> affFlds) throws BinaryObjectException {
         if (marsh == null)
             return;
 
@@ -363,33 +394,30 @@ public class BinaryContext {
             binaryCfg.getNameMapper(),
             binaryCfg.getIdMapper(),
             binaryCfg.getSerializer(),
-            binaryCfg.getTypeConfigurations()
+            binaryCfg.getTypeConfigurations(),
+            affFlds
         );
 
         compactFooter = binaryCfg.isCompactFooter();
     }
 
     /**
+     * @param globalNameMapper Name mapper.
      * @param globalIdMapper ID mapper.
      * @param globalSerializer Serializer.
      * @param typeCfgs Type configurations.
+     * @param affFields Type to affinity fields mapping.
      * @throws BinaryObjectException In case of error.
      */
     private void configure(
         BinaryNameMapper globalNameMapper,
         BinaryIdMapper globalIdMapper,
         BinarySerializer globalSerializer,
-        Collection<BinaryTypeConfiguration> typeCfgs
+        Collection<BinaryTypeConfiguration> typeCfgs,
+        Map<String, String> affFields
     ) throws BinaryObjectException {
         TypeDescriptors descs = new TypeDescriptors();
 
-        Map<String, String> affFields = new HashMap<>();
-
-        if (!F.isEmpty(igniteCfg.getCacheKeyConfiguration())) {
-            for (CacheKeyConfiguration keyCfg : 
igniteCfg.getCacheKeyConfiguration())
-                affFields.put(keyCfg.getTypeName(), 
keyCfg.getAffinityKeyFieldName());
-        }
-
         if (typeCfgs != null) {
             for (BinaryTypeConfiguration typeCfg : typeCfgs) {
                 String clsName = typeCfg.getTypeName();
@@ -921,9 +949,7 @@ public class BinaryContext {
      * @return Default serializer.
      */
     private BinarySerializer defaultSerializer() {
-        BinaryConfiguration binCfg = igniteCfg.getBinaryConfiguration();
-
-        return binCfg != null ? binCfg.getSerializer() : null;
+        return bcfg != null ? bcfg.getSerializer() : null;
     }
 
     /**
@@ -1002,7 +1028,12 @@ public class BinaryContext {
         if (mapper != null)
             return mapper;
 
-        mapper = resolveMapper(clsName, igniteCfg.getBinaryConfiguration());
+        mapper = bcfg == null ? DFLT_MAPPER : resolveMapper(
+            clsName,
+            bcfg.getIdMapper(),
+            bcfg.getNameMapper(),
+            bcfg.getTypeConfigurations()
+        );
 
         BinaryInternalMapper prevMap = cls2Mappers.putIfAbsent(clsName, 
mapper);
 
@@ -1021,20 +1052,19 @@ public class BinaryContext {
 
     /**
      * @param clsName Type name.
-     * @param cfg Binary configuration.
+     * @param globalIdMapper Default id mapper.
+     * @param globalNameMapper Default name mapper.
+     * @param typeCfgs Type configurations.
      * @return Mapper according to configuration.
      */
-    private static BinaryInternalMapper resolveMapper(String clsName, 
BinaryConfiguration cfg) {
+    private static BinaryInternalMapper resolveMapper(
+        String clsName,
+        BinaryIdMapper globalIdMapper,
+        BinaryNameMapper globalNameMapper,
+        Collection<BinaryTypeConfiguration> typeCfgs
+    ) {
         assert clsName != null;
 
-        if (cfg == null)
-            return DFLT_MAPPER;
-
-        BinaryIdMapper globalIdMapper = cfg.getIdMapper();
-        BinaryNameMapper globalNameMapper = cfg.getNameMapper();
-
-        Collection<BinaryTypeConfiguration> typeCfgs = 
cfg.getTypeConfigurations();
-
         if (typeCfgs != null) {
             for (BinaryTypeConfiguration typeCfg : typeCfgs) {
                 String typeCfgName = typeCfg.getTypeName();
@@ -1163,7 +1193,7 @@ public class BinaryContext {
         Class<?> cls = null;
 
         try {
-            cls = U.resolveClassLoader(configuration()).loadClass(clsName);
+            cls = U.resolveClassLoader(null, classLoader()).loadClass(clsName);
         }
         catch (ClassNotFoundException | NoClassDefFoundError ignored) {
             // No-op.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
index 88db71fbea4..4d69956edff 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
@@ -173,7 +173,7 @@ class BinaryEnumObjectImpl implements BinaryObjectEx, 
Externalizable, CacheObjec
 
     /** {@inheritDoc} */
     @Override public <T> T deserialize(@Nullable ClassLoader ldr) throws 
BinaryObjectException {
-        ClassLoader resolveLdr = ldr == null ? 
ctx.configuration().getClassLoader() : ldr;
+        ClassLoader resolveLdr = ldr == null ? ctx.classLoader() : ldr;
 
         if (ldr != null)
             GridBinaryMarshaller.USE_CACHE.set(Boolean.FALSE);
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 21251db8572..dd5336d2fa2 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
@@ -25,6 +25,7 @@ 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,7 +75,7 @@ public class BinaryMarshaller extends 
AbstractNodeNameAwareMarshaller {
      * @param ctx Binary context.
      */
     public void setBinaryContext(BinaryContext ctx, IgniteConfiguration cfg) {
-        ctx.configure(this, cfg != null ? cfg.getBinaryConfiguration() : null);
+        ctx.configure(this, cfg != null ? cfg.getBinaryConfiguration() : null, 
CU.affinityFields(cfg));
 
         impl = new GridBinaryMarshaller(ctx);
     }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
index cb66242cdfb..5cbd148c31b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
@@ -873,7 +873,7 @@ final class BinaryObjectImpl extends BinaryObjectExImpl 
implements Externalizabl
      */
     private Object deserializeValue(@Nullable CacheObjectValueContext coCtx) {
         BinaryReaderEx reader = reader(null, coCtx != null ?
-            coCtx.kernalContext().config().getClassLoader() : 
ctx.configuration().getClassLoader(), true);
+            coCtx.kernalContext().config().getClassLoader() : 
ctx.classLoader(), true);
 
         Object obj0 = reader.deserialize();
 
@@ -906,7 +906,7 @@ final class BinaryObjectImpl extends BinaryObjectExImpl 
implements Externalizabl
     private BinaryReaderEx reader(@Nullable BinaryReaderHandles rCtx, 
@Nullable ClassLoader ldr,
         boolean forUnmarshal) {
         if (ldr == null)
-            ldr = ctx.configuration().getClassLoader();
+            ldr = ctx.classLoader();
 
         return BinaryUtils.reader(ctx,
             BinaryStreams.inputStream(arr, start),
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
index 57be2a50128..40ff9130c45 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
@@ -531,7 +531,7 @@ class BinaryObjectOffheapImpl extends BinaryObjectExImpl 
implements Externalizab
      * @return Reader.
      */
     private BinaryReaderEx reader(@Nullable BinaryReaderHandles rCtx, boolean 
forUnmarshal) {
-        return reader(rCtx, ctx.configuration().getClassLoader(), 
forUnmarshal);
+        return reader(rCtx, ctx.classLoader(), forUnmarshal);
     }
 
     /**
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
index 7e8605ae4c1..025e33eb52f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
@@ -1701,7 +1701,7 @@ class BinaryReaderExImpl implements BinaryReaderEx {
 
     /** {@inheritDoc} */
     @Override public @Nullable Object deserialize() throws 
BinaryObjectException {
-        String newName = ctx.configuration().getIgniteInstanceName();
+        String newName = ctx.igniteInstanceName();
         String oldName = IgniteUtils.setCurrentIgniteName(newName);
 
         try {
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 40efeb33eca..5b185110b69 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
@@ -1835,7 +1835,7 @@ public class BinaryUtils {
         ByteArrayInputStream input = new ByteArrayInputStream(in.array(), 
in.position(), len);
 
         try {
-            return ctx.optimizedMarsh().unmarshal(input, 
U.resolveClassLoader(clsLdr, ctx.configuration()));
+            return ctx.optimizedMarsh().unmarshal(input, 
U.resolveClassLoader(clsLdr, ctx.classLoader()));
         }
         catch (IgniteCheckedException e) {
             throw new BinaryObjectException("Failed to unmarshal object with 
optimized marshaller", e);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
index 7c2dcc5d787..9bb268c3ccc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
@@ -130,7 +130,7 @@ class BinaryWriterExImpl implements BinaryWriterEx {
      * @throws org.apache.ignite.binary.BinaryObjectException In case of error.
      */
     void marshal(Object obj, boolean enableReplace) throws 
BinaryObjectException {
-        String newName = ctx.configuration().getIgniteInstanceName();
+        String newName = ctx.igniteInstanceName();
         String oldName = IgniteUtils.setCurrentIgniteName(newName);
 
         try {
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
index 6831ea27dde..23bd32b6d83 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
@@ -57,7 +57,7 @@ class BinaryBuilderEnum implements 
BinaryBuilderSerializationAware {
             Class cls;
 
             try {
-                cls = U.forName(reader.readString(), 
reader.binaryContext().configuration().getClassLoader());
+                cls = U.forName(reader.readString(), 
reader.binaryContext().classLoader());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
index d722a846255..6bbcf3b82a6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
@@ -69,7 +69,7 @@ class BinaryBuilderReader implements BinaryPositionReadable {
 
         reader = BinaryUtils.reader(ctx,
             BinaryStreams.inputStream(arr, pos),
-            ctx.configuration().getClassLoader(),
+            ctx.classLoader(),
             false);
 
         objMap = new HashMap<>();
@@ -491,7 +491,7 @@ class BinaryBuilderReader implements BinaryPositionReadable 
{
             case GridBinaryMarshaller.OPTM_MARSH: {
                 final BinaryInputStream bin = BinaryStreams.inputStream(arr, 
pos + 1);
 
-                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
U.resolveClassLoader(ctx.configuration()));
+                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
U.resolveClassLoader(null, ctx.classLoader()));
 
                 return obj;
             }
@@ -843,7 +843,7 @@ class BinaryBuilderReader implements BinaryPositionReadable 
{
             case GridBinaryMarshaller.OPTM_MARSH: {
                 final BinaryInputStream bin = BinaryStreams.inputStream(arr, 
pos);
 
-                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
U.resolveClassLoader(ctx.configuration()));
+                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
U.resolveClassLoader(null, ctx.classLoader()));
 
                 pos = bin.position();
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
index 4dcf30fcb78..f966abca5bf 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
@@ -50,7 +50,7 @@ class BinaryEnumArrayLazyValue extends 
BinaryAbstractLazyValue {
             Class cls;
 
             try {
-                cls = U.forName(reader.readString(), 
reader.binaryContext().configuration().getClassLoader());
+                cls = U.forName(reader.readString(), 
reader.binaryContext().classLoader());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
index 335b9129f6f..ebdf96c04d6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
@@ -49,7 +49,7 @@ class BinaryObjectArrayLazyValue extends 
BinaryAbstractLazyValue {
             Class cls;
 
             try {
-                cls = U.forName(reader.readString(), 
reader.binaryContext().configuration().getClassLoader());
+                cls = U.forName(reader.readString(), 
reader.binaryContext().classLoader());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
index 83e3d36816d..25e089b2f59 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
@@ -147,7 +147,7 @@ class BinaryObjectBuilderImpl implements 
BinaryObjectBuilder {
             Class cls;
 
             try {
-                cls = U.forName(clsNameToWrite, 
ctx.configuration().getClassLoader());
+                cls = U.forName(clsNameToWrite, ctx.classLoader());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsNameToWrite, e);
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 54fd2c7903e..e95f8929819 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,12 @@
 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.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContext;
 
@@ -97,23 +97,19 @@ class ClientBinaryMarshaller {
 
     /** Create new marshaller implementation. */
     private GridBinaryMarshaller createImpl(BinaryConfiguration binCfg) {
-        IgniteConfiguration igniteCfg = new IgniteConfiguration();
-
         if (binCfg == null) {
             binCfg = new BinaryConfiguration();
 
             binCfg.setCompactFooter(false);
         }
 
-        igniteCfg.setBinaryConfiguration(binCfg);
-
-        BinaryContext ctx = new BinaryContext(metaHnd, igniteCfg, 
NullLogger.INSTANCE);
+        BinaryContext ctx = new BinaryContext(metaHnd, null, null, binCfg, 
NullLogger.INSTANCE);
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
         marsh.setContext(marshCtx);
 
-        ctx.configure(marsh, binCfg);
+        ctx.configure(marsh, binCfg, CU.affinityFields(null));
 
         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 e964ac13ec1..1585819f2e0 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.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryReaderEx;
 import org.apache.ignite.internal.binary.BinaryUtils;
@@ -840,7 +839,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 = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), new IgniteConfiguration(), 
null);
+        BinaryContext ctx = U.emptyBinaryContext();
 
         try (BinaryWriterEx writer = BinaryUtils.writer(ctx, 
BinaryStreams.outputStream(32), null)) {
             ProtocolContext protocolCtx = 
protocolContextFromVersion(proposedVer);
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 b2ae2253864..c804ff05845 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,7 +75,6 @@ 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;
@@ -121,6 +120,7 @@ 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;
@@ -296,7 +296,7 @@ public class JdbcThinConnection implements Connection {
         netTimeout = connProps.getConnectionTimeout();
         qryTimeout = connProps.getQueryTimeout();
         maintenanceExecutor = Executors.newScheduledThreadPool(2,
-            new 
IgniteThreadFactory(ctx.configuration().getIgniteInstanceName(), 
"jdbc-maintenance"));
+            new IgniteThreadFactory(ctx.igniteInstanceName(), 
"jdbc-maintenance"));
 
         schema = JdbcUtils.normalizeSchema(connProps.getSchema());
 
@@ -325,9 +325,9 @@ public class JdbcThinConnection implements Connection {
 
         BinaryConfiguration binCfg = new 
BinaryConfiguration().setCompactFooter(true);
 
-        BinaryContext ctx = new BinaryContext(metaHnd, new 
IgniteConfiguration(), new NullLogger());
+        BinaryContext ctx = new BinaryContext(metaHnd, NullLogger.INSTANCE);
 
-        ctx.configure(marsh, binCfg);
+        ctx.configure(marsh, binCfg, CU.affinityFields(null));
 
         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 328f0f5e3f2..7d079586c6a 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
@@ -36,7 +36,6 @@ import java.util.stream.Collectors;
 import javax.cache.configuration.Factory;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.cache.query.QueryCancelledException;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.MarshallerContextImpl;
 import org.apache.ignite.internal.ThinProtocolFeature;
 import org.apache.ignite.internal.binary.BinaryContext;
@@ -269,7 +268,7 @@ public class JdbcThinTcpIo {
      * @throws SQLException On connection reject.
      */
     private HandshakeResult handshake(ClientListenerProtocolVersion ver) 
throws IOException, SQLException {
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), new IgniteConfiguration(), 
null);
+        BinaryContext ctx = U.emptyBinaryContext();
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index e133c0df724..58dba32905a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -2175,6 +2175,22 @@ public class GridCacheUtils {
         return strategies;
     }
 
+    /**
+     * @param cfg Ignite configuration.
+     * @return Type name to affinity key field name mapping.
+     */
+    public static Map<String, String> affinityFields(@Nullable 
IgniteConfiguration cfg) {
+        Map<String, String> affFields = new HashMap<>();
+
+        if (cfg == null || F.isEmpty(cfg.getCacheKeyConfiguration()))
+            return affFields;
+
+        for (CacheKeyConfiguration keyCfg : cfg.getCacheKeyConfiguration())
+            affFields.put(keyCfg.getTypeName(), 
keyCfg.getAffinityKeyFieldName());
+
+        return affFields;
+    }
+
     /**
      *
      */
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 5374697246d..4a5bbd4892f 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
@@ -278,9 +278,15 @@ public class CacheObjectBinaryProcessorImpl extends 
GridProcessorAdapter impleme
             }
         };
 
-        binaryCtx = useTestBinaryCtx ?
-            new TestBinaryContext(metaHnd, ctx.config(), 
ctx.log(BinaryContext.class)) :
-            new BinaryContext(metaHnd, ctx.config(), 
ctx.log(BinaryContext.class));
+        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)
+            );
 
         transport = new BinaryMetadataTransport(metadataLocCache, 
metadataFileStore, binaryCtx, ctx, log);
 
@@ -1633,12 +1639,12 @@ public class CacheObjectBinaryProcessorImpl extends 
GridProcessorAdapter impleme
 
         /**
          * @param metaHnd Meta handler.
-         * @param igniteCfg Ignite config.
+         * @param cfg Ignite configuration.
          * @param log Logger.
          */
-        public TestBinaryContext(BinaryMetadataHandler metaHnd, 
IgniteConfiguration igniteCfg,
+        public TestBinaryContext(BinaryMetadataHandler metaHnd, 
IgniteConfiguration cfg,
             IgniteLogger log) {
-            super(metaHnd, igniteCfg, log);
+            super(metaHnd, cfg.getIgniteInstanceName(), cfg.getClassLoader(), 
cfg.getBinaryConfiguration(), 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 49497262ac1..ee1a981e488 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
@@ -23,7 +23,6 @@ import java.util.function.Predicate;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.configuration.ClientConnectorConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.ThinClientConfiguration;
 import org.apache.ignite.failure.FailureContext;
 import org.apache.ignite.failure.FailureType;
@@ -357,7 +356,7 @@ public class ClientListenerNioListener extends 
GridNioServerListenerAdapter<Clie
      * @param msg Message bytes.
      */
     private void onHandshake(GridNioSession ses, ClientMessage msg) {
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), new IgniteConfiguration(), 
null);
+        BinaryContext ctx = U.emptyBinaryContext();
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
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 624ef6eb4f4..2603203cec9 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
@@ -42,7 +42,6 @@ import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryRawReader;
 import org.apache.ignite.binary.BinaryRawWriter;
 import org.apache.ignite.cache.CachePeekMode;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.MarshallerContextImpl;
@@ -883,8 +882,7 @@ public class PlatformUtils {
      * @return Marshaller.
      */
     public static GridBinaryMarshaller marshaller() {
-        BinaryContext ctx =
-            new BinaryContext(new IgniteConfiguration(), new NullLogger());
+        BinaryContext ctx = new BinaryContext(NullLogger.INSTANCE);
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
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 4f86eb8023f..934e2873ad2 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
@@ -175,6 +175,8 @@ import 
org.apache.ignite.internal.IgniteFutureCancelledCheckedException;
 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.BinaryUtils;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
 import org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException;
 import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
@@ -219,6 +221,7 @@ import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteProductVersion;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.lifecycle.LifecycleAware;
+import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.logger.java.JavaLogger;
 import org.apache.ignite.marshaller.Marshaller;
 import org.apache.ignite.plugin.PluginProvider;
@@ -2047,14 +2050,23 @@ public abstract class IgniteUtils extends CommonUtils {
      * ClassLoader at IgniteConfiguration in case it is not null or
      * ClassLoader used to start Ignite.
      */
-    public static ClassLoader resolveClassLoader(ClassLoader ldr, 
IgniteConfiguration cfg) {
+    public static ClassLoader resolveClassLoader(@Nullable ClassLoader ldr, 
IgniteConfiguration cfg) {
         assert cfg != null;
 
-        return (ldr != null && ldr != gridClassLoader) ?
-            ldr :
-            cfg.getClassLoader() != null ?
-                cfg.getClassLoader() :
-                gridClassLoader;
+        return resolveClassLoader(ldr, cfg.getClassLoader());
+    }
+
+    /**
+     * @param ldr Custom class loader.
+     * @param cfgLdr Class loader from config.
+     * @return ClassLoader passed as param in case it is not null or cfgLdr  
in case it is not null or ClassLoader used to start Ignite.
+     */
+    public static ClassLoader resolveClassLoader(@Nullable ClassLoader ldr, 
@Nullable ClassLoader cfgLdr) {
+        return (ldr != null && ldr != gridClassLoader)
+            ? ldr
+            : cfgLdr != null
+                ? cfgLdr
+                : gridClassLoader;
     }
 
     /**
@@ -9810,6 +9822,11 @@ public abstract class IgniteUtils extends CommonUtils {
         return 
kctx.config().getTransactionConfiguration().isTxAwareQueriesEnabled();
     }
 
+    /** @return Empty binary context instance. */
+    public static BinaryContext emptyBinaryContext() {
+        return new BinaryContext(BinaryUtils.cachingMetadataHandler(), 
NullLogger.INSTANCE);
+    }
+
     /**
      * @param ctx {@link GridKernalContext}.
      * @return A warning message indicating excessive RAM usage or {@code 
null} if the RAM usage is within acceptable
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 abe926bdf23..83481a1145e 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
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.binary;
 
-import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 
@@ -30,7 +30,7 @@ public class BinaryContextPredefinedTypesTest extends 
GridCommonAbstractTest {
      */
     @Test
     public void testDefaultConstructor() {
-        BinaryContext binCtx = new BinaryContext(new IgniteConfiguration(), 
log);
+        BinaryContext binCtx = U.emptyBinaryContext();
 
         for (BinaryClassDescriptor desc : binCtx.predefinedTypes()) {
             if (!desc.isBinary())
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 43dfa4f1c4b..a18de6d3db6 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,8 +43,7 @@ public class BinaryFieldExtractionSelfTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     protected BinaryMarshaller createMarshaller() throws Exception {
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), new IgniteConfiguration(),
-            log());
+        BinaryContext ctx = U.emptyBinaryContext();
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
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 eca49bd53c3..2f9d34d248d 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
@@ -29,7 +29,6 @@ import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.F;
 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;
@@ -48,8 +47,7 @@ public abstract class BinaryFieldsAbstractSelfTest extends 
GridCommonAbstractTes
      * @throws Exception If failed.
      */
     protected BinaryMarshaller createMarshaller() throws Exception {
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), new IgniteConfiguration(),
-            new NullLogger());
+        BinaryContext ctx = U.emptyBinaryContext();
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
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 ebf80d30b28..011015c18b7 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
@@ -22,7 +22,7 @@ import org.apache.ignite.binary.BinaryField;
 import org.apache.ignite.binary.BinaryTypeConfiguration;
 import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
-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.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -47,7 +47,7 @@ public abstract class BinaryFooterOffsetsAbstractSelfTest 
extends GridCommonAbst
     @Override protected void beforeTest() throws Exception {
         super.beforeTest();
 
-        ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), new 
IgniteConfiguration(), new NullLogger());
+        ctx = U.emptyBinaryContext();
 
         marsh = new BinaryMarshaller();
 
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 c969690c889..b60a2de675e 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
@@ -4166,7 +4166,13 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
         });
         iCfg.setSystemViewExporterSpi(new JmxSystemViewExporterSpi());
 
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), iCfg, new NullLogger());
+        BinaryContext ctx = new BinaryContext(
+            BinaryUtils.cachingMetadataHandler(),
+            iCfg.getIgniteInstanceName(),
+            iCfg.getClassLoader(),
+            iCfg.getBinaryConfiguration(),
+            NullLogger.INSTANCE
+        );
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
@@ -4227,7 +4233,13 @@ public class BinaryMarshallerSelfTest extends 
AbstractBinaryArraysTest {
         });
         iCfg.setSystemViewExporterSpi(new JmxSystemViewExporterSpi());
 
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), iCfg, new NullLogger());
+        BinaryContext ctx = new BinaryContext(
+            BinaryUtils.cachingMetadataHandler(),
+            iCfg.getIgniteInstanceName(),
+            iCfg.getClassLoader(),
+            iCfg.getBinaryConfiguration(),
+            NullLogger.INSTANCE
+        );
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
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 964d8b8ad2f..51d5ee21952 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
@@ -28,8 +28,8 @@ import org.apache.ignite.binary.BinaryReader;
 import org.apache.ignite.binary.BinaryWriter;
 import org.apache.ignite.binary.Binarylizable;
 import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgnitePredicate;
-import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.marshaller.MarshallerContext;
 import org.apache.ignite.marshaller.jdk.JdkMarshaller;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -47,11 +47,9 @@ public class GridBinaryMarshallerCtxDisabledSelfTest extends 
GridCommonAbstractT
         BinaryMarshaller marsh = new BinaryMarshaller();
         marsh.setContext(new MarshallerContextWithNoStorage());
 
-        IgniteConfiguration cfg = new IgniteConfiguration();
+        BinaryContext ctx = U.emptyBinaryContext();
 
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), cfg, new NullLogger());
-
-        marsh.setBinaryContext(ctx, cfg);
+        marsh.setBinaryContext(ctx, 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 703c1ee5396..5d7de3c3b2a 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
@@ -674,7 +674,13 @@ public class GridBinaryWildcardsSelfTest extends 
GridCommonAbstractTest {
 
         iCfg.setBinaryConfiguration(bCfg);
 
-        BinaryContext ctx = new BinaryContext(iCfg, new NullLogger());
+        BinaryContext ctx = new BinaryContext(
+            BinaryNoopMetadataHandler.instance(),
+            iCfg.getIgniteInstanceName(),
+            iCfg.getClassLoader(),
+            bCfg,
+            NullLogger.INSTANCE
+        );
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
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 d9298b3ff20..420ee554f6c 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
@@ -27,7 +27,6 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 import org.apache.ignite.binary.BinaryObject;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.binary.builder.BinaryObjectBuilders;
 import 
org.apache.ignite.internal.binary.mutabletest.GridBinaryTestClasses.TestObjectAllTypes;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
@@ -78,7 +77,7 @@ public class RawBinaryObjectExtractorTest extends 
GridCommonAbstractTest {
 
     /** */
     public static BinaryContext createTestBinaryContext() {
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), new IgniteConfiguration(), 
null);
+        BinaryContext ctx = U.emptyBinaryContext();
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
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 460b059debd..c96b0458692 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
@@ -26,7 +26,7 @@ import 
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
 import org.apache.ignite.internal.managers.systemview.GridSystemViewManager;
 import org.apache.ignite.internal.managers.systemview.JmxSystemViewExporterSpi;
 import 
org.apache.ignite.internal.processors.cache.GridCacheEntryMemorySizeSelfTest;
-import org.apache.ignite.logger.NullLogger;
+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;
@@ -66,7 +66,7 @@ public class GridBinaryCacheEntryMemorySizeSelfTest extends 
GridCacheEntryMemory
 
         marsh.setContext(marshCtx);
 
-        BinaryContext pCtx = new BinaryContext(iCfg, new NullLogger());
+        BinaryContext pCtx = U.emptyBinaryContext();
 
         marsh.setBinaryContext(pCtx, iCfg);
 
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 33fbe309f28..dbbf10a84c9 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
@@ -27,7 +27,6 @@ import org.apache.ignite.compute.ComputeJob;
 import org.apache.ignite.compute.ComputeJobAdapter;
 import org.apache.ignite.compute.ComputeJobResult;
 import org.apache.ignite.compute.ComputeTaskAdapter;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.binary.BinaryUtils;
@@ -36,6 +35,7 @@ import 
org.apache.ignite.internal.binary.streams.BinaryStreams;
 import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
 import 
org.apache.ignite.internal.processors.platform.utils.PlatformConfigurationUtils;
 import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.resources.IgniteInstanceResource;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -69,7 +69,7 @@ public class PlatformGetInternalCachesTask extends 
ComputeTaskAdapter<Object, by
         @Override public byte[] execute() {
             IgniteEx ign = (IgniteEx)ignite;
 
-            BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), new IgniteConfiguration(), 
null);
+            BinaryContext ctx = U.emptyBinaryContext();
 
             try (BinaryWriterEx writer
                      = BinaryUtils.writer(ctx, 
BinaryStreams.outputStream(512), null)) {
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 90fa43d26b4..f14dd60f071 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
@@ -100,7 +100,13 @@ public class GridSessionCheckpointSelfTest extends 
GridSessionCheckpointAbstract
 
         BinaryMarshaller marsh = new BinaryMarshaller();
 
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), cfg, new NullLogger());
+        BinaryContext ctx = new BinaryContext(
+            BinaryUtils.cachingMetadataHandler(),
+            cfg.getIgniteInstanceName(),
+            cfg.getClassLoader(),
+            cfg.getBinaryConfiguration(),
+            NullLogger.INSTANCE
+        );
 
         marsh.setContext(new MarshallerContextTestImpl(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 1695538f97d..40de6532bc6 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
@@ -2024,7 +2024,13 @@ public abstract class GridAbstractTest extends 
JUnitAssertAware {
     protected BinaryMarshaller 
createStandaloneBinaryMarshaller(IgniteConfiguration cfg) throws 
IgniteCheckedException {
         BinaryMarshaller marsh = new BinaryMarshaller();
 
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), cfg, new NullLogger());
+        BinaryContext ctx = new BinaryContext(
+            BinaryUtils.cachingMetadataHandler(),
+            cfg.getIgniteInstanceName(),
+            cfg.getClassLoader(),
+            cfg.getBinaryConfiguration(),
+            NullLogger.INSTANCE
+        );
 
         marsh.setContext(new MarshallerContextTestImpl());
 
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 da1d31646a8..96b1d07a035 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
@@ -75,7 +75,13 @@ public class GridTestBinaryMarshaller {
                 }
             });
 
-        BinaryContext ctx = new 
BinaryContext(BinaryUtils.cachingMetadataHandler(), iCfg, new NullLogger());
+        BinaryContext ctx = new BinaryContext(
+            BinaryUtils.cachingMetadataHandler(),
+            iCfg.getIgniteInstanceName(),
+            iCfg.getClassLoader(),
+            iCfg.getBinaryConfiguration(),
+            NullLogger.INSTANCE
+        );
 
         MarshallerContextTestImpl marshCtx = new MarshallerContextTestImpl();
 
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 7a87fcd367e..0a0de30dfcb 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
@@ -74,6 +74,7 @@ import 
org.apache.ignite.internal.processors.cache.persistence.wal.reader.Standa
 import org.apache.ignite.internal.processors.cacheobject.NoOpBinary;
 import 
org.apache.ignite.internal.processors.subscription.GridInternalSubscriptionProcessor;
 import 
org.apache.ignite.internal.processors.tracing.configuration.NoopTracingConfigurationManager;
+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.IgnitePredicate;
@@ -442,13 +443,19 @@ public class IgniteMock implements IgniteEx {
 
         if (ctx == null) {
             /** {@inheritDoc} */
-            ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), 
configuration(), new NullLogger()) {
+            ctx = new BinaryContext(
+                BinaryUtils.cachingMetadataHandler(),
+                configuration().getIgniteInstanceName(),
+                configuration().getClassLoader(),
+                configuration().getBinaryConfiguration(),
+                new NullLogger()
+            ) {
                 @Override public int typeId(String typeName) {
                     return typeName.hashCode();
                 }
             };
 
-            ctx.configure((BinaryMarshaller)marshaller, 
configuration().getBinaryConfiguration());
+            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 f91c062cb87..d3d208348e5 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
@@ -28,12 +28,9 @@ import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.SensitiveInfoTestLoggerProxy;
-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.processors.resource.GridResourceProcessor;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.marshaller.Marshaller;
 import org.apache.ignite.marshaller.MarshallerContextTestImpl;
 import org.apache.ignite.resources.IgniteInstanceResource;
@@ -251,7 +248,7 @@ public class IgniteTestResources {
 
         marsh.setContext(new MarshallerContextTestImpl());
         marsh.setBinaryContext(
-            new BinaryContext(BinaryUtils.cachingMetadataHandler(), new 
IgniteConfiguration(), new NullLogger()),
+            U.emptyBinaryContext(),
             new IgniteConfiguration()
         );
 

Reply via email to