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 {