Transfer providers discovered at build-time to new ClientBuilder instances

This commit is contained in:
Andrew Guibert
2020-02-14 21:03:57 -06:00
parent 4fb2fefb79
commit 3f3fbe169b
2 changed files with 9 additions and 1 deletions

View File

@@ -18,6 +18,9 @@ import io.quarkus.runtime.annotations.Recorder;
@Recorder
public class RestClientRecorder {
public static ResteasyProviderFactory providerFactory;
public void setRestClientBuilderResolver() {
RestClientBuilderResolver.setInstance(new BuilderResolver());
}
@@ -58,6 +61,7 @@ public class RestClientRecorder {
}
RestClientBuilderImpl.setProviderFactory(clientProviderFactory);
providerFactory = clientProviderFactory;
}
private static void registerProviders(ResteasyProviderFactory clientProviderFactory, Set<String> providersToRegister,

View File

@@ -2,16 +2,20 @@ package io.quarkus.restclient.runtime.graal;
import javax.ws.rs.client.ClientBuilder;
import org.jboss.resteasy.client.jaxrs.internal.LocalResteasyProviderFactory;
import org.jboss.resteasy.client.jaxrs.internal.ResteasyClientBuilderImpl;
import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;
import io.quarkus.restclient.runtime.RestClientRecorder;
@TargetClass(ClientBuilder.class)
final class ClientBuilderReplacement {
@Substitute
public static ClientBuilder newBuilder() {
return new ResteasyClientBuilderImpl();
return new ResteasyClientBuilderImpl()
.providerFactory(new LocalResteasyProviderFactory(RestClientRecorder.providerFactory));
}
}