diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java index c9b60d2617..e2251eea64 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java @@ -1,6 +1,7 @@ package io.javaoperatorsdk.operator.api.config; import java.util.Set; +import java.util.concurrent.ExecutorService; import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.client.Config; @@ -16,6 +17,7 @@ public class ConfigurationServiceOverrider { private Cloner cloner; private int timeoutSeconds; private boolean closeClientOnStop; + private ExecutorService executorService = null; public ConfigurationServiceOverrider( ConfigurationService original) { @@ -65,6 +67,11 @@ public ConfigurationServiceOverrider withCloseClientOnStop(boolean close) { return this; } + public ConfigurationServiceOverrider withExecutorService(ExecutorService executorService) { + this.executorService = executorService; + return this; + } + public ConfigurationService build() { return new ConfigurationService() { @Override @@ -120,6 +127,15 @@ public Metrics getMetrics() { public boolean closeClientOnStop() { return closeClientOnStop; } + + @Override + public ExecutorService getExecutorService() { + if (executorService != null) { + return executorService; + } else { + return ConfigurationService.super.getExecutorService(); + } + } }; } diff --git a/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java b/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java index 2cc212340b..19d0a471b7 100644 --- a/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java +++ b/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java @@ -1,5 +1,7 @@ package io.javaoperatorsdk.operator.sample; +import java.util.concurrent.Executors; + import io.javaoperatorsdk.operator.Operator; import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider; import io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService; @@ -8,9 +10,11 @@ public class PureJavaApplicationRunner { public static void main(String[] args) { Operator operator = - new Operator(ConfigurationServiceOverrider.override(DefaultConfigurationService.instance()) - .withConcurrentReconciliationThreads(2) - .build()); + new Operator( + ConfigurationServiceOverrider.override(DefaultConfigurationService.instance()) + .withExecutorService(Executors.newCachedThreadPool()) + .withConcurrentReconciliationThreads(2) + .build()); operator.register(new CustomServiceReconciler()); operator.start(); }