Skip to content

Commit f43e352

Browse files
BramMeertenmbram1
and
mbram1
authored
fix: Make @ControllerConfiguration Inherited (#1347) (#1352)
Co-authored-by: mbram1 <mbram1@its.jnj.com>
1 parent 1c0d190 commit f43e352

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.javaoperatorsdk.operator.api.reconciler;
22

33
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Inherited;
45
import java.lang.annotation.Retention;
56
import java.lang.annotation.RetentionPolicy;
67
import java.lang.annotation.Target;
@@ -19,6 +20,7 @@
1920
import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
2021
import io.javaoperatorsdk.operator.processing.retry.Retry;
2122

23+
@Inherited
2224
@Retention(RetentionPolicy.RUNTIME)
2325
@Target({ElementType.TYPE})
2426
public @interface ControllerConfiguration {

operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/AnnotationControllerConfigurationTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import static org.junit.jupiter.api.Assertions.assertEquals;
3939
import static org.junit.jupiter.api.Assertions.assertFalse;
4040
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
41+
import static org.junit.jupiter.api.Assertions.assertNotNull;
4142
import static org.junit.jupiter.api.Assertions.assertNull;
4243
import static org.junit.jupiter.api.Assertions.assertThrows;
4344
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -176,6 +177,12 @@ void checkingRetryingGraduallyWorks() {
176177
assertEquals(CheckRetryingGraduallyConfiguration.MAX_INTERVAL, genericRetry.getMaxInterval());
177178
}
178179

180+
@Test
181+
void controllerConfigurationOnSuperClassShouldWork() {
182+
var config = new AnnotationControllerConfiguration<>(new ControllerConfigurationOnSuperClass());
183+
assertNotNull(config.getName());
184+
}
185+
179186
@ControllerConfiguration(
180187
maxReconciliationInterval = @MaxReconciliationInterval(interval = 50,
181188
timeUnit = TimeUnit.SECONDS))
@@ -334,4 +341,16 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap>
334341
return UpdateControl.noUpdate();
335342
}
336343
}
344+
345+
private static class ControllerConfigurationOnSuperClass extends BaseClass {
346+
}
347+
348+
@ControllerConfiguration
349+
private static class BaseClass implements Reconciler<ConfigMap> {
350+
351+
@Override
352+
public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> context) {
353+
return null;
354+
}
355+
}
337356
}

0 commit comments

Comments
 (0)