Пример #1
0
  @SuppressWarnings("unchecked")
  public static <T> T createClient(final Class<T> clazz, ClientConfig config) {

    // create the server URI
    URI uri = null;
    try {
      uri = new URI(config.getServer());
    } catch (Exception ex) {
      throw new RuntimeException(
          "Error creating the URI form the server string: " + config.getServer(), ex);
    }

    T service = null;
    if (clientCache.containsKey(clazz)) {
      service = (T) clientCache.get(clazz);
    } else {

      // create the rest-easy provider factory
      ClientBuilder builder = ClientBuilder.newBuilder();
      if (config.isAllowAllHttps()) {
        builder.hostnameVerifier(new AllowAllHostnameVerifier());
      }

      // add the default interceptors.
      if (config.isDefaultLogInterceptor()) {
        builder.register(ClientServiceLogFilter.class);
      }

      // add the advanced interceptors
      List<Class> cpc = config.getComponentClasses();
      if (cpc != null) {
        for (Class filter : cpc) {
          builder.register(filter);
        }
      }
      List<Object> filters = config.getComponents();
      if (filters != null) {
        for (Object filter : filters) {
          builder.register(filter);
        }
      }

      Client client = builder.build();
      WebTarget target = client.target(uri);
      service = ClientServiceProxyFactory.newResource(clazz, target);
      clientCache.put(clazz, service);
    }
    return service;
  }