2424import io .javaoperatorsdk .operator .processing .dependent .kubernetes .KubernetesDependent ;
2525import io .javaoperatorsdk .operator .processing .dependent .kubernetes .KubernetesDependentResource ;
2626import io .javaoperatorsdk .operator .processing .dependent .kubernetes .KubernetesDependentResourceConfig ;
27+ import io .javaoperatorsdk .operator .processing .dependent .workflow .Condition ;
2728import io .javaoperatorsdk .operator .processing .event .rate .RateLimiter ;
2829import io .javaoperatorsdk .operator .processing .event .source .controller .ResourceEventFilter ;
2930import io .javaoperatorsdk .operator .processing .event .source .controller .ResourceEventFilters ;
@@ -311,8 +312,8 @@ private Object createKubernetesResourceConfig(Class<? extends DependentResource>
311312 createFilter (kubeDependent .genericFilter (), GenericFilter .class , context )
312313 .orElse (null );
313314
314- resourceDiscriminator = instantiateIfNotVoid ( kubeDependent . resourceDiscriminator (),
315- VoidResourceDiscriminator . class );
315+ resourceDiscriminator =
316+ instantiateDiscriminatorIfNotVoid ( kubeDependent . resourceDiscriminator () );
316317 }
317318
318319 config =
@@ -323,6 +324,15 @@ private Object createKubernetesResourceConfig(Class<? extends DependentResource>
323324 return config ;
324325 }
325326
327+ @ SuppressWarnings ({"unchecked" })
328+ private ResourceDiscriminator <?, ? extends HasMetadata > instantiateDiscriminatorIfNotVoid (
329+ Class <? extends ResourceDiscriminator > discriminator ) {
330+ if (discriminator != VoidResourceDiscriminator .class ) {
331+ return instantiateAndConfigureIfNeeded (discriminator , ResourceDiscriminator .class );
332+ }
333+ return null ;
334+ }
335+
326336 public static <T > T valueOrDefault (
327337 ControllerConfiguration controllerConfiguration ,
328338 Function <ControllerConfiguration , T > mapper ,
0 commit comments