Skip to content

Commit c1354c9

Browse files
committed
fix: register spec and status classes for reflection
1 parent 37d4927 commit c1354c9

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,11 @@ private ControllerConfiguration createControllerConfiguration(
135135
final var crdName = CustomResource.getCRDName(crClass);
136136

137137
// register CR class for introspection
138-
reflectionClasses.produce(new ReflectiveClassBuildItem(true, true, crClass));
138+
reflectionClasses.produce(new ReflectiveClassBuildItem(true, true, crType));
139+
140+
// register spec and status for introspection
141+
registerForReflection(reflectionClasses, cr.getSpec());
142+
registerForReflection(reflectionClasses, cr.getStatus());
139143

140144
// retrieve the Controller annotation if it exists
141145
final var controllerAnnotation = info.classAnnotation(CONTROLLER);
@@ -184,6 +188,17 @@ private ControllerConfiguration createControllerConfiguration(
184188
return configuration;
185189
}
186190

191+
private void registerForReflection(
192+
BuildProducer<ReflectiveClassBuildItem> reflectionClasses, Object specOrStatus) {
193+
Optional.ofNullable(specOrStatus)
194+
.map(s -> specOrStatus.getClass().getCanonicalName())
195+
.ifPresent(
196+
cn -> {
197+
reflectionClasses.produce(new ReflectiveClassBuildItem(true, true, cn));
198+
System.out.println("Registered " + cn);
199+
});
200+
}
201+
187202
private RetryConfiguration retryConfiguration(ExternalControllerConfiguration extConfig) {
188203
return extConfig == null ? null : RetryConfigurationResolver.resolve(extConfig.retry);
189204
}

0 commit comments

Comments
 (0)