diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java index 5fd1f3dbfd..a3241edf04 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java @@ -21,14 +21,13 @@ import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter; import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters; -@SuppressWarnings("rawtypes") public class AnnotationControllerConfiguration implements io.javaoperatorsdk.operator.api.config.ControllerConfiguration { protected final Reconciler reconciler; private final ControllerConfiguration annotation; private ConfigurationService service; - private List specs; + private List> specs; public AnnotationControllerConfiguration(Reconciler reconciler) { this.reconciler = reconciler; @@ -147,7 +146,7 @@ public static T valueOrDefault( @SuppressWarnings({"rawtypes", "unchecked"}) @Override - public List getDependentResources() { + public List> getDependentResources() { if (specs == null) { final var dependents = valueOrDefault(annotation, ControllerConfiguration::dependents, new Dependent[] {}); @@ -155,6 +154,7 @@ public List getDependentResources() { return Collections.emptyList(); } + Object config = null; specs = new ArrayList<>(dependents.length); for (Dependent dependent : dependents) { final Class dependentType = dependent.type(); @@ -172,13 +172,10 @@ public List getDependentResources() { kubeDependent, KubernetesDependent::addOwnerReference, KubernetesDependent.ADD_OWNER_REFERENCE_DEFAULT); - KubernetesDependentResourceConfig config = - new KubernetesDependentResourceConfig( - addOwnerReference, namespaces, labelSelector, getConfigurationService()); - specs.add(new DependentResourceSpec(dependentType, config)); - } else { - specs.add(new DependentResourceSpec(dependentType)); + config = new KubernetesDependentResourceConfig( + addOwnerReference, namespaces, labelSelector, getConfigurationService()); } + specs.add(new DependentResourceSpec(dependentType, config)); } } return specs; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java index d269572ee7..5ebcaf6ed4 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java @@ -12,7 +12,6 @@ import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter; import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters; -@SuppressWarnings("rawtypes") public interface ControllerConfiguration extends ResourceConfiguration { default String getName() { @@ -52,7 +51,7 @@ default ResourceEventFilter getEventFilter() { return ResourceEventFilters.passthrough(); } - default List getDependentResources() { + default List> getDependentResources() { return Collections.emptyList(); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java index 239265af12..a4d194b876 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java @@ -22,7 +22,7 @@ public class ControllerConfigurationOverrider { private ResourceEventFilter customResourcePredicate; private final ControllerConfiguration original; private Duration reconciliationMaxInterval; - private final List dependentResourceSpecs; + private final List> dependentResourceSpecs; private ControllerConfigurationOverrider(ControllerConfiguration original) { finalizer = original.getFinalizer(); @@ -115,7 +115,7 @@ public void addNewDependentResourceConfig(DependentResourceSpec dependentResourc dependentResourceSpecs.add(dependentResourceSpec); } - private Optional findConfigForDependentResourceClass( + private Optional> findConfigForDependentResourceClass( Class dependentResourceClass) { return dependentResourceSpecs.stream() .filter(dc -> dc.getDependentResourceClass().equals(dependentResourceClass)) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultControllerConfiguration.java index 8ce59dd01e..bba8c1ba12 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultControllerConfiguration.java @@ -21,7 +21,7 @@ public class DefaultControllerConfiguration private final boolean generationAware; private final RetryConfiguration retryConfiguration; private final ResourceEventFilter resourceEventFilter; - private final List dependents; + private final List> dependents; private final Duration reconciliationMaxInterval; // NOSONAR constructor is meant to provide all information @@ -38,7 +38,7 @@ public DefaultControllerConfiguration( Class resourceClass, Duration reconciliationMaxInterval, ConfigurationService service, - List dependents) { + List> dependents) { super(labelSelector, resourceClass, namespaces); this.associatedControllerClassName = associatedControllerClassName; this.name = name; @@ -102,7 +102,7 @@ public ResourceEventFilter getEventFilter() { } @Override - public List getDependentResources() { + public List> getDependentResources() { return dependents; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java index 1c07a5c752..0684c04bef 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java @@ -10,10 +10,6 @@ public class DependentResourceSpec, C> { private final C dependentResourceConfig; - public DependentResourceSpec(Class dependentResourceClass) { - this(dependentResourceClass, null); - } - public DependentResourceSpec(Class dependentResourceClass, C dependentResourceConfig) { this.dependentResourceClass = dependentResourceClass; this.dependentResourceConfig = dependentResourceConfig;