2525import io .javaoperatorsdk .operator .processing .dependent .kubernetes .KubernetesDependent ;
2626import io .javaoperatorsdk .operator .processing .dependent .kubernetes .KubernetesDependentResource ;
2727import io .javaoperatorsdk .operator .processing .dependent .kubernetes .KubernetesDependentResourceConfig ;
28+ import io .javaoperatorsdk .operator .processing .dependent .workflow .Condition ;
2829import io .javaoperatorsdk .operator .processing .event .rate .RateLimiter ;
2930import io .javaoperatorsdk .operator .processing .event .source .controller .ResourceEventFilter ;
3031import io .javaoperatorsdk .operator .processing .event .source .controller .ResourceEventFilters ;
@@ -262,9 +263,9 @@ public List<DependentResourceSpec> getDependentResources() {
262263 }
263264 spec = new DependentResourceSpec (dependentType , config , name ,
264265 Set .of (dependent .dependsOn ()),
265- instantiateIfNotVoid (dependent .readyPostcondition (), VoidCondition . class ),
266- instantiateIfNotVoid (dependent .reconcilePrecondition (), VoidCondition . class ),
267- instantiateIfNotVoid (dependent .deletePostcondition (), VoidCondition . class ));
266+ instantiateConditionIfNotVoid (dependent .readyPostcondition ()),
267+ instantiateConditionIfNotVoid (dependent .reconcilePrecondition ()),
268+ instantiateConditionIfNotVoid (dependent .deletePostcondition ()));
268269 specsMap .put (name , spec );
269270 }
270271
@@ -325,8 +326,8 @@ private Object createKubernetesResourceConfig(Class<? extends DependentResource>
325326 createFilter (kubeDependent .genericFilter (), FilterType .generic , kubeDependentName )
326327 .orElse (null );
327328
328- resourceDiscriminator = instantiateIfNotVoid ( kubeDependent . resourceDiscriminator (),
329- VoidResourceDiscriminator . class );
329+ resourceDiscriminator =
330+ instantiateDiscriminatorIfNotVoid ( kubeDependent . resourceDiscriminator () );
330331 }
331332
332333 config =
@@ -337,6 +338,15 @@ private Object createKubernetesResourceConfig(Class<? extends DependentResource>
337338 return config ;
338339 }
339340
341+ @ SuppressWarnings ({"unchecked" })
342+ private ResourceDiscriminator <?, ? extends HasMetadata > instantiateDiscriminatorIfNotVoid (
343+ Class <? extends ResourceDiscriminator > discriminator ) {
344+ if (discriminator != VoidResourceDiscriminator .class ) {
345+ return instantiateAndConfigureIfNeeded (discriminator , ResourceDiscriminator .class );
346+ }
347+ return null ;
348+ }
349+
340350 public static <T > T valueOrDefault (
341351 ControllerConfiguration controllerConfiguration ,
342352 Function <ControllerConfiguration , T > mapper ,
0 commit comments