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

nizhikov pushed a commit to branch IGNITE-26044-bcfg
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit feb5b70e1e7f36dbf507668dc3074c3a6069950d
Author: Nikolay Izhikov <nizhi...@apache.org>
AuthorDate: Mon Jul 28 21:10:48 2025 +0300

    IGNITE-26044 Remove BinaryConfiguration dependency from BinaryContext
---
 .../ignite/internal/binary/BinaryContext.java      |  49 +++------
 .../binary/CacheObjectBinaryProcessorImpl.java     |  83 ----------------
 .../apache/ignite/internal/util/IgniteUtils.java   | 110 ++++++++++++++++++++-
 .../ignite/testframework/junits/IgniteMock.java    |  15 ++-
 ...aryMetadataConcurrentUpdateWithIndexesTest.java |   8 +-
 5 files changed, 134 insertions(+), 131 deletions(-)

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 40b2dc6fbb8..5cd5a23fd88 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
@@ -63,7 +63,6 @@ import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.binary.BinaryTypeConfiguration;
 import org.apache.ignite.cache.affinity.AffinityKey;
 import org.apache.ignite.cache.affinity.AffinityKeyMapped;
-import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.internal.DuplicateTypeIdException;
 import org.apache.ignite.internal.UnregisteredBinaryTypeException;
 import org.apache.ignite.internal.UnregisteredClassException;
@@ -195,7 +194,6 @@ public class BinaryContext {
      * @param marsh Binary marshaller.
      * @param igniteInstanceName Ignite instance name.
      * @param clsLdr Class loader.
-     * @param bcfg Binary configuration.
      * @param affFlds Affinity fields.
      * @param log Logger.
      */
@@ -204,7 +202,6 @@ public class BinaryContext {
         @Nullable BinaryMarshaller marsh,
         @Nullable String igniteInstanceName,
         @Nullable ClassLoader clsLdr,
-        @Nullable BinaryConfiguration bcfg,
         @Nullable BinarySerializer dfltSerializer,
         @Nullable BinaryIdMapper idMapper,
         @Nullable BinaryNameMapper nameMapper,
@@ -314,7 +311,17 @@ public class BinaryContext {
                 "default constructor is not possible");
         }
 
-        configure(marsh, bcfg, affFlds);
+        if (marsh != null) {
+            this.marsh = marsh;
+
+            marshCtx = marsh.getContext();
+
+            assert marshCtx != null;
+
+            optmMarsh.setContext(marshCtx);
+
+            configure(nameMapper, idMapper, dfltSerializer, typeCfgs, affFlds);
+        }
     }
 
     /**
@@ -366,40 +373,6 @@ public class BinaryContext {
         return clsLdr;
     }
 
-    /**
-     * @param marsh Binary marshaller.
-     * @param binaryCfg Binary configuration.
-     * @param affFlds Type name to affinity key field name mapping.
-     * @throws BinaryObjectException In case of error.
-     */
-    private void configure(
-        BinaryMarshaller marsh,
-        BinaryConfiguration binaryCfg,
-        Map<String, String> affFlds
-    ) throws BinaryObjectException {
-        if (marsh == null)
-            return;
-
-        this.marsh = marsh;
-
-        marshCtx = marsh.getContext();
-
-        if (binaryCfg == null)
-            binaryCfg = new BinaryConfiguration();
-
-        assert marshCtx != null;
-
-        optmMarsh.setContext(marshCtx);
-
-        configure(
-            binaryCfg.getNameMapper(),
-            binaryCfg.getIdMapper(),
-            binaryCfg.getSerializer(),
-            binaryCfg.getTypeConfigurations(),
-            affFlds
-        );
-    }
-
     /**
      * @param globalNameMapper Name mapper.
      * @param globalIdMapper ID mapper.
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 3eec434fbe1..b6295d5cd9c 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
@@ -21,12 +21,10 @@ import java.io.File;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.UUID;
@@ -38,7 +36,6 @@ import org.apache.ignite.IgniteBinary;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteClientDisconnectedException;
 import org.apache.ignite.IgniteException;
-import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.binary.BinaryField;
 import org.apache.ignite.binary.BinaryObject;
@@ -50,7 +47,6 @@ import org.apache.ignite.cache.affinity.AffinityKeyMapper;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
 import org.apache.ignite.internal.IgniteInternalFuture;
@@ -1618,83 +1614,4 @@ public class CacheObjectBinaryProcessorImpl extends 
GridProcessorAdapter impleme
 
         return metadata(typeId);
     }
-
-    /** */
-    @SuppressWarnings("PublicInnerClass")
-    public static class TestBinaryContext extends BinaryContext {
-        /** */
-        private List<TestBinaryContextListener> listeners;
-
-        /**
-         * @param metaHnd Meta handler.
-         * @param cfg Ignite configuration.
-         * @param log Logger.
-         */
-        public TestBinaryContext(BinaryMetadataHandler metaHnd, 
BinaryMarshaller marsh, IgniteConfiguration cfg, IgniteLogger log) {
-            super(
-                metaHnd,
-                marsh,
-                cfg.getIgniteInstanceName(),
-                cfg.getClassLoader(),
-                cfg.getBinaryConfiguration(),
-                CU.affinityFields(cfg),
-                log
-            );
-        }
-
-        /** {@inheritDoc} */
-        @Nullable @Override public BinaryType metadata(int typeId) throws 
BinaryObjectException {
-            BinaryType metadata = super.metadata(typeId);
-
-            if (listeners != null) {
-                for (TestBinaryContextListener listener : listeners)
-                    listener.onAfterMetadataRequest(typeId, metadata);
-            }
-
-            return metadata;
-        }
-
-        /** {@inheritDoc} */
-        @Override public void updateMetadata(int typeId, BinaryMetadata meta,
-            boolean failIfUnregistered) throws BinaryObjectException {
-            if (listeners != null) {
-                for (TestBinaryContextListener listener : listeners)
-                    listener.onBeforeMetadataUpdate(typeId, meta);
-            }
-
-            super.updateMetadata(typeId, meta, failIfUnregistered);
-        }
-
-        /** */
-        public interface TestBinaryContextListener {
-            /**
-             * @param typeId Type id.
-             * @param type Type.
-             */
-            void onAfterMetadataRequest(int typeId, BinaryType type);
-
-            /**
-             * @param typeId Type id.
-             * @param metadata Metadata.
-             */
-            void onBeforeMetadataUpdate(int typeId, BinaryMetadata metadata);
-        }
-
-        /**
-         * @param lsnr Listener.
-         */
-        public void addListener(TestBinaryContextListener lsnr) {
-            if (listeners == null)
-                listeners = new ArrayList<>();
-
-            if (!listeners.contains(lsnr))
-                listeners.add(lsnr);
-        }
-
-        /** */
-        public void clearAllListener() {
-            if (listeners != null)
-                listeners.clear();
-        }
-    }
 }
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 01fe353bd0b..75d94d2123f 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
@@ -155,6 +155,12 @@ import org.apache.ignite.IgniteIllegalStateException;
 import org.apache.ignite.IgniteInterruptedException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.IgniteSystemProperties;
+import org.apache.ignite.binary.BinaryIdMapper;
+import org.apache.ignite.binary.BinaryNameMapper;
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinarySerializer;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.binary.BinaryTypeConfiguration;
 import org.apache.ignite.cluster.ClusterGroupEmptyException;
 import org.apache.ignite.cluster.ClusterMetrics;
 import org.apache.ignite.cluster.ClusterNode;
@@ -164,6 +170,7 @@ import 
org.apache.ignite.compute.ComputeTaskCancelledException;
 import org.apache.ignite.compute.ComputeTaskName;
 import org.apache.ignite.compute.ComputeTaskTimeoutException;
 import org.apache.ignite.configuration.AddressResolver;
+import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -177,6 +184,7 @@ 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.BinaryMetadata;
 import org.apache.ignite.internal.binary.BinaryMetadataHandler;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
@@ -194,7 +202,6 @@ 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;
@@ -9852,15 +9859,33 @@ public abstract class IgniteUtils extends CommonUtils {
         IgniteConfiguration cfg,
         IgniteLogger log
     ) {
+        BinaryConfiguration bcfg = cfg.getBinaryConfiguration() == null ? new 
BinaryConfiguration() : cfg.getBinaryConfiguration();
+
         return useTestBinaryCtx
-            ? new TestBinaryContext(metaHnd, marsh, cfg, log)
+            ? new TestBinaryContext(
+                metaHnd,
+                marsh,
+                cfg.getIgniteInstanceName(),
+                cfg.getClassLoader(),
+                bcfg.getSerializer(),
+                bcfg.getIdMapper(),
+                bcfg.getNameMapper(),
+                bcfg.getTypeConfigurations(),
+                CU.affinityFields(cfg),
+                bcfg.isCompactFooter(),
+                log
+            )
             : new BinaryContext(
                 metaHnd,
                 marsh,
                 cfg.getIgniteInstanceName(),
                 cfg.getClassLoader(),
-                cfg.getBinaryConfiguration(),
+                bcfg.getSerializer(),
+                bcfg.getIdMapper(),
+                bcfg.getNameMapper(),
+                bcfg.getTypeConfigurations(),
                 CU.affinityFields(cfg),
+                bcfg.isCompactFooter(),
                 log
             );
     }
@@ -9912,4 +9937,83 @@ public abstract class IgniteUtils extends CommonUtils {
 
         return null;
     }
+
+    /** */
+    @SuppressWarnings("PublicInnerClass")
+    public static class TestBinaryContext extends BinaryContext {
+        /** */
+        private List<TestBinaryContextListener> listeners;
+
+        /** */
+        public TestBinaryContext(
+            BinaryMetadataHandler metaHnd,
+            @Nullable BinaryMarshaller marsh,
+            @Nullable String igniteInstanceName,
+            @Nullable ClassLoader clsLdr,
+            @Nullable BinarySerializer dfltSerializer,
+            @Nullable BinaryIdMapper idMapper,
+            @Nullable BinaryNameMapper nameMapper,
+            @Nullable Collection<BinaryTypeConfiguration> typeCfgs,
+            Map<String, String> affFlds,
+            boolean compactFooter,
+            IgniteLogger log
+        ) {
+            super(metaHnd, marsh, igniteInstanceName, clsLdr, dfltSerializer, 
idMapper, nameMapper, typeCfgs, affFlds, compactFooter, log);
+        }
+
+
+        /** {@inheritDoc} */
+        @Nullable @Override public BinaryType metadata(int typeId) throws 
BinaryObjectException {
+            BinaryType metadata = super.metadata(typeId);
+
+            if (listeners != null) {
+                for (TestBinaryContextListener listener : listeners)
+                    listener.onAfterMetadataRequest(typeId, metadata);
+            }
+
+            return metadata;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void updateMetadata(int typeId, BinaryMetadata meta, 
boolean failIfUnregistered) throws BinaryObjectException {
+            if (listeners != null) {
+                for (TestBinaryContextListener listener : listeners)
+                    listener.onBeforeMetadataUpdate(typeId, meta);
+            }
+
+            super.updateMetadata(typeId, meta, failIfUnregistered);
+        }
+
+        /** */
+        public interface TestBinaryContextListener {
+            /**
+             * @param typeId Type id.
+             * @param type Type.
+             */
+            void onAfterMetadataRequest(int typeId, BinaryType type);
+
+            /**
+             * @param typeId Type id.
+             * @param metadata Metadata.
+             */
+            void onBeforeMetadataUpdate(int typeId, BinaryMetadata metadata);
+        }
+
+        /**
+         * @param lsnr Listener.
+         */
+        public void addListener(TestBinaryContextListener lsnr) {
+            if (listeners == null)
+                listeners = new ArrayList<>();
+
+            if (!listeners.contains(lsnr))
+                listeners.add(lsnr);
+        }
+
+        /** */
+        public void clearAllListener() {
+            if (listeners != null)
+                listeners.clear();
+        }
+    }
 }
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 b3cff2119d4..c26d84b1710 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
@@ -56,6 +56,7 @@ import org.apache.ignite.cache.affinity.Affinity;
 import org.apache.ignite.cluster.ClusterGroup;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.AtomicConfiguration;
+import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.CollectionConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -442,14 +443,22 @@ public class IgniteMock implements IgniteEx {
             return binaryMock;
 
         if (ctx == null) {
+            IgniteConfiguration cfg = configuration();
+
+            BinaryConfiguration bcfg = cfg.getBinaryConfiguration() == null ? 
new BinaryConfiguration() : cfg.getBinaryConfiguration();
+
             /** {@inheritDoc} */
             ctx = new BinaryContext(
                 BinaryUtils.cachingMetadataHandler(),
                 (BinaryMarshaller)marshaller,
-                configuration().getIgniteInstanceName(),
-                configuration().getClassLoader(),
-                configuration().getBinaryConfiguration(),
+                cfg.getIgniteInstanceName(),
+                cfg.getClassLoader(),
+                bcfg.getSerializer(),
+                bcfg.getIdMapper(),
+                bcfg.getNameMapper(),
+                bcfg.getTypeConfigurations(),
                 CU.affinityFields(configuration()),
+                bcfg.isCompactFooter(),
                 NullLogger.INSTANCE
             ) {
                 @Override public int typeId(String typeName) {
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 f0b2844e754..1a4403a307a 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
@@ -46,6 +46,8 @@ import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.binary.BinaryMetadata;
 import 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
 import 
org.apache.ignite.internal.processors.cache.binary.MetadataUpdateProposedMessage;
+import org.apache.ignite.internal.util.IgniteUtils.TestBinaryContext;
+import 
org.apache.ignite.internal.util.IgniteUtils.TestBinaryContext.TestBinaryContextListener;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.discovery.tcp.BlockTcpDiscoverySpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -146,11 +148,9 @@ public class BinaryMetadataConcurrentUpdateWithIndexesTest 
extends GridCommonAbs
 
         IgniteEx client0 = startClientGrid("client0");
 
-        CacheObjectBinaryProcessorImpl.TestBinaryContext clientCtx =
-            
(CacheObjectBinaryProcessorImpl.TestBinaryContext)((CacheObjectBinaryProcessorImpl)client0.context().
-                cacheObjects()).binaryContext();
+        TestBinaryContext clientCtx = 
(TestBinaryContext)((CacheObjectBinaryProcessorImpl)client0.context().cacheObjects()).binaryContext();
 
-        clientCtx.addListener(new 
CacheObjectBinaryProcessorImpl.TestBinaryContext.TestBinaryContextListener() {
+        clientCtx.addListener(new TestBinaryContextListener() {
             @Override public void onAfterMetadataRequest(int typeId, 
BinaryType type) {
                 if (syncMeta) {
                     try {

Reply via email to