[ https://issues.apache.org/jira/browse/KAFKA-17153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai resolved KAFKA-17153. ------------------------------------ Fix Version/s: 3.9.0 Resolution: Fixed > KafkaMetricsGroup#newGauge should accept functional interface instead of > `com.yammer.metrics.core.Gague` > -------------------------------------------------------------------------------------------------------- > > Key: KAFKA-17153 > URL: https://issues.apache.org/jira/browse/KAFKA-17153 > Project: Kafka > Issue Type: Improvement > Reporter: Chia-Ping Tsai > Assignee: Kuan Po Tseng > Priority: Minor > Fix For: 3.9.0 > > > This is a kind of syntactic sugar. Java disallow lambdas to implement > abstract classes, and hence there are many ugly impl of Gague in code base > [0][1][2][3]. Those bad looking code will spring up as we migrate more and > more scala code to java. > Hence, we should offer a variety to accept functional interface for java > code. For example: > {code:java} > public final <T> Gauge<T> newGauge(String name, Supplier<T> metric) { > return newGauge(name, new Gauge<T>() { > @Override > public T value() { > return metric.get(); > } > }, Collections.emptyMap()); > } > {code} > [0] > https://github.com/apache/kafka/blob/b015a83f6d286965af999c39c0902584fb6fb9de/server/src/main/java/org/apache/kafka/server/AssignmentsManager.java#L109 > [1] > https://github.com/apache/kafka/blob/b015a83f6d286965af999c39c0902584fb6fb9de/metadata/src/main/java/org/apache/kafka/image/loader/metrics/MetadataLoaderMetrics.java#L73 > [2] > https://github.com/apache/kafka/blob/b015a83f6d286965af999c39c0902584fb6fb9de/metadata/src/main/java/org/apache/kafka/controller/metrics/ControllerMetadataMetrics.java#L106 > [3] > https://github.com/apache/kafka/blob/b015a83f6d286965af999c39c0902584fb6fb9de/storage/src/main/java/org/apache/kafka/storage/internals/log/RemoteStorageThreadPool.java#L54 -- This message was sent by Atlassian Jira (v8.20.10#820010)