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 813bbbf190a [MINOR] Move affinityFieldName to GridCacheUtils (#12241)
813bbbf190a is described below

commit 813bbbf190a711699238f715b88bc8ae815ecc42
Author: Nikolay <[email protected]>
AuthorDate: Fri Aug 1 15:19:14 2025 +0300

    [MINOR] Move affinityFieldName to GridCacheUtils (#12241)
---
 .../ignite/configuration/CacheConfiguration.java   |  4 +--
 .../ignite/internal/binary/BinaryContext.java      | 31 +++++++---------------
 .../internal/processors/cache/GridCacheUtils.java  | 17 ++++++++++++
 .../binary/CacheObjectBinaryProcessorImpl.java     |  2 +-
 .../apache/ignite/internal/util/IgniteUtils.java   | 19 ++++++++++++-
 .../ignite/testframework/junits/IgniteMock.java    |  1 +
 6 files changed, 49 insertions(+), 25 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index c033a533b8f..a35b230741d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -52,10 +52,10 @@ import 
org.apache.ignite.cache.query.annotations.QuerySqlFunction;
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.cache.store.CacheStoreSessionListener;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.binary.BinaryContext;
 import org.apache.ignite.internal.processors.query.QueryUtils;
 import org.apache.ignite.internal.util.typedef.F;
 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.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteExperimental;
@@ -2032,7 +2032,7 @@ public class CacheConfiguration<K, V> extends 
MutableConfiguration<K, V> {
                 qryEntities.add(newEntity);
 
             // Set key configuration if needed.
-            String affFieldName = BinaryContext.affinityFieldName(keyCls);
+            String affFieldName = CU.affinityFieldName(keyCls);
 
             if (affFieldName != null) {
                 CacheKeyConfiguration newKeyCfg = new 
CacheKeyConfiguration(newEntity.getKeyType(), affFieldName);
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 32bc5a1d0b6..4670e73f515 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
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.binary;
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -61,7 +60,6 @@ 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.affinity.AffinityKeyMapped;
 import org.apache.ignite.internal.DuplicateTypeIdException;
 import org.apache.ignite.internal.UnregisteredBinaryTypeException;
 import org.apache.ignite.internal.UnregisteredClassException;
@@ -141,6 +139,9 @@ public class BinaryContext {
     /** */
     private final Function<String, BinaryInternalMapper> mapperProvider;
 
+    /** */
+    private final Function<Class<?>, String> affFldNameProvider;
+
     /** Logger. */
     private final IgniteLogger log;
 
@@ -163,6 +164,7 @@ public class BinaryContext {
      * @param nameMapper Binary name mapper.
      * @param affFlds Affinity fields.
      * @param compactFooter Compact footer flag.
+     * @param affFldNameProvider Affinity field name provider function.
      * @param log Logger.
      */
     public BinaryContext(
@@ -176,6 +178,7 @@ public class BinaryContext {
         @Nullable Collection<BinaryTypeConfiguration> typeCfgs,
         Map<String, String> affFlds,
         boolean compactFooter,
+        Function<Class<?>, String> affFldNameProvider,
         IgniteLogger log
     ) {
         assert metaHnd != null;
@@ -193,6 +196,7 @@ public class BinaryContext {
             mapperProvider = clsName -> DFLT_MAPPER;
 
         this.compactFooter = compactFooter;
+        this.affFldNameProvider = affFldNameProvider;
 
         this.log = log;
 
@@ -371,7 +375,7 @@ public class BinaryContext {
                             Class<?> cls = U.classForName(clsName0, null);
 
                             if (cls != null)
-                                affField = affinityFieldName(cls);
+                                affField = affFldNameProvider.apply(cls);
                         }
 
                         descs.add(clsName0, mapper, serializer, identity, 
affField,
@@ -385,7 +389,7 @@ public class BinaryContext {
                         Class<?> cls = U.classForName(clsName, null);
 
                         if (cls != null)
-                            affField = affinityFieldName(cls);
+                            affField = affFldNameProvider.apply(cls);
                     }
 
                     descs.add(clsName, mapper, serializer, identity, affField,
@@ -658,7 +662,7 @@ public class BinaryContext {
             BinarySerializer serializer = serializerForClass(cls);
 
             // Firstly check annotations, then check in cache key 
configurations.
-            String affFieldName = affinityFieldName(cls);
+            String affFieldName = affFldNameProvider.apply(cls);
             if (affFieldName == null)
                 affFieldName = affKeyFieldNames.get(typeId);
 
@@ -785,7 +789,7 @@ public class BinaryContext {
 
         BinarySerializer serializer = serializerForClass(cls);
 
-        String affFieldName = affinityFieldName(cls);
+        String affFieldName = affFldNameProvider.apply(cls);
 
         return new BinaryClassDescriptor(this,
             cls,
@@ -1047,21 +1051,6 @@ public class BinaryContext {
         return mapper.typeName(clsName);
     }
 
-    /**
-     * @param cls Class to get affinity field for.
-     * @return Affinity field name or {@code null} if field name was not found.
-     */
-    public static String affinityFieldName(Class cls) {
-        for (; cls != Object.class && cls != null; cls = cls.getSuperclass()) {
-            for (Field f : cls.getDeclaredFields()) {
-                if (f.getAnnotation(AffinityKeyMapped.class) != null)
-                    return f.getName();
-            }
-        }
-
-        return null;
-    }
-
     /**
      * @param cls Class.
      * @param id Type ID.
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 58dba32905a..7280b2a5287 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
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache;
 
+import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -51,6 +52,7 @@ import org.apache.ignite.cache.CacheKeyConfiguration;
 import org.apache.ignite.cache.CachePartialUpdateException;
 import org.apache.ignite.cache.CacheServerNotFoundException;
 import org.apache.ignite.cache.QueryEntity;
+import org.apache.ignite.cache.affinity.AffinityKeyMapped;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.cache.store.CacheStoreSessionListener;
 import org.apache.ignite.cluster.ClusterNode;
@@ -2191,6 +2193,21 @@ public class GridCacheUtils {
         return affFields;
     }
 
+    /**
+     * @param cls Class to get affinity field for.
+     * @return Affinity field name or {@code null} if field name was not found.
+     */
+    public static String affinityFieldName(Class cls) {
+        for (; cls != Object.class && cls != null; cls = cls.getSuperclass()) {
+            for (Field f : cls.getDeclaredFields()) {
+                if (f.getAnnotation(AffinityKeyMapped.class) != null)
+                    return f.getName();
+            }
+        }
+
+        return null;
+    }
+
     /**
      *
      */
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 c6c121b3cdc..c7115af742d 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
@@ -119,9 +119,9 @@ import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_SKIP_CONFIGURATION
 import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_WAIT_SCHEMA_UPDATE;
 import static org.apache.ignite.IgniteSystemProperties.getBoolean;
 import static 
org.apache.ignite.internal.GridComponent.DiscoveryDataExchangeType.BINARY_PROC;
-import static 
org.apache.ignite.internal.binary.BinaryContext.affinityFieldName;
 import static org.apache.ignite.internal.binary.BinaryUtils.mergeMetadata;
 import static 
org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
+import static 
org.apache.ignite.internal.util.typedef.internal.CU.affinityFieldName;
 
 /**
  * Binary processor implementation.
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 359e59416d7..2b81740c28e 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
@@ -125,6 +125,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.function.Consumer;
+import java.util.function.Function;
 import java.util.jar.JarFile;
 import java.util.logging.ConsoleHandler;
 import java.util.logging.Handler;
@@ -9873,6 +9874,7 @@ public abstract class IgniteUtils extends CommonUtils {
                 bcfg.getTypeConfigurations(),
                 CU.affinityFields(cfg),
                 bcfg.isCompactFooter(),
+                CU::affinityFieldName,
                 log
             )
             : new BinaryContext(
@@ -9886,6 +9888,7 @@ public abstract class IgniteUtils extends CommonUtils {
                 bcfg.getTypeConfigurations(),
                 CU.affinityFields(cfg),
                 bcfg.isCompactFooter(),
+                CU::affinityFieldName,
                 log
             );
     }
@@ -9956,9 +9959,23 @@ public abstract class IgniteUtils extends CommonUtils {
             @Nullable Collection<BinaryTypeConfiguration> typeCfgs,
             Map<String, String> affFlds,
             boolean compactFooter,
+            Function<Class<?>, String> affFldNameProvider,
             IgniteLogger log
         ) {
-            super(metaHnd, marsh, igniteInstanceName, clsLdr, dfltSerializer, 
idMapper, nameMapper, typeCfgs, affFlds, compactFooter, log);
+            super(
+                metaHnd,
+                marsh,
+                igniteInstanceName,
+                clsLdr,
+                dfltSerializer,
+                idMapper,
+                nameMapper,
+                typeCfgs,
+                affFlds,
+                compactFooter,
+                affFldNameProvider,
+                log
+            );
         }
 
 
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 c26d84b1710..d7bdf1e2b21 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
@@ -459,6 +459,7 @@ public class IgniteMock implements IgniteEx {
                 bcfg.getTypeConfigurations(),
                 CU.affinityFields(configuration()),
                 bcfg.isCompactFooter(),
+                CU::affinityFieldName,
                 NullLogger.INSTANCE
             ) {
                 @Override public int typeId(String typeName) {

Reply via email to