Skip to content

Commit 43b5eb3

Browse files
committed
refactor: getDependentResources return type is more generic
Fixes #1003
1 parent bd32e87 commit 43b5eb3

File tree

5 files changed

+12
-20
lines changed

5 files changed

+12
-20
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@
2121
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
2222
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters;
2323

24-
@SuppressWarnings("rawtypes")
2524
public class AnnotationControllerConfiguration<R extends HasMetadata>
2625
implements io.javaoperatorsdk.operator.api.config.ControllerConfiguration<R> {
2726

2827
protected final Reconciler<R> reconciler;
2928
private final ControllerConfiguration annotation;
3029
private ConfigurationService service;
31-
private List<DependentResourceSpec> specs;
30+
private List<DependentResourceSpec<?, ?>> specs;
3231

3332
public AnnotationControllerConfiguration(Reconciler<R> reconciler) {
3433
this.reconciler = reconciler;
@@ -147,14 +146,15 @@ public static <T> T valueOrDefault(
147146

148147
@SuppressWarnings({"rawtypes", "unchecked"})
149148
@Override
150-
public List<DependentResourceSpec> getDependentResources() {
149+
public List<DependentResourceSpec<?, ?>> getDependentResources() {
151150
if (specs == null) {
152151
final var dependents =
153152
valueOrDefault(annotation, ControllerConfiguration::dependents, new Dependent[] {});
154153
if (dependents.length == 0) {
155154
return Collections.emptyList();
156155
}
157156

157+
Object config = null;
158158
specs = new ArrayList<>(dependents.length);
159159
for (Dependent dependent : dependents) {
160160
final Class<? extends DependentResource> dependentType = dependent.type();
@@ -172,13 +172,10 @@ public List<DependentResourceSpec> getDependentResources() {
172172
kubeDependent,
173173
KubernetesDependent::addOwnerReference,
174174
KubernetesDependent.ADD_OWNER_REFERENCE_DEFAULT);
175-
KubernetesDependentResourceConfig config =
176-
new KubernetesDependentResourceConfig(
177-
addOwnerReference, namespaces, labelSelector, getConfigurationService());
178-
specs.add(new DependentResourceSpec(dependentType, config));
179-
} else {
180-
specs.add(new DependentResourceSpec(dependentType));
175+
config = new KubernetesDependentResourceConfig(
176+
addOwnerReference, namespaces, labelSelector, getConfigurationService());
181177
}
178+
specs.add(new DependentResourceSpec(dependentType, config));
182179
}
183180
}
184181
return specs;

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
1313
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters;
1414

15-
@SuppressWarnings("rawtypes")
1615
public interface ControllerConfiguration<R extends HasMetadata> extends ResourceConfiguration<R> {
1716

1817
default String getName() {
@@ -52,7 +51,7 @@ default ResourceEventFilter<R> getEventFilter() {
5251
return ResourceEventFilters.passthrough();
5352
}
5453

55-
default List<DependentResourceSpec> getDependentResources() {
54+
default List<DependentResourceSpec<?, ?>> getDependentResources() {
5655
return Collections.emptyList();
5756
}
5857

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class ControllerConfigurationOverrider<R extends HasMetadata> {
2222
private ResourceEventFilter<R> customResourcePredicate;
2323
private final ControllerConfiguration<R> original;
2424
private Duration reconciliationMaxInterval;
25-
private final List<DependentResourceSpec> dependentResourceSpecs;
25+
private final List<DependentResourceSpec<?, ?>> dependentResourceSpecs;
2626

2727
private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
2828
finalizer = original.getFinalizer();
@@ -115,7 +115,7 @@ public void addNewDependentResourceConfig(DependentResourceSpec dependentResourc
115115
dependentResourceSpecs.add(dependentResourceSpec);
116116
}
117117

118-
private Optional<DependentResourceSpec> findConfigForDependentResourceClass(
118+
private Optional<DependentResourceSpec<?, ?>> findConfigForDependentResourceClass(
119119
Class<? extends DependentResource> dependentResourceClass) {
120120
return dependentResourceSpecs.stream()
121121
.filter(dc -> dc.getDependentResourceClass().equals(dependentResourceClass))

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultControllerConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class DefaultControllerConfiguration<R extends HasMetadata>
2121
private final boolean generationAware;
2222
private final RetryConfiguration retryConfiguration;
2323
private final ResourceEventFilter<R> resourceEventFilter;
24-
private final List<DependentResourceSpec> dependents;
24+
private final List<DependentResourceSpec<?, ?>> dependents;
2525
private final Duration reconciliationMaxInterval;
2626

2727
// NOSONAR constructor is meant to provide all information
@@ -38,7 +38,7 @@ public DefaultControllerConfiguration(
3838
Class<R> resourceClass,
3939
Duration reconciliationMaxInterval,
4040
ConfigurationService service,
41-
List<DependentResourceSpec> dependents) {
41+
List<DependentResourceSpec<?, ?>> dependents) {
4242
super(labelSelector, resourceClass, namespaces);
4343
this.associatedControllerClassName = associatedControllerClassName;
4444
this.name = name;
@@ -102,7 +102,7 @@ public ResourceEventFilter<R> getEventFilter() {
102102
}
103103

104104
@Override
105-
public List<DependentResourceSpec> getDependentResources() {
105+
public List<DependentResourceSpec<?, ?>> getDependentResources() {
106106
return dependents;
107107
}
108108

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ public class DependentResourceSpec<T extends DependentResource<?, ?>, C> {
1010

1111
private final C dependentResourceConfig;
1212

13-
public DependentResourceSpec(Class<T> dependentResourceClass) {
14-
this(dependentResourceClass, null);
15-
}
16-
1713
public DependentResourceSpec(Class<T> dependentResourceClass, C dependentResourceConfig) {
1814
this.dependentResourceClass = dependentResourceClass;
1915
this.dependentResourceConfig = dependentResourceConfig;

0 commit comments

Comments
 (0)