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 2922b05b185 MINOR: Provide default no-op implementations for
addReconfigurable and removeReconfigurable in AbstractKafkaConfig (#22342)
2922b05b185 is described below
commit 2922b05b185a2605cae98014e3248514effde3ff
Author: majialong <[email protected]>
AuthorDate: Sun May 24 16:08:42 2026 +0800
MINOR: Provide default no-op implementations for addReconfigurable and
removeReconfigurable in AbstractKafkaConfig (#22342)
Ref: https://github.com/apache/kafka/pull/22302#discussion_r3281352410.
Convert `addReconfigurable` and `removeReconfigurable` from abstract to
default no-op methods so tests no longer need to supply dummy overrides.
Reviewers: Ken Huang <[email protected]>, Murali Basani
<[email protected]>, Chia-Ping Tsai <[email protected]>
---
.../org/apache/kafka/server/config/AbstractKafkaConfig.java | 8 ++++++--
.../kafka/server/DefaultAutoTopicCreationManagerTest.java | 9 +--------
.../apache/kafka/server/config/AbstractKafkaConfigTest.java | 9 +--------
.../server/transaction/AddPartitionsToTxnManagerTest.java | 12 +-----------
4 files changed, 9 insertions(+), 29 deletions(-)
diff --git
a/server/src/main/java/org/apache/kafka/server/config/AbstractKafkaConfig.java
b/server/src/main/java/org/apache/kafka/server/config/AbstractKafkaConfig.java
index dcd48257f0f..27a97507563 100644
---
a/server/src/main/java/org/apache/kafka/server/config/AbstractKafkaConfig.java
+++
b/server/src/main/java/org/apache/kafka/server/config/AbstractKafkaConfig.java
@@ -349,20 +349,24 @@ public abstract class AbstractKafkaConfig extends
AbstractConfig {
* <p>
* This method exists to support migration from kafka.server.KafkaConfig
(Scala/core) to AbstractKafkaConfig (Java/server).
* When migrating code, replace KafkaConfig references with
AbstractKafkaConfig.
+ * Subclasses should override this method to integrate with their dynamic
configuration mechanism;
+ * the default implementation is a no-op.
*
* @param reconfigurable the component to register for configuration
updates
*/
- public abstract void addReconfigurable(Reconfigurable reconfigurable);
+ public void addReconfigurable(Reconfigurable reconfigurable) { }
/**
* Unregisters a component from dynamic reconfiguration notifications.
* <p>
* This method exists to support migration from kafka.server.KafkaConfig
(Scala/core) to AbstractKafkaConfig (Java/server).
* When migrating code, replace KafkaConfig references with
AbstractKafkaConfig.
+ * Subclasses should override this method to integrate with their dynamic
configuration mechanism;
+ * the default implementation is a no-op.
*
* @param reconfigurable the component to unregister
*/
- public abstract void removeReconfigurable(Reconfigurable reconfigurable);
+ public void removeReconfigurable(Reconfigurable reconfigurable) { }
/**
* Determines whether a config entry might be sensitive based on its type.
diff --git
a/server/src/test/java/org/apache/kafka/server/DefaultAutoTopicCreationManagerTest.java
b/server/src/test/java/org/apache/kafka/server/DefaultAutoTopicCreationManagerTest.java
index 3ddb6540a71..b897179d576 100644
---
a/server/src/test/java/org/apache/kafka/server/DefaultAutoTopicCreationManagerTest.java
+++
b/server/src/test/java/org/apache/kafka/server/DefaultAutoTopicCreationManagerTest.java
@@ -100,14 +100,7 @@ public class DefaultAutoTopicCreationManagerTest {
props.setProperty(ServerLogConfigs.NUM_PARTITIONS_CONFIG, "1");
props.setProperty(ReplicationConfigs.DEFAULT_REPLICATION_FACTOR_CONFIG, "1");
- config = new AbstractKafkaConfig(AbstractKafkaConfig.CONFIG_DEF,
props, Map.of(), false) {
- @Override
- public void
addReconfigurable(org.apache.kafka.common.Reconfigurable reconfigurable) {
- }
- @Override
- public void
removeReconfigurable(org.apache.kafka.common.Reconfigurable reconfigurable) {
- }
- };
+ config = new AbstractKafkaConfig(AbstractKafkaConfig.CONFIG_DEF,
props, Map.of(), false) { };
topicCreator.reset();
}
diff --git
a/server/src/test/java/org/apache/kafka/server/config/AbstractKafkaConfigTest.java
b/server/src/test/java/org/apache/kafka/server/config/AbstractKafkaConfigTest.java
index d7243c6192e..821ab40e2cc 100644
---
a/server/src/test/java/org/apache/kafka/server/config/AbstractKafkaConfigTest.java
+++
b/server/src/test/java/org/apache/kafka/server/config/AbstractKafkaConfigTest.java
@@ -16,7 +16,6 @@
*/
package org.apache.kafka.server.config;
-import org.apache.kafka.common.Reconfigurable;
import org.apache.kafka.common.config.ConfigDef;
import org.apache.kafka.coordinator.group.GroupConfig;
import org.apache.kafka.raft.KRaftConfigs;
@@ -101,13 +100,7 @@ public class AbstractKafkaConfigTest {
ConfigDef configDef = new
ConfigDef().define(TEST_INTERNAL_GROUP_CONFIG_BROKER_SYNONYM,
ConfigDef.Type.STRING,
"default-value", ConfigDef.Importance.LOW, "test broker
synonym");
- AbstractKafkaConfig kafkaConfig = new
AbstractKafkaConfig(configDef, new HashMap<>(brokerProps), Map.of(), false) {
- @Override
- public void addReconfigurable(Reconfigurable reconfigurable) {
}
-
- @Override
- public void removeReconfigurable(Reconfigurable
reconfigurable) { }
- };
+ AbstractKafkaConfig kafkaConfig = new
AbstractKafkaConfig(configDef, new HashMap<>(brokerProps), Map.of(), false) { };
return kafkaConfig.extractGroupConfigMap();
}
diff --git
a/server/src/test/java/org/apache/kafka/server/transaction/AddPartitionsToTxnManagerTest.java
b/server/src/test/java/org/apache/kafka/server/transaction/AddPartitionsToTxnManagerTest.java
index 6446784710e..21e0da46a7b 100644
---
a/server/src/test/java/org/apache/kafka/server/transaction/AddPartitionsToTxnManagerTest.java
+++
b/server/src/test/java/org/apache/kafka/server/transaction/AddPartitionsToTxnManagerTest.java
@@ -90,17 +90,7 @@ public class AddPartitionsToTxnManagerTest {
KRaftConfigs.NODE_ID_CONFIG, "1",
KRaftConfigs.CONTROLLER_LISTENER_NAMES_CONFIG, "CONTROLLER"),
Map.of(),
- false) {
- @Override
- public void addReconfigurable(org.apache.kafka.common.Reconfigurable
reconfigurable) {
- // No-op for test
- }
-
- @Override
- public void
removeReconfigurable(org.apache.kafka.common.Reconfigurable reconfigurable) {
- // No-op for test
- }
- };
+ false) { };
private final AddPartitionsToTxnManager addPartitionsToTxnManager =
new AddPartitionsToTxnManager(config, networkClient,
metadataCache, partitionFor, time);