com.ecwid.consul.v1.ConsulRawClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of consul-api Show documentation
Show all versions of consul-api Show documentation
Java client for Consul HTTP API (http://consul.io)
package com.ecwid.consul.v1;
import org.apache.http.client.HttpClient;
import com.ecwid.consul.UrlParameters;
import com.ecwid.consul.Utils;
import com.ecwid.consul.transport.DefaultHttpTransport;
import com.ecwid.consul.transport.DefaultHttpsTransport;
import com.ecwid.consul.transport.HttpTransport;
import com.ecwid.consul.transport.RawResponse;
import com.ecwid.consul.transport.TLSConfig;
/**
* @author Vasily Vasilkov ([email protected])
*/
public class ConsulRawClient {
private static final String DEFAULT_HOST = "localhost";
private static final int DEFAULT_PORT = 8500;
// one real HTTP client for all instances
private static final HttpTransport DEFAULT_HTTP_TRANSPORT = new DefaultHttpTransport();
private final HttpTransport httpTransport;
private final String agentAddress;
public ConsulRawClient() {
this(DEFAULT_HOST);
}
public ConsulRawClient(TLSConfig tlsConfig) {
this(DEFAULT_HOST, tlsConfig);
}
public ConsulRawClient(String agentHost) {
this(agentHost, DEFAULT_PORT);
}
public ConsulRawClient(String agentHost, TLSConfig tlsConfig) {
this(agentHost, DEFAULT_PORT, tlsConfig);
}
public ConsulRawClient(String agentHost, int agentPort) {
this(DEFAULT_HTTP_TRANSPORT, agentHost, agentPort);
}
public ConsulRawClient(HttpClient httpClient) {
this(DEFAULT_HOST, httpClient);
}
public ConsulRawClient(String agentHost, HttpClient httpClient) {
this(new DefaultHttpTransport(httpClient), agentHost, DEFAULT_PORT);
}
public ConsulRawClient(String agentHost, int agentPort, HttpClient httpClient) {
this(new DefaultHttpTransport(httpClient), agentHost, agentPort);
}
public ConsulRawClient(String agentHost, int agentPort, TLSConfig tlsConfig) {
this(new DefaultHttpsTransport(tlsConfig), agentHost, agentPort);
}
// hidden constructor, for tests
ConsulRawClient(HttpTransport httpTransport, String agentHost, int agentPort) {
this.httpTransport = httpTransport;
// check that agentHost has scheme or not
String agentHostLowercase = agentHost.toLowerCase();
if (!agentHostLowercase.startsWith("https://") && !agentHostLowercase.startsWith("http://")) {
// no scheme in host, use default 'http'
agentHost = "http://" + agentHost;
}
this.agentAddress = agentHost + ":" + agentPort;
}
public RawResponse makeGetRequest(String endpoint, UrlParameters... urlParams) {
String url = agentAddress + endpoint;
url = Utils.generateUrl(url, urlParams);
return httpTransport.makeGetRequest(url);
}
public RawResponse makePutRequest(String endpoint, String content, UrlParameters... urlParams) {
String url = agentAddress + endpoint;
url = Utils.generateUrl(url, urlParams);
return httpTransport.makePutRequest(url, content);
}
public RawResponse makePutRequest(String endpoint, byte[] content, UrlParameters... urlParams) {
String url = agentAddress + endpoint;
url = Utils.generateUrl(url, urlParams);
return httpTransport.makePutRequest(url, content);
}
public RawResponse makeDeleteRequest(String endpoint, UrlParameters... urlParams) {
String url = agentAddress + endpoint;
url = Utils.generateUrl(url, urlParams);
return httpTransport.makeDeleteRequest(url);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy