Skip to content
This repository has been archived by the owner on Jul 27, 2023. It is now read-only.

Commit

Permalink
Added proxy support (#193)
Browse files Browse the repository at this point in the history
  • Loading branch information
harrol authored and rickfast committed Dec 8, 2016
1 parent bb7e5a2 commit f8a5079
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
21 changes: 20 additions & 1 deletion src/main/java/com/orbitz/consul/Consul.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.Proxy;
import java.net.URL;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
Expand Down Expand Up @@ -206,6 +207,7 @@ public static class Builder {
private URL url;
private SSLContext sslContext;
private HostnameVerifier hostnameVerifier;
private Proxy proxy;
private boolean ping = true;
private Interceptor basicAuthInterceptor;
private Interceptor aclTokenInterceptor;
Expand Down Expand Up @@ -367,6 +369,18 @@ public Builder withHostnameVerifier(HostnameVerifier hostnameVerifier) {
return this;
}

/**
* Sets the {@link Proxy} for the client.
*
* @param proxy The proxy to use.
* @return The builder
*/
public Builder withProxy(Proxy proxy) {
this.proxy = proxy;

return this;
}

/**
* Connect timeout for OkHttpClient
* @param timeoutMillis timeout values in milliseconds
Expand Down Expand Up @@ -415,6 +429,7 @@ public Consul build() {
buildUrl(this.url),
this.sslContext,
this.hostnameVerifier,
this.proxy,
Jackson.MAPPER);
} catch (MalformedURLException e) {
throw new RuntimeException(e);
Expand Down Expand Up @@ -444,7 +459,7 @@ private String buildUrl(URL url) {
}


private Retrofit createRetrofit(String url, SSLContext sslContext, HostnameVerifier hostnameVerifier, ObjectMapper mapper) throws MalformedURLException {
private Retrofit createRetrofit(String url, SSLContext sslContext, HostnameVerifier hostnameVerifier, Proxy proxy, ObjectMapper mapper) throws MalformedURLException {
final OkHttpClient.Builder builder = new OkHttpClient.Builder();

if (basicAuthInterceptor != null) {
Expand All @@ -462,6 +477,10 @@ private Retrofit createRetrofit(String url, SSLContext sslContext, HostnameVerif
builder.hostnameVerifier(hostnameVerifier);
}

if(proxy != null) {
builder.proxy(proxy);
}

if (connectTimeoutMillis != null) {
builder.connectTimeout(connectTimeoutMillis, TimeUnit.MILLISECONDS);
}
Expand Down
2 changes: 2 additions & 0 deletions src/test/java/com/orbitz/consul/util/CustomBuilderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.orbitz.consul.model.agent.Agent;
import org.junit.Test;

import java.net.Proxy;
import java.net.UnknownHostException;

import static org.junit.Assert.assertEquals;
Expand All @@ -17,6 +18,7 @@ public class CustomBuilderTest extends BaseIntegrationTest{
public void shouldConnectWithCustomTimeouts() throws UnknownHostException {
Consul client = Consul.builder()
.withHostAndPort(HostAndPort.fromParts("localhost", consul.getHttpPort()))
.withProxy(Proxy.NO_PROXY)
.withConnectTimeoutMillis(10000)
.withReadTimeoutMillis(3600000)
.withWriteTimeoutMillis(900)
Expand Down

0 comments on commit f8a5079

Please sign in to comment.