Skip to content

Commit 90e1cbe

Browse files
committed
MINOR: Add generic config type to BrokerReconfigurable
1 parent d2c8e74 commit 90e1cbe

4 files changed

Lines changed: 8 additions & 6 deletions

File tree

core/src/main/scala/kafka/server/DynamicBrokerConfig.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ class DynamicBrokerConfig(private val kafkaConfig: KafkaConfig) extends Logging
229229
reconfigurables.add(reconfigurable)
230230
}
231231

232-
def addBrokerReconfigurable(reconfigurable: config.BrokerReconfigurable): Unit = {
232+
def addBrokerReconfigurable(reconfigurable: config.BrokerReconfigurable[_ >: KafkaConfig]): Unit = {
233233
verifyReconfigurableConfigs(reconfigurable.reconfigurableConfigs)
234234
brokerReconfigurables.add(new BrokerReconfigurable {
235235
override def reconfigurableConfigs: util.Set[String] = reconfigurable.reconfigurableConfigs

server-common/src/main/java/org/apache/kafka/config/BrokerReconfigurable.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@
3232
* <li>Validating the new configuration before applying it via {@link #validateReconfiguration(AbstractConfig)}</li>
3333
* <li>Applying the new configuration via {@link #reconfigure(AbstractConfig, AbstractConfig)}</li>
3434
* </ol>
35+
*
36+
* @param <T> the configuration type used by the reconfigurable component
3537
*/
36-
public interface BrokerReconfigurable {
38+
public interface BrokerReconfigurable<T extends AbstractConfig> {
3739
/**
3840
* Returns the set of configuration keys that can be dynamically reconfigured.
3941
*
@@ -53,7 +55,7 @@ public interface BrokerReconfigurable {
5355
*
5456
* @param newConfig the new configuration to validate
5557
*/
56-
void validateReconfiguration(AbstractConfig newConfig);
58+
void validateReconfiguration(T newConfig);
5759

5860
/**
5961
* Applies the new configuration.
@@ -63,5 +65,5 @@ public interface BrokerReconfigurable {
6365
* @param oldConfig the previous configuration
6466
* @param newConfig the new configuration to apply
6567
*/
66-
void reconfigure(AbstractConfig oldConfig, AbstractConfig newConfig);
68+
void reconfigure(T oldConfig, T newConfig);
6769
}

server/src/main/java/org/apache/kafka/server/config/DynamicProducerStateManagerConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
import java.util.Set;
2929

30-
public class DynamicProducerStateManagerConfig implements BrokerReconfigurable {
30+
public class DynamicProducerStateManagerConfig implements BrokerReconfigurable<AbstractConfig> {
3131
private final Logger log = LoggerFactory.getLogger(DynamicProducerStateManagerConfig.class);
3232
private final ProducerStateManagerConfig producerStateManagerConfig;
3333

storage/src/main/java/org/apache/kafka/storage/internals/log/LogCleaner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
* tombstone deletion.</li>
9696
* </ol>
9797
*/
98-
public class LogCleaner implements BrokerReconfigurable {
98+
public class LogCleaner implements BrokerReconfigurable<AbstractConfig> {
9999
private static final Logger LOG = LoggerFactory.getLogger(LogCleaner.class);
100100

101101
public static final Set<String> RECONFIGURABLE_CONFIGS = Set.of(

0 commit comments

Comments
 (0)