Search in sources :

Example 1 with RegisterProvider

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()));
}
Also used : RegisterProvider(org.eclipse.microprofile.rest.client.annotation.RegisterProvider)

Example 2 with RegisterProvider

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);
}
Also used : Configuration(javax.ws.rs.core.Configuration) TLSConfiguration(org.apache.cxf.jaxrs.client.spec.TLSConfiguration) RegisterProvider(org.eclipse.microprofile.rest.client.annotation.RegisterProvider)

Aggregations

RegisterProvider (org.eclipse.microprofile.rest.client.annotation.RegisterProvider)2 Configuration (javax.ws.rs.core.Configuration)1 TLSConfiguration (org.apache.cxf.jaxrs.client.spec.TLSConfiguration)1