code: public static <T> T newClient(ClientFactory factory, String uri,
                                    Class<T> clientType, ClientOptionValue<?>... options) {
  
          return new ClientBuilder(uri).factory(factory).options(options).build(clientType);
      }
docs: Creates a new client that connects to the specified {@code uri} using an alternative
  {@link ClientFactory}.
  
  @param factory an alternative {@link ClientFactory}
  @param uri the URI of the server endpoint
  @param clientType the type of the new client
  @param options the {@link ClientOptionValue}s
  
  @throws IllegalArgumentException if the scheme of the specified {@code uri} or
  the specified {@code clientType} is unsupported for the scheme