diff --git a/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/InterOpTester.java b/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/InterOpTester.java index 2618fcb219..b34109f635 100644 --- a/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/InterOpTester.java +++ b/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/InterOpTester.java @@ -20,6 +20,8 @@ package org.apache.parquet.hadoop; import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Proxy; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; @@ -34,7 +36,30 @@ public class InterOpTester { private static final String PARQUET_TESTING_REPO = "https://github.com/apache/parquet-testing/raw/"; private static final String PARQUET_TESTING_PATH = "target/parquet-testing/"; private static final Logger LOG = LoggerFactory.getLogger(InterOpTester.class); - private OkHttpClient httpClient = new OkHttpClient(); + // since PARQUET_TESTING_REPO might be beyond a web proxy ... + public static OkHttpClient createOkHttpClientOptProxy() { + /* We use a different JVM property set, + * because CI may define JVM properties + * "https.proxyHost" and "https.proxyPort" + * and that proxy won't support some compressions + * (e.g. gzip/snappy on github.com CI). + */ + String proxyHost = System.getProperty("parquet.https.proxyHost"); + String proxyPort = System.getProperty("parquet.https.proxyPort"); + OkHttpClient client = null; + if (proxyHost != null || proxyPort != null) { + try { + int port = Integer.valueOf(proxyPort); + Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, port)); + client = new OkHttpClient.Builder().proxy(proxy).build(); + } catch (NumberFormatException e) { + } + } + if (client == null) client = new OkHttpClient(); + return client; + } + + private OkHttpClient httpClient = createOkHttpClientOptProxy(); public Path GetInterOpFile(String fileName, String changeset) throws IOException { return GetInterOpFile(fileName, changeset, "data"); diff --git a/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/TestInteropBloomFilter.java b/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/TestInteropBloomFilter.java index 5b7ae6a851..66e86ce2b7 100644 --- a/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/TestInteropBloomFilter.java +++ b/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/TestInteropBloomFilter.java @@ -57,7 +57,7 @@ public class TestInteropBloomFilter { private static String DATA_INDEX_BLOOM_WITH_LENGTH_FILE = "data_index_bloom_encoding_with_length.parquet"; private static final Logger LOG = LoggerFactory.getLogger(TestInteropBloomFilter.class); - private OkHttpClient httpClient = new OkHttpClient(); + private OkHttpClient httpClient = InterOpTester.createOkHttpClientOptProxy(); @Test public void testReadDataIndexBloomParquetFiles() throws IOException {