Skip to content

Commit 01b6147

Browse files
committed
fix: make it possible use empty spec/status classes
Requires operator-framework/java-operator-sdk#1403
1 parent 946d677 commit 01b6147

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusConfigurationService.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import com.fasterxml.jackson.core.JsonProcessingException;
1313
import com.fasterxml.jackson.databind.ObjectMapper;
14+
import com.fasterxml.jackson.databind.SerializationFeature;
1415

1516
import io.fabric8.kubernetes.api.model.HasMetadata;
1617
import io.fabric8.kubernetes.client.Config;
@@ -34,7 +35,6 @@ public class QuarkusConfigurationService extends AbstractConfigurationService {
3435
private final KubernetesClient client;
3536
private final CRDGenerationInfo crdInfo;
3637
private final int concurrentReconciliationThreads;
37-
private final Cloner cloner;
3838
private final int terminationTimeout;
3939
private final Map<String, String> reconcilerClassToName;
4040
private final Metrics metrics;
@@ -48,18 +48,20 @@ public QuarkusConfigurationService(
4848
CRDGenerationInfo crdInfo, int maxThreads,
4949
int timeout, ObjectMapper mapper, Metrics metrics, boolean startOperator) {
5050
super(version);
51-
this.startOperator = startOperator;
52-
this.client = client;
53-
this.cloner = new Cloner() {
51+
final var fMapper = mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
52+
final var cloner = new Cloner() {
5453
@Override
5554
public <R extends HasMetadata> R clone(R r) {
5655
try {
57-
return (R) mapper.readValue(mapper.writeValueAsString(r), r.getClass());
56+
return (R) fMapper.readValue(fMapper.writeValueAsString(r), r.getClass());
5857
} catch (JsonProcessingException e) {
5958
throw new IllegalStateException(e);
6059
}
6160
}
6261
};
62+
init(cloner, mapper);
63+
this.startOperator = startOperator;
64+
this.client = client;
6365
this.metrics = metrics;
6466
if (configurations != null && !configurations.isEmpty()) {
6567
reconcilerClassToName = new HashMap<>(configurations.size());
@@ -123,11 +125,6 @@ public int concurrentReconciliationThreads() {
123125
return this.concurrentReconciliationThreads;
124126
}
125127

126-
@Override
127-
public Cloner getResourceCloner() {
128-
return cloner;
129-
}
130-
131128
@Override
132129
public int getTerminationTimeoutSeconds() {
133130
return terminationTimeout;

0 commit comments

Comments
 (0)