From 0aabc212589e279811e878074e7b9570d4655ef1 Mon Sep 17 00:00:00 2001 From: Georgios Andrianakis Date: Wed, 10 May 2023 16:35:52 +0300 Subject: [PATCH] Automatically lookup Providers based on the presence of standard Jakarta file Closes: #33262 --- .../deployment/ResteasyReactiveCommonProcessor.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/extensions/resteasy-reactive/quarkus-resteasy-reactive-common/deployment/src/main/java/io/quarkus/resteasy/reactive/common/deployment/ResteasyReactiveCommonProcessor.java b/extensions/resteasy-reactive/quarkus-resteasy-reactive-common/deployment/src/main/java/io/quarkus/resteasy/reactive/common/deployment/ResteasyReactiveCommonProcessor.java index 0eda9df3d12179..089e3bde2df0b9 100644 --- a/extensions/resteasy-reactive/quarkus-resteasy-reactive-common/deployment/src/main/java/io/quarkus/resteasy/reactive/common/deployment/ResteasyReactiveCommonProcessor.java +++ b/extensions/resteasy-reactive/quarkus-resteasy-reactive-common/deployment/src/main/java/io/quarkus/resteasy/reactive/common/deployment/ResteasyReactiveCommonProcessor.java @@ -18,6 +18,7 @@ import java.util.stream.Collectors; import jakarta.ws.rs.Priorities; +import jakarta.ws.rs.ext.Providers; import jakarta.ws.rs.ext.RuntimeDelegate; import org.jboss.jandex.AnnotationTarget; @@ -47,6 +48,7 @@ import io.quarkus.arc.deployment.GeneratedBeanBuildItem; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem; import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem; @@ -70,6 +72,14 @@ public class ResteasyReactiveCommonProcessor { private static final int LEGACY_READER_PRIORITY = Priorities.USER * 2; // readers are compared by decreased priority private static final int LEGACY_WRITER_PRIORITY = Priorities.USER / 2; // writers are compared by increased priority + private static final String PROVIDERS_SERVICE_FILE = "META-INF/services/" + Providers.class.getName(); + + @BuildStep + AdditionalApplicationArchiveMarkerBuildItem searchForProviders() { + // TODO: should we also be looking for the specific provider files? + return new AdditionalApplicationArchiveMarkerBuildItem(PROVIDERS_SERVICE_FILE); + } + @BuildStep void setUpDenyAllJaxRs( CombinedIndexBuildItem index,