mirror of
https://github.com/jlengrand/quarkus.git
synced 2026-03-10 08:41:22 +00:00
Retain all ClientRequestFilter and ClientResponseFilter impls in case of programmatic registration
This commit is contained in:
@@ -83,6 +83,9 @@ class RestClientProcessor {
|
||||
private static final DotName REGISTER_PROVIDER = DotName.createSimple(RegisterProvider.class.getName());
|
||||
private static final DotName REGISTER_PROVIDERS = DotName.createSimple(RegisterProviders.class.getName());
|
||||
|
||||
private static final DotName CLIENT_REQUEST_FILTER = DotName.createSimple(ClientRequestFilter.class.getName());
|
||||
private static final DotName CLIENT_RESPONSE_FILTER = DotName.createSimple(ClientResponseFilter.class.getName());
|
||||
|
||||
private static final String PROVIDERS_SERVICE_FILE = "META-INF/services/" + Providers.class.getName();
|
||||
|
||||
@BuildStep
|
||||
@@ -341,6 +344,15 @@ class RestClientProcessor {
|
||||
reflectiveClass
|
||||
.produce(new ReflectiveClassBuildItem(false, false, annotationInstance.value().asClass().toString()));
|
||||
}
|
||||
|
||||
// now retain all un-annotated implementations of ClientRequestFilter and ClientResponseFilter
|
||||
// in case they are programmatically registered by applications
|
||||
for (ClassInfo info : index.getAllKnownImplementors(CLIENT_REQUEST_FILTER)) {
|
||||
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, info.name().toString()));
|
||||
}
|
||||
for (ClassInfo info : index.getAllKnownImplementors(CLIENT_RESPONSE_FILTER)) {
|
||||
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, info.name().toString()));
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isRestClientInterface(IndexView index, ClassInfo classInfo) {
|
||||
|
||||
@@ -20,6 +20,7 @@ import io.quarkus.runtime.annotations.Recorder;
|
||||
public class RestClientRecorder {
|
||||
|
||||
public static ResteasyProviderFactory providerFactory;
|
||||
public static boolean SSL_ENABLED;
|
||||
|
||||
public void setRestClientBuilderResolver() {
|
||||
RestClientBuilderResolver.setInstance(new BuilderResolver());
|
||||
|
||||
@@ -2,6 +2,8 @@ package io.quarkus.restclient.runtime.graal;
|
||||
|
||||
import javax.ws.rs.client.ClientBuilder;
|
||||
|
||||
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
|
||||
import org.jboss.resteasy.client.jaxrs.engines.URLConnectionClientEngineBuilder;
|
||||
import org.jboss.resteasy.client.jaxrs.internal.LocalResteasyProviderFactory;
|
||||
import org.jboss.resteasy.client.jaxrs.internal.ResteasyClientBuilderImpl;
|
||||
|
||||
@@ -15,7 +17,14 @@ final class ClientBuilderReplacement {
|
||||
|
||||
@Substitute
|
||||
public static ClientBuilder newBuilder() {
|
||||
return new ResteasyClientBuilderImpl()
|
||||
.providerFactory(new LocalResteasyProviderFactory(RestClientRecorder.providerFactory));
|
||||
ResteasyClientBuilder client = new ResteasyClientBuilderImpl();
|
||||
client.providerFactory(new LocalResteasyProviderFactory(RestClientRecorder.providerFactory));
|
||||
if (!RestClientRecorder.SSL_ENABLED) {
|
||||
client.httpEngine(new URLConnectionClientEngineBuilder().resteasyClientBuilder(client).build());
|
||||
client.sslContext(null);
|
||||
client.trustStore(null);
|
||||
client.keyStore(null, "");
|
||||
}
|
||||
return client;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user