From fd1fdf8c147cb38a862891b3a9e1431633712f39 Mon Sep 17 00:00:00 2001 From: Mike Davis Date: Fri, 13 Dec 2019 15:15:28 -0800 Subject: [PATCH 1/3] Use system properties with custom http client. --- .../src/main/java/com/optimizely/ab/OptimizelyHttpClient.java | 1 + java-quickstart/build.gradle | 2 ++ 2 files changed, 3 insertions(+) diff --git a/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java b/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java index d5e0818df..86801396a 100644 --- a/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java +++ b/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java @@ -103,6 +103,7 @@ public OptimizelyHttpClient build() { .setDefaultRequestConfig(HttpClientUtils.DEFAULT_REQUEST_CONFIG) .setConnectionManager(poolingHttpClientConnectionManager) .disableCookieManagement() + .useSystemProperties() .build(); return new OptimizelyHttpClient(closableHttpClient); diff --git a/java-quickstart/build.gradle b/java-quickstart/build.gradle index e419ec70a..1bedc6b79 100644 --- a/java-quickstart/build.gradle +++ b/java-quickstart/build.gradle @@ -9,6 +9,8 @@ dependencies { } task runExample(type: JavaExec) { + systemProperties System.properties + main "com.optimizely.Example" classpath sourceSets.test.runtimeClasspath } From ec60125d318b33b1800083ca6ebde2dd972dda71 Mon Sep 17 00:00:00 2001 From: Mike Davis Date: Fri, 13 Dec 2019 15:27:17 -0800 Subject: [PATCH 2/3] Add tests assuring proxy is respected. --- .../optimizely/ab/OptimizelyHttpClientTest.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java b/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java index 299225a2f..c1d9fc7cd 100644 --- a/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java +++ b/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java @@ -16,12 +16,11 @@ */ package com.optimizely.ab; -import org.apache.http.HttpResponse; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.RequestBuilder; +import org.apache.http.conn.HttpHostConnectException; import org.apache.http.impl.client.CloseableHttpClient; import org.junit.Test; @@ -50,6 +49,16 @@ public void testNonDefaultConfiguration() { assertTrue(optimizelyHttpClient.getHttpClient() instanceof CloseableHttpClient); } + @Test(expected = HttpHostConnectException.class) + public void testProxySettings() throws IOException { + System.setProperty("https.proxyHost", "localhost"); + OptimizelyHttpClient optimizelyHttpClient = OptimizelyHttpClient.builder().build(); + + // If this request succeeds then the proxy config was not picked up. + HttpGet get = new HttpGet("https://www.optimizely.com"); + optimizelyHttpClient.execute(get); + } + @Test public void testExecute() throws IOException { HttpUriRequest httpUriRequest = RequestBuilder.get().build(); From 47e150ef18b69370fd8b0518b51f6a92d9803027 Mon Sep 17 00:00:00 2001 From: Mike Davis Date: Fri, 13 Dec 2019 15:32:21 -0800 Subject: [PATCH 3/3] Move to before and after hooks. --- .../com/optimizely/ab/OptimizelyHttpClientTest.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java b/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java index c1d9fc7cd..a67e61501 100644 --- a/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java +++ b/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java @@ -22,6 +22,8 @@ import org.apache.http.client.methods.RequestBuilder; import org.apache.http.conn.HttpHostConnectException; import org.apache.http.impl.client.CloseableHttpClient; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import java.io.IOException; @@ -32,6 +34,16 @@ public class OptimizelyHttpClientTest { + @Before + public void setUp() { + System.setProperty("https.proxyHost", "localhost"); + } + + @After + public void tearDown() { + System.clearProperty("https.proxyHost"); + } + @Test public void testDefaultConfiguration() { OptimizelyHttpClient optimizelyHttpClient = OptimizelyHttpClient.builder().build(); @@ -51,7 +63,6 @@ public void testNonDefaultConfiguration() { @Test(expected = HttpHostConnectException.class) public void testProxySettings() throws IOException { - System.setProperty("https.proxyHost", "localhost"); OptimizelyHttpClient optimizelyHttpClient = OptimizelyHttpClient.builder().build(); // If this request succeeds then the proxy config was not picked up.