Skip to content

Commit 1dd8f41

Browse files
committed
Add a test to verify withPluginMetrics is called after configure
1 parent 9e221e3 commit 1dd8f41

File tree

1 file changed

+44
-0
lines changed
  • connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation

1 file changed

+44
-0
lines changed

connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation/PluginsTest.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,14 @@
1919

2020
import org.apache.kafka.common.Configurable;
2121
import org.apache.kafka.common.config.AbstractConfig;
22+
import org.apache.kafka.common.config.ConfigData;
2223
import org.apache.kafka.common.config.ConfigDef;
2324
import org.apache.kafka.common.config.ConfigException;
2425
import org.apache.kafka.common.config.provider.ConfigProvider;
2526
import org.apache.kafka.common.internals.Plugin;
27+
import org.apache.kafka.common.metrics.Metrics;
28+
import org.apache.kafka.common.metrics.Monitorable;
29+
import org.apache.kafka.common.metrics.PluginMetrics;
2630
import org.apache.kafka.common.utils.LogCaptureAppender;
2731
import org.apache.kafka.common.utils.Utils;
2832
import org.apache.kafka.connect.components.Versioned;
@@ -52,6 +56,7 @@
5256
import org.junit.jupiter.api.Test;
5357

5458
import java.io.File;
59+
import java.io.IOException;
5560
import java.net.MalformedURLException;
5661
import java.net.URL;
5762
import java.net.URLClassLoader;
@@ -398,6 +403,16 @@ public void newConfigProviderShouldConfigureWithPluginClassLoader() {
398403
assertPluginClassLoaderAlwaysActive(plugin.get());
399404
}
400405

406+
@Test
407+
public void newConfigProviderShouldCallWithPluginMetricsAfterConfigure() {
408+
String providerName = "monitorable";
409+
String providerPrefix = WorkerConfig.CONFIG_PROVIDERS_CONFIG + "." + providerName;
410+
props.put(providerPrefix + ".class", MonitorableConfigProvider .class.getName());
411+
createConfig();
412+
Plugin<ConfigProvider> plugin = plugins.newConfigProvider(config, providerName, ClassLoaderUsage.PLUGINS, new Metrics());
413+
assertInstanceOf(MonitorableConfigProvider.class, plugin.get());
414+
}
415+
401416
@Test
402417
public void newHeaderConverterShouldConfigureWithPluginClassLoader() {
403418
props.put(WorkerConfig.HEADER_CONVERTER_CLASS_CONFIG, TestPlugin.SAMPLING_HEADER_CONVERTER.className());
@@ -793,4 +808,33 @@ public void configure(Map<String, ?> configs) {
793808
super.configure(configs);
794809
}
795810
}
811+
812+
public static class MonitorableConfigProvider implements ConfigProvider, Monitorable {
813+
private boolean configured = false;
814+
815+
@Override
816+
public void withPluginMetrics(PluginMetrics metrics) {
817+
assertTrue(configured);
818+
}
819+
820+
@Override
821+
public ConfigData get(String path) {
822+
return null;
823+
}
824+
825+
@Override
826+
public ConfigData get(String path, Set<String> keys) {
827+
return null;
828+
}
829+
830+
@Override
831+
public void close() throws IOException {
832+
}
833+
834+
@Override
835+
public void configure(Map<String, ?> configs) {
836+
configured = true;
837+
}
838+
}
839+
796840
}

0 commit comments

Comments
 (0)