diff --git a/extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthProcessor.java b/extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthProcessor.java index 3c0dfedea87ade..f2034c408e9a62 100644 --- a/extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthProcessor.java +++ b/extensions/smallrye-health/deployment/src/main/java/io/quarkus/smallrye/health/deployment/SmallRyeHealthProcessor.java @@ -43,6 +43,7 @@ import io.quarkus.deployment.builditem.RunTimeConfigurationDefaultBuildItem; import io.quarkus.deployment.builditem.ShutdownContextBuildItem; import io.quarkus.deployment.builditem.ShutdownListenerBuildItem; +import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem; import io.quarkus.deployment.shutdown.ShutdownBuildTimeConfig; import io.quarkus.deployment.util.ServiceUtil; import io.quarkus.kubernetes.spi.KubernetesHealthLivenessPathBuildItem; @@ -162,7 +163,8 @@ void healthCheck(BuildProducer buildItemBuildProducer, void build(SmallRyeHealthRecorder recorder, BuildProducer excludedTypes, BuildProducer additionalBean, - BuildProducer beanDefiningAnnotation) + BuildProducer beanDefiningAnnotation, + BuildProducer serviceProviders) throws IOException, ClassNotFoundException { // Discover the beans annotated with @Health, @Liveness, @Readiness, @Startup, @HealthGroup, @@ -179,6 +181,9 @@ void build(SmallRyeHealthRecorder recorder, excludedTypes.produce(new ExcludedTypeBuildItem(AsyncHealthCheckFactory.class.getName())); additionalBean.produce(new AdditionalBeanBuildItem(SmallRyeHealthReporter.class)); + // Register META-INF/services/jakarta.json.spi.JsonProvider as a resource, accessed by SmallRyeHealthReporter + serviceProviders.produce(new NativeImageResourceBuildItem("META-INF/services/jakarta.json.spi.JsonProvider")); + // Make ArC discover @HealthGroup as a qualifier additionalBean.produce(new AdditionalBeanBuildItem(HealthGroup.class));