Skip to content

Commit 914ab7a

Browse files
author
Mike Davis
authored
Add support for native http proxying. (#349)
* Use system properties with custom http client.
1 parent 13c27ff commit 914ab7a

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ public OptimizelyHttpClient build() {
103103
.setDefaultRequestConfig(HttpClientUtils.DEFAULT_REQUEST_CONFIG)
104104
.setConnectionManager(poolingHttpClientConnectionManager)
105105
.disableCookieManagement()
106+
.useSystemProperties()
106107
.build();
107108

108109
return new OptimizelyHttpClient(closableHttpClient);

core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@
1616
*/
1717
package com.optimizely.ab;
1818

19-
import org.apache.http.HttpResponse;
20-
import org.apache.http.client.ClientProtocolException;
21-
import org.apache.http.client.HttpClient;
2219
import org.apache.http.client.ResponseHandler;
20+
import org.apache.http.client.methods.HttpGet;
2321
import org.apache.http.client.methods.HttpUriRequest;
2422
import org.apache.http.client.methods.RequestBuilder;
23+
import org.apache.http.conn.HttpHostConnectException;
2524
import org.apache.http.impl.client.CloseableHttpClient;
25+
import org.junit.After;
26+
import org.junit.Before;
2627
import org.junit.Test;
2728

2829
import java.io.IOException;
@@ -33,6 +34,16 @@
3334

3435
public class OptimizelyHttpClientTest {
3536

37+
@Before
38+
public void setUp() {
39+
System.setProperty("https.proxyHost", "localhost");
40+
}
41+
42+
@After
43+
public void tearDown() {
44+
System.clearProperty("https.proxyHost");
45+
}
46+
3647
@Test
3748
public void testDefaultConfiguration() {
3849
OptimizelyHttpClient optimizelyHttpClient = OptimizelyHttpClient.builder().build();
@@ -50,6 +61,15 @@ public void testNonDefaultConfiguration() {
5061
assertTrue(optimizelyHttpClient.getHttpClient() instanceof CloseableHttpClient);
5162
}
5263

64+
@Test(expected = HttpHostConnectException.class)
65+
public void testProxySettings() throws IOException {
66+
OptimizelyHttpClient optimizelyHttpClient = OptimizelyHttpClient.builder().build();
67+
68+
// If this request succeeds then the proxy config was not picked up.
69+
HttpGet get = new HttpGet("https://www.optimizely.com");
70+
optimizelyHttpClient.execute(get);
71+
}
72+
5373
@Test
5474
public void testExecute() throws IOException {
5575
HttpUriRequest httpUriRequest = RequestBuilder.get().build();

java-quickstart/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ dependencies {
99
}
1010

1111
task runExample(type: JavaExec) {
12+
systemProperties System.properties
13+
1214
main "com.optimizely.Example"
1315
classpath sourceSets.test.runtimeClasspath
1416
}

0 commit comments

Comments
 (0)