Skip to content

Commit 7d17b17

Browse files
committed
fix: generics for kube config
1 parent fa17797 commit 7d17b17

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

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

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@
3636
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET;
3737

3838
@SuppressWarnings("rawtypes")
39-
public class AnnotationControllerConfiguration<R extends HasMetadata>
40-
implements io.javaoperatorsdk.operator.api.config.ControllerConfiguration<R> {
39+
public class AnnotationControllerConfiguration<P extends HasMetadata>
40+
implements io.javaoperatorsdk.operator.api.config.ControllerConfiguration<P> {
4141

42-
protected final Reconciler<R> reconciler;
42+
protected final Reconciler<P> reconciler;
4343
private final ControllerConfiguration annotation;
4444
private List<DependentResourceSpec> specs;
45-
private Class<R> resourceClass;
45+
private Class<P> resourceClass;
4646

47-
public AnnotationControllerConfiguration(Reconciler<R> reconciler) {
47+
public AnnotationControllerConfiguration(Reconciler<P> reconciler) {
4848
this.reconciler = reconciler;
4949
this.annotation = reconciler.getClass().getAnnotation(ControllerConfiguration.class);
5050
if (annotation == null) {
@@ -89,10 +89,10 @@ public Set<String> getNamespaces() {
8989

9090
@Override
9191
@SuppressWarnings("unchecked")
92-
public Class<R> getResourceClass() {
92+
public Class<P> getResourceClass() {
9393
if (resourceClass == null) {
9494
resourceClass =
95-
(Class<R>) Utils.getFirstTypeArgumentFromSuperClassOrInterface(reconciler.getClass(),
95+
(Class<P>) Utils.getFirstTypeArgumentFromSuperClassOrInterface(reconciler.getClass(),
9696
Reconciler.class);
9797
}
9898
return resourceClass;
@@ -110,16 +110,16 @@ public String getAssociatedReconcilerClassName() {
110110

111111
@SuppressWarnings("unchecked")
112112
@Override
113-
public ResourceEventFilter<R> getEventFilter() {
114-
ResourceEventFilter<R> answer = null;
113+
public ResourceEventFilter<P> getEventFilter() {
114+
ResourceEventFilter<P> answer = null;
115115

116-
Class<ResourceEventFilter<R>>[] filterTypes =
117-
(Class<ResourceEventFilter<R>>[]) valueOrDefault(annotation,
116+
Class<ResourceEventFilter<P>>[] filterTypes =
117+
(Class<ResourceEventFilter<P>>[]) valueOrDefault(annotation,
118118
ControllerConfiguration::eventFilters, new Object[] {});
119119
if (filterTypes.length > 0) {
120120
for (var filterType : filterTypes) {
121121
try {
122-
ResourceEventFilter<R> filter = filterType.getConstructor().newInstance();
122+
ResourceEventFilter<P> filter = filterType.getConstructor().newInstance();
123123

124124
if (answer == null) {
125125
answer = filter;
@@ -151,8 +151,8 @@ public Optional<Duration> reconciliationMaxInterval() {
151151

152152
@Override
153153
@SuppressWarnings("unchecked")
154-
public Optional<Predicate<R>> onAddFilter() {
155-
return (Optional<Predicate<R>>) createFilter(annotation.onAddFilter(), FilterType.onAdd,
154+
public Optional<Predicate<P>> onAddFilter() {
155+
return (Optional<Predicate<P>>) createFilter(annotation.onAddFilter(), FilterType.onAdd,
156156
annotation.getClass().getSimpleName());
157157
}
158158

@@ -186,8 +186,8 @@ private <T> Optional<T> createFilter(Class<T> filter, FilterType filterType, Str
186186

187187
@SuppressWarnings("unchecked")
188188
@Override
189-
public Optional<BiPredicate<R, R>> onUpdateFilter() {
190-
return (Optional<BiPredicate<R, R>>) createFilter(annotation.onUpdateFilter(),
189+
public Optional<BiPredicate<P, P>> onUpdateFilter() {
190+
return (Optional<BiPredicate<P, P>>) createFilter(annotation.onUpdateFilter(),
191191
FilterType.onUpdate, annotation.getClass().getSimpleName());
192192
}
193193

@@ -259,6 +259,7 @@ private String getName(Dependent dependent, Class<? extends DependentResource> d
259259
return name;
260260
}
261261

262+
@SuppressWarnings("rawtypes")
262263
private Object createKubernetesResourceConfig(Class<? extends DependentResource> dependentType) {
263264

264265
Object config;
@@ -291,7 +292,6 @@ private Object createKubernetesResourceConfig(Class<? extends DependentResource>
291292
.orElse(null);
292293
}
293294

294-
295295
config =
296296
new KubernetesDependentResourceConfig(namespaces, labelSelector, configuredNS, onAddFilter,
297297
onUpdateFilter, onDeleteFilter);

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ protected NonNamespaceOperation<R, KubernetesResourceList<R>, Resource<R>> prepa
162162
protected InformerEventSource<R, P> createEventSource(EventSourceContext<P> context) {
163163
if (kubernetesDependentResourceConfig != null) {
164164
// sets the filters for the dependent resource, which are applied by parent class
165-
setOnAddFilter(kubernetesDependentResourceConfig.onAddFilter());
166-
setOnUpdateFilter(kubernetesDependentResourceConfig.onUpdateFilter());
167-
setOnDeleteFilter(kubernetesDependentResourceConfig.onDeleteFilter());
165+
onAddFilter = kubernetesDependentResourceConfig.onAddFilter();
166+
onUpdateFilter = kubernetesDependentResourceConfig.onUpdateFilter();
167+
onDeleteFilter = kubernetesDependentResourceConfig.onDeleteFilter();
168168

169169
configureWith(kubernetesDependentResourceConfig.labelSelector(),
170170
kubernetesDependentResourceConfig.namespaces(),

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,26 @@
88

99
import static io.javaoperatorsdk.operator.api.reconciler.Constants.NO_VALUE_SET;
1010

11-
public class KubernetesDependentResourceConfig {
11+
public class KubernetesDependentResourceConfig<R> {
1212

1313
private Set<String> namespaces = Constants.SAME_AS_CONTROLLER_NAMESPACES_SET;
1414
private String labelSelector = NO_VALUE_SET;
1515
private boolean namespacesWereConfigured = false;
1616

17-
@SuppressWarnings("rawtypes")
18-
private Predicate onAddFilter;
19-
@SuppressWarnings("rawtypes")
20-
private BiPredicate onUpdateFilter;
21-
@SuppressWarnings("rawtypes")
22-
private BiPredicate onDeleteFilter;
17+
18+
private Predicate<R> onAddFilter;
19+
20+
private BiPredicate<R, R> onUpdateFilter;
21+
22+
private BiPredicate<R, Boolean> onDeleteFilter;
2323

2424
public KubernetesDependentResourceConfig() {}
2525

2626
@SuppressWarnings("rawtypes")
2727
public KubernetesDependentResourceConfig(Set<String> namespaces, String labelSelector,
28-
boolean configuredNS, Predicate onAddFilter,
29-
BiPredicate onUpdateFilter,
30-
BiPredicate onDeleteFilter) {
28+
boolean configuredNS, Predicate<R> onAddFilter,
29+
BiPredicate<R, R> onUpdateFilter,
30+
BiPredicate<R, Boolean> onDeleteFilter) {
3131
this.namespaces = namespaces;
3232
this.labelSelector = labelSelector;
3333
this.namespacesWereConfigured = configuredNS;
@@ -40,13 +40,13 @@ public KubernetesDependentResourceConfig(Set<String> namespaces, String labelSel
4040
this(namespaces, labelSelector, true, null, null, null);
4141
}
4242

43-
public KubernetesDependentResourceConfig setNamespaces(Set<String> namespaces) {
43+
public KubernetesDependentResourceConfig<R> setNamespaces(Set<String> namespaces) {
4444
this.namespacesWereConfigured = true;
4545
this.namespaces = namespaces;
4646
return this;
4747
}
4848

49-
public KubernetesDependentResourceConfig setLabelSelector(String labelSelector) {
49+
public KubernetesDependentResourceConfig<R> setLabelSelector(String labelSelector) {
5050
this.labelSelector = labelSelector;
5151
return this;
5252
}

0 commit comments

Comments
 (0)