Skip to content

Commit f0281f7

Browse files
committed
feat!: retrieve ObjectMapper from ConfigurationService
1 parent 323cd9f commit f0281f7

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java

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

3-
import com.fasterxml.jackson.databind.ObjectMapper;
43
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
54
import io.fabric8.kubernetes.client.CustomResource;
65
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -29,20 +28,11 @@ public class Operator implements AutoCloseable {
2928
private static final Logger log = LoggerFactory.getLogger(Operator.class);
3029
private final KubernetesClient k8sClient;
3130
private final ConfigurationService configurationService;
32-
private final ObjectMapper objectMapper;
3331
private final List<Closeable> closeables;
3432

3533
public Operator(KubernetesClient k8sClient, ConfigurationService configurationService) {
36-
this(k8sClient, configurationService, new ObjectMapper());
37-
}
38-
39-
public Operator(
40-
KubernetesClient k8sClient,
41-
ConfigurationService configurationService,
42-
ObjectMapper objectMapper) {
4334
this.k8sClient = k8sClient;
4435
this.configurationService = configurationService;
45-
this.objectMapper = objectMapper;
4636
this.closeables = new ArrayList<>();
4737
}
4838

@@ -160,7 +150,8 @@ public <R extends CustomResource> void register(
160150
final var client = k8sClient.customResources(resClass);
161151
EventDispatcher<R> dispatcher = new EventDispatcher<>(controller, finalizer, client);
162152

163-
CustomResourceCache customResourceCache = new CustomResourceCache(objectMapper);
153+
CustomResourceCache customResourceCache =
154+
new CustomResourceCache(configurationService.getObjectMapper());
164155
DefaultEventHandler defaultEventHandler =
165156
new DefaultEventHandler(
166157
customResourceCache,

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

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

3+
import com.fasterxml.jackson.databind.ObjectMapper;
34
import io.fabric8.kubernetes.client.Config;
45
import io.fabric8.kubernetes.client.CustomResource;
56
import io.javaoperatorsdk.operator.api.ResourceController;
@@ -57,6 +58,7 @@ default boolean checkCRDAndValidateLocalModel() {
5758
}
5859

5960
int DEFAULT_RECONCILIATION_THREADS_NUMBER = 5;
61+
6062
/**
6163
* Retrieves the maximum number of threads the operator can spin out to dispatch reconciliation
6264
* requests to controllers
@@ -66,4 +68,15 @@ default boolean checkCRDAndValidateLocalModel() {
6668
default int concurrentReconciliationThreads() {
6769
return DEFAULT_RECONCILIATION_THREADS_NUMBER;
6870
}
71+
72+
/**
73+
* The {@link ObjectMapper} that the operator should use to de-/serialize resources. This is
74+
* particularly useful when frameworks can configure a specific mapper that should also be used by
75+
* the SDK.
76+
*
77+
* @return the ObjectMapper to use
78+
*/
79+
default ObjectMapper getObjectMapper() {
80+
return new ObjectMapper();
81+
}
6982
}

0 commit comments

Comments
 (0)