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

chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new a524fc64b4a MINOR: leverage preProcessParsedConfig within 
AbstractConfig (#19259)
a524fc64b4a is described below

commit a524fc64b4a50f50d6f4aff0501f30ec079ee9ed
Author: TaiJuWu <[email protected]>
AuthorDate: Mon Mar 24 01:19:20 2025 +0800

    MINOR: leverage preProcessParsedConfig within AbstractConfig (#19259)
    
    In past, we have `AbstractConfig#preProcessParsedConfig` but did not use
    its return value
    
    Reviewers: Ken Huang <[email protected]>, Chia-Ping Tsai
    <[email protected]>
---
 .../apache/kafka/common/config/AbstractConfig.java |  6 ++----
 .../kafka/common/config/AbstractConfigTest.java    | 24 +++++++++++++++++++++-
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git 
a/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java 
b/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java
index 8270f22b65c..9188b1687a8 100644
--- a/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java
+++ b/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java
@@ -109,8 +109,7 @@ public class AbstractConfig {
      */
     @SuppressWarnings({"this-escape"})
     public AbstractConfig(ConfigDef definition, Map<?, ?> originals, 
Map<String, ?> configProviderProps, boolean doLog) {
-        Map<String, Object> originalMap = 
Utils.castToStringObjectMap(originals);
-        preProcessParsedConfig(originalMap);
+        Map<String, Object> originalMap = 
preProcessParsedConfig(Collections.unmodifiableMap(Utils.castToStringObjectMap(originals)));
         this.originals = resolveConfigVariables(configProviderProps, 
originalMap);
         this.values = definition.parse(this.originals);
         Map<String, Object> configUpdates = 
postProcessParsedConfig(Collections.unmodifiableMap(this.values));
@@ -144,7 +143,6 @@ public class AbstractConfig {
      */
     public AbstractConfig(ConfigDef definition, Map<?, ?> originals, boolean 
doLog) {
         this(definition, originals, Collections.emptyMap(), doLog);
-
     }
 
     /**
@@ -155,7 +153,7 @@ public class AbstractConfig {
      * @return a map of updates that should be applied to the configuration 
(will be validated to prevent bad updates)
      */
     protected Map<String, Object> preProcessParsedConfig(Map<String, Object> 
parsedValues) {
-        return Map.of();
+        return parsedValues;
     }
 
     /**
diff --git 
a/clients/src/test/java/org/apache/kafka/common/config/AbstractConfigTest.java 
b/clients/src/test/java/org/apache/kafka/common/config/AbstractConfigTest.java
index 31ffdfb7117..8669156d7c3 100644
--- 
a/clients/src/test/java/org/apache/kafka/common/config/AbstractConfigTest.java
+++ 
b/clients/src/test/java/org/apache/kafka/common/config/AbstractConfigTest.java
@@ -114,6 +114,13 @@ public class AbstractConfigTest {
         assertEquals(expected, originalsWithPrefix);
     }
 
+    @Test
+    public void testPreprocessConfig() {
+        Properties props = new Properties();
+        TestConfig config = new TestConfig(props);
+        assertEquals("success", config.get("preprocess"));
+    }
+
     @Test
     public void testValuesWithPrefixOverride() {
         String prefix = "prefix.";
@@ -702,17 +709,32 @@ public class AbstractConfigTest {
 
         public static final String METRIC_REPORTER_CLASSES_CONFIG = 
"metric.reporters";
         private static final String METRIC_REPORTER_CLASSES_DOC = "A list of 
classes to use as metrics reporters.";
+        public static final String PREPROCESSOR_CONFIG = "preprocess";
+        private static final String PREPROCESSOR_CONFIG_DOC = "Override from 
preprocess step.";
+
         static {
             CONFIG = new ConfigDef().define(METRIC_REPORTER_CLASSES_CONFIG,
                                             Type.LIST,
                                             "",
                                             Importance.LOW,
-                                            METRIC_REPORTER_CLASSES_DOC);
+                                            METRIC_REPORTER_CLASSES_DOC)
+                                    .define(PREPROCESSOR_CONFIG,
+                                            Type.STRING,
+                                            "",
+                                            Importance.LOW,
+                                            PREPROCESSOR_CONFIG_DOC);
         }
 
         public TestConfig(Map<?, ?> props) {
             super(CONFIG, props);
         }
+
+        @Override
+        protected Map<String, Object> preProcessParsedConfig(Map<String, 
Object> parsedValues) {
+            Map<String, Object> ret = new HashMap<>(parsedValues);
+            ret.put("preprocess", "success");
+            return ret;
+        }
     }
 
     public static class ConfiguredFakeMetricsReporter extends 
FakeMetricsReporter {

Reply via email to