use of org.eclipse.microprofile.rest.client.annotation.RegisterProvider in project wildfly-swarm by wildfly-swarm.
the class BuilderImpl method build.
@Override
public <T> T build(Class<T> aClass) throws IllegalStateException, RestClientDefinitionException {
// Interface validity
verifyInterface(aClass);
// Provider annotations
RegisterProvider[] providers = aClass.getAnnotationsByType(RegisterProvider.class);
for (RegisterProvider provider : providers) {
register(provider.value(), provider.priority());
}
// Default exception mapper
if (!isMapperDisabled()) {
register(DefaultResponseExceptionMapper.class);
}
this.builderDelegate.register(new ExceptionMapping(localProviderInstances), 1);
ClassLoader classLoader = aClass.getClassLoader();
List<String> noProxyHosts = Arrays.asList(System.getProperty("http.nonProxyHosts", "localhost|127.*|[::1]").split("|"));
final T actualClient;
final String proxyHost = System.getProperty("http.proxyHost");
if (proxyHost != null && !noProxyHosts.contains(this.baseURI.getHost())) {
// Use proxy, if defined
actualClient = this.builderDelegate.defaultProxy(proxyHost, Integer.parseInt(System.getProperty("http.proxyPort", "80"))).build().target(this.baseURI).proxyBuilder(aClass).classloader(classLoader).defaultConsumes(MediaType.TEXT_PLAIN).defaultProduces(MediaType.TEXT_PLAIN).build();
} else {
actualClient = this.builderDelegate.build().target(this.baseURI).proxyBuilder(aClass).classloader(classLoader).defaultConsumes(MediaType.TEXT_PLAIN).defaultProduces(MediaType.TEXT_PLAIN).build();
}
return (T) Proxy.newProxyInstance(classLoader, new Class[] { aClass }, new ProxyInvocationHandler(actualClient, getLocalProviderInstances()));
}
use of org.eclipse.microprofile.rest.client.annotation.RegisterProvider in project cxf by apache.
the class CxfTypeSafeClientBuilder method build.
@Override
public <T> T build(Class<T> aClass) {
if (baseUri == null) {
throw new IllegalStateException("baseUrl not set");
}
Validator.checkValid(aClass);
RegisterProvider[] providers = aClass.getAnnotationsByType(RegisterProvider.class);
Configuration config = configImpl.getConfiguration();
if (providers != null) {
for (RegisterProvider provider : providers) {
if (!config.isRegistered(provider.value())) {
if (provider.priority() == -1) {
register(provider.value());
} else {
register(provider.value(), provider.priority());
}
}
}
}
register(SseMessageBodyReader.class);
listeners().forEach(l -> l.onNewClient(aClass, this));
MicroProfileClientFactoryBean bean = new MicroProfileClientFactoryBean(configImpl, baseUri, aClass, executorService, secConfig);
return bean.create(aClass);
}
Aggregations