Skip to content

Commit 1e17e75

Browse files
authored
feat: executor service override (#983)
1 parent a7eba43 commit 1e17e75

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.javaoperatorsdk.operator.api.config;
22

33
import java.util.Set;
4+
import java.util.concurrent.ExecutorService;
45

56
import io.fabric8.kubernetes.api.model.HasMetadata;
67
import io.fabric8.kubernetes.client.Config;
@@ -16,6 +17,7 @@ public class ConfigurationServiceOverrider {
1617
private Cloner cloner;
1718
private int timeoutSeconds;
1819
private boolean closeClientOnStop;
20+
private ExecutorService executorService = null;
1921

2022
public ConfigurationServiceOverrider(
2123
ConfigurationService original) {
@@ -65,6 +67,11 @@ public ConfigurationServiceOverrider withCloseClientOnStop(boolean close) {
6567
return this;
6668
}
6769

70+
public ConfigurationServiceOverrider withExecutorService(ExecutorService executorService) {
71+
this.executorService = executorService;
72+
return this;
73+
}
74+
6875
public ConfigurationService build() {
6976
return new ConfigurationService() {
7077
@Override
@@ -120,6 +127,15 @@ public Metrics getMetrics() {
120127
public boolean closeClientOnStop() {
121128
return closeClientOnStop;
122129
}
130+
131+
@Override
132+
public ExecutorService getExecutorService() {
133+
if (executorService != null) {
134+
return executorService;
135+
} else {
136+
return ConfigurationService.super.getExecutorService();
137+
}
138+
}
123139
};
124140
}
125141

smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.javaoperatorsdk.operator.sample;
22

3+
import java.util.concurrent.Executors;
4+
35
import io.javaoperatorsdk.operator.Operator;
46
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider;
57
import io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService;
@@ -8,9 +10,11 @@ public class PureJavaApplicationRunner {
810

911
public static void main(String[] args) {
1012
Operator operator =
11-
new Operator(ConfigurationServiceOverrider.override(DefaultConfigurationService.instance())
12-
.withConcurrentReconciliationThreads(2)
13-
.build());
13+
new Operator(
14+
ConfigurationServiceOverrider.override(DefaultConfigurationService.instance())
15+
.withExecutorService(Executors.newCachedThreadPool())
16+
.withConcurrentReconciliationThreads(2)
17+
.build());
1418
operator.register(new CustomServiceReconciler());
1519
operator.start();
1620
}

0 commit comments

Comments
 (0)