diff --git a/test-app/build.gradle b/test-app/build.gradle index 75b88da53..41670576a 100644 --- a/test-app/build.gradle +++ b/test-app/build.gradle @@ -34,5 +34,5 @@ task runBlockingReverseProxyServer(type: JavaExec) { "sudo ./gradlew runBlockingReverseProxyServer -PrpsHttpsPort=443 ." classpath = sourceSets.main.runtimeClasspath main = "com.marklogic.client.test.ReverseProxyServer" - args = [rpsMarkLogicServer, rpsProxyServer, rpsHttpPort, rpsHttpsPort] + args = [rpsMarkLogicServer, rpsProxyServer, rpsHttpPort, rpsHttpsPort, rpsCustomMappings] } diff --git a/test-app/gradle.properties b/test-app/gradle.properties index cef566178..10f0c992d 100644 --- a/test-app/gradle.properties +++ b/test-app/gradle.properties @@ -11,3 +11,6 @@ rpsMarkLogicServer=localhost rpsProxyServer=localhost rpsHttpPort=8020 rpsHttpsPort=0 +# Comma-delimited sequence of path1,port1,path2,port2,etc +# Example: rpsCustomMappings=/my/server,8005,/my/other/server,9090 +rpsCustomMappings= diff --git a/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java b/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java index 249f66e78..b18f772ee 100644 --- a/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java +++ b/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java @@ -30,8 +30,10 @@ import java.net.URI; import java.nio.charset.Charset; import java.security.KeyStore; -import java.util.Date; +import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -73,6 +75,7 @@ public static void main(final String[] args) throws Exception { String serverHost = "localhost"; int serverPort = 8020; int secureServerPort = 0; + List customMappings = new ArrayList<>(); if (args.length > 0) { markLogicHost = args[0]; @@ -82,15 +85,18 @@ public static void main(final String[] args) throws Exception { serverPort = Integer.parseInt(args[2]); if (args.length > 3) { secureServerPort = Integer.parseInt(args[3]); + if (args.length > 4) { + customMappings = Arrays.asList(args[4].split(",")); + } } } } } - new ReverseProxyServer(markLogicHost, serverHost, serverPort, secureServerPort); + new ReverseProxyServer(markLogicHost, serverHost, serverPort, secureServerPort, customMappings); } - public ReverseProxyServer(String markLogicHost, String serverHost, int serverPort, int secureServerPort) throws Exception { + public ReverseProxyServer(String markLogicHost, String serverHost, int serverPort, int secureServerPort, List customMappings) throws Exception { logger.info("MarkLogic host: {}", markLogicHost); logger.info("Proxy server host: {}", serverHost); logger.info("Proxy server HTTP port: {}", serverPort); @@ -118,6 +124,10 @@ public ReverseProxyServer(String markLogicHost, String serverHost, int serverPor // these requests in a suitable fashion for manual testing. mapping.put("/token", new URI(String.format("http://%s:8022", serverHost))); + for (int i = 0; i < customMappings.size(); i += 2) { + mapping.put(customMappings.get(i), new URI(String.format("http://%s:%s", serverHost, customMappings.get(i + 1)))); + } + mapping.entrySet().forEach(entry -> { logger.info("Mapped: " + entry.getKey() + " : " + entry.getValue()); });