diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-04-12 15:15:27 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-04-12 15:19:34 +0200 |
commit | f6e6d90662d18d4ab48cba2fb3b3ede0982b58a2 (patch) | |
tree | 7d8d12b6b8be0f6396dde39ad86351d3fd21769f | |
parent | 437aacd55e4e5b2bbeb046bf03fe40984c710625 (diff) |
Support lists of path/parameter entries
3 files changed, 17 insertions, 14 deletions
diff --git a/configserver-client/pom.xml b/configserver-client/pom.xml index cee6f6c067f..0a29ba003f4 100644 --- a/configserver-client/pom.xml +++ b/configserver-client/pom.xml @@ -55,13 +55,7 @@ <dependency> <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-engine</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.yahoo.vespa</groupId> - <artifactId>testutil</artifactId> - <version>${project.version}</version> + <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <dependency> diff --git a/configserver-client/src/main/java/ai/vespa/hosted/client/AbstractConfigServerClient.java b/configserver-client/src/main/java/ai/vespa/hosted/client/AbstractConfigServerClient.java index 31707579aa6..e11f0db7194 100644 --- a/configserver-client/src/main/java/ai/vespa/hosted/client/AbstractConfigServerClient.java +++ b/configserver-client/src/main/java/ai/vespa/hosted/client/AbstractConfigServerClient.java @@ -133,7 +133,7 @@ public abstract class AbstractConfigServerClient implements ConfigServerClient { } @Override - public RequestBuilder at(String... pathSegments) { + public RequestBuilder at(List<String> pathSegments) { uriBuilder.setPathSegments(requireNonNull(pathSegments)); return this; } @@ -150,12 +150,12 @@ public abstract class AbstractConfigServerClient implements ConfigServerClient { } @Override - public RequestBuilder parameters(String... pairs) { - if (pairs.length % 2 != 0) + public RequestBuilder parameters(List<String> pairs) { + if (pairs.size() % 2 != 0) throw new IllegalArgumentException("Must supply parameter key/values in pairs"); - for (int i = 0; i < pairs.length; ) - uriBuilder.setParameter(pairs[i++], pairs[i++]); + for (int i = 0; i < pairs.size(); ) + uriBuilder.setParameter(pairs.get(i++), pairs.get(i++)); return this; } diff --git a/configserver-client/src/main/java/ai/vespa/hosted/client/ConfigServerClient.java b/configserver-client/src/main/java/ai/vespa/hosted/client/ConfigServerClient.java index 482e8d2eb40..61b7edea0cc 100644 --- a/configserver-client/src/main/java/ai/vespa/hosted/client/ConfigServerClient.java +++ b/configserver-client/src/main/java/ai/vespa/hosted/client/ConfigServerClient.java @@ -12,6 +12,7 @@ import java.io.UncheckedIOException; import java.net.URI; import java.time.Duration; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.function.BiFunction; @@ -33,7 +34,10 @@ public interface ConfigServerClient extends AutoCloseable { interface RequestBuilder { /** Sets the request path. */ - RequestBuilder at(String... pathSegments); + default RequestBuilder at(String... pathSegments) { return at(List.of(pathSegments)); } + + /** Sets the request path. */ + RequestBuilder at(List<String> pathSegments); /** Sets the request body as UTF-8 application/json. */ RequestBuilder body(byte[] json); @@ -42,7 +46,12 @@ public interface ConfigServerClient extends AutoCloseable { RequestBuilder body(HttpEntity entity); /** Sets the parameter key/values for the request. Number of arguments must be even. */ - RequestBuilder parameters(String... pairs); + default RequestBuilder parameters(String... pairs) { + return parameters(Arrays.asList(pairs)); + } + + /** Sets the parameter key/values for the request. Number of arguments must be even. */ + RequestBuilder parameters(List<String> pairs); /** Overrides the default socket read timeout of the request. {@code Duration.ZERO} gives infinite timeout. */ RequestBuilder timeout(Duration timeout); |