11
11
12
12
import com .fasterxml .jackson .core .JsonProcessingException ;
13
13
import com .fasterxml .jackson .databind .ObjectMapper ;
14
+ import com .fasterxml .jackson .databind .SerializationFeature ;
14
15
15
16
import io .fabric8 .kubernetes .api .model .HasMetadata ;
16
17
import io .fabric8 .kubernetes .client .Config ;
@@ -34,7 +35,6 @@ public class QuarkusConfigurationService extends AbstractConfigurationService {
34
35
private final KubernetesClient client ;
35
36
private final CRDGenerationInfo crdInfo ;
36
37
private final int concurrentReconciliationThreads ;
37
- private final Cloner cloner ;
38
38
private final int terminationTimeout ;
39
39
private final Map <String , String > reconcilerClassToName ;
40
40
private final Metrics metrics ;
@@ -48,18 +48,20 @@ public QuarkusConfigurationService(
48
48
CRDGenerationInfo crdInfo , int maxThreads ,
49
49
int timeout , ObjectMapper mapper , Metrics metrics , boolean startOperator ) {
50
50
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 () {
54
53
@ Override
55
54
public <R extends HasMetadata > R clone (R r ) {
56
55
try {
57
- return (R ) mapper .readValue (mapper .writeValueAsString (r ), r .getClass ());
56
+ return (R ) fMapper .readValue (fMapper .writeValueAsString (r ), r .getClass ());
58
57
} catch (JsonProcessingException e ) {
59
58
throw new IllegalStateException (e );
60
59
}
61
60
}
62
61
};
62
+ init (cloner , mapper );
63
+ this .startOperator = startOperator ;
64
+ this .client = client ;
63
65
this .metrics = metrics ;
64
66
if (configurations != null && !configurations .isEmpty ()) {
65
67
reconcilerClassToName = new HashMap <>(configurations .size ());
@@ -123,11 +125,6 @@ public int concurrentReconciliationThreads() {
123
125
return this .concurrentReconciliationThreads ;
124
126
}
125
127
126
- @ Override
127
- public Cloner getResourceCloner () {
128
- return cloner ;
129
- }
130
-
131
128
@ Override
132
129
public int getTerminationTimeoutSeconds () {
133
130
return terminationTimeout ;
0 commit comments