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 5d8561656c5 KAFKA-20110 Fix generated doc and Javadoc for dynamic 
configs (#21384)
5d8561656c5 is described below

commit 5d8561656c56052473cca6d11e8fb75b55155065
Author: Maros Orsak <[email protected]>
AuthorDate: Thu Feb 12 06:51:32 2026 +0100

    KAFKA-20110 Fix generated doc and Javadoc for dynamic configs (#21384)
    
    This PR fixes a problem with a few broker properties. More can be found
    https://issues.apache.org/jira/browse/KAFKA-20110.
    
    Reviewers: Chia-Ping Tsai <[email protected]>
---
 core/src/main/scala/kafka/server/KafkaConfig.scala                | 6 +++++-
 .../src/main/java/org/apache/kafka/server/config/QuotaConfig.java | 2 +-
 .../java/org/apache/kafka/server/config/DynamicBrokerConfig.java  | 8 ++++++--
 .../main/java/org/apache/kafka/server/config/DynamicConfig.java   | 5 +++--
 4 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/core/src/main/scala/kafka/server/KafkaConfig.scala 
b/core/src/main/scala/kafka/server/KafkaConfig.scala
index 4df9c6fe960..d05ef90e6fb 100755
--- a/core/src/main/scala/kafka/server/KafkaConfig.scala
+++ b/core/src/main/scala/kafka/server/KafkaConfig.scala
@@ -56,7 +56,11 @@ import scala.jdk.OptionConverters.RichOptional
 object KafkaConfig {
 
   def main(args: Array[String]): Unit = {
-    System.out.println(configDef.toHtml(4, (config: String) => 
"brokerconfigs_" + config,
+    val combined = new ConfigDef(configDef)
+    // Broker quota configs are dynamic-only and not defined in 
AbstractKafkaConfig.CONFIG_DEF,
+    // so we need to add them explicitly here for the generated HTML 
documentation.
+    QuotaConfig.brokerQuotaConfigs().configKeys().forEach((_, v) => 
combined.define(v))
+    System.out.println(combined.toHtml(4, (config: String) => "brokerconfigs_" 
+ config,
       JDynamicBrokerConfig.dynamicConfigUpdateModes))
   }
 
diff --git 
a/server-common/src/main/java/org/apache/kafka/server/config/QuotaConfig.java 
b/server-common/src/main/java/org/apache/kafka/server/config/QuotaConfig.java
index 27a1c46bdad..ede737cb390 100644
--- 
a/server-common/src/main/java/org/apache/kafka/server/config/QuotaConfig.java
+++ 
b/server-common/src/main/java/org/apache/kafka/server/config/QuotaConfig.java
@@ -225,7 +225,7 @@ public class QuotaConfig {
                         ConfigDef.Importance.MEDIUM, 
QuotaConfig.REPLICA_ALTER_LOG_DIRS_IO_MAX_BYTES_PER_SECOND_DOC);
     }
 
-    public static final Set<String> BROKER_QUOTA_CONFIGS = 
Set.copyOf(brokerQuotaConfigs().names()); 
+    public static final Set<String> BROKER_QUOTA_CONFIGS = 
Set.copyOf(brokerQuotaConfigs().names());
 
     public static ConfigDef userAndClientQuotaConfigs() {
         ConfigDef configDef = new ConfigDef();
diff --git 
a/server/src/main/java/org/apache/kafka/server/config/DynamicBrokerConfig.java 
b/server/src/main/java/org/apache/kafka/server/config/DynamicBrokerConfig.java
index 7d26793b9c2..4ccd3005b7d 100644
--- 
a/server/src/main/java/org/apache/kafka/server/config/DynamicBrokerConfig.java
+++ 
b/server/src/main/java/org/apache/kafka/server/config/DynamicBrokerConfig.java
@@ -79,8 +79,8 @@ public class DynamicBrokerConfig {
             DynamicReplicationConfig.RECONFIGURABLE_CONFIGS,
             List.of(AbstractConfig.CONFIG_PROVIDERS_CONFIG),
             GroupCoordinatorConfig.RECONFIGURABLE_CONFIGS,
-            ShareCoordinatorConfig.RECONFIGURABLE_CONFIGS, 
-            QuotaConfig.BROKER_QUOTA_CONFIGS)
+            DynamicQuotaConfig.RECONFIGURABLE_CONFIGS,
+            ShareCoordinatorConfig.RECONFIGURABLE_CONFIGS)
         .flatMap(Collection::stream)
         .collect(Collectors.toUnmodifiableSet());
 
@@ -279,4 +279,8 @@ public class DynamicBrokerConfig {
         public static final Set<String> RECONFIGURABLE_CONFIGS = Set.of(
                 
ReplicationConfigs.FOLLOWER_FETCH_LAST_TIERED_OFFSET_ENABLE_CONFIG);
     }
+
+    public static class DynamicQuotaConfig {
+        public static final Set<String> RECONFIGURABLE_CONFIGS = 
QuotaConfig.BROKER_QUOTA_CONFIGS;
+    }
 }
diff --git 
a/server/src/main/java/org/apache/kafka/server/config/DynamicConfig.java 
b/server/src/main/java/org/apache/kafka/server/config/DynamicConfig.java
index e1e7ccfd245..db9c7cf4fd4 100644
--- a/server/src/main/java/org/apache/kafka/server/config/DynamicConfig.java
+++ b/server/src/main/java/org/apache/kafka/server/config/DynamicConfig.java
@@ -24,8 +24,9 @@ import java.util.Properties;
 import java.util.Set;
 
 /**
- * Class used to hold dynamic configs. These are configs which have no 
physical manifestation in the server.properties
- * and can only be set dynamically.
+ * Holds dynamic configs, including both dynamic-only configs which have no 
physical manifestation in server.properties and
+ * can only be set dynamically (i.e., {@link 
QuotaConfig#brokerQuotaConfigs()}), and dual-mode configs that can be set
+ * statically or dynamically.
  */
 public class DynamicConfig {
 

Reply via email to