summaryrefslogtreecommitdiffstats
path: root/jaxrs_client_utils/src/main
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2017-11-21 12:38:13 +0100
committerBjørn Christian Seime <bjorncs@oath.com>2017-11-21 12:50:35 +0100
commit437dfe2db270af3ce8c4da1975ce335bb625f557 (patch)
tree157a346e4f2747d1b9c45d8c0d8594eb4333cdc6 /jaxrs_client_utils/src/main
parent1b245f10e77b4aac6ac0197b1654815ccdc961c7 (diff)
Add scheme parameter to jax-rs client
Diffstat (limited to 'jaxrs_client_utils/src/main')
-rw-r--r--jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsClientFactory.java2
-rw-r--r--jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsStrategyFactory.java9
-rw-r--r--jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JerseyJaxRsClientFactory.java4
-rw-r--r--jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/NoRetryJaxRsStrategy.java7
-rw-r--r--jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java7
5 files changed, 19 insertions, 10 deletions
diff --git a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsClientFactory.java b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsClientFactory.java
index 4d5279ebfd4..d004ac3af45 100644
--- a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsClientFactory.java
+++ b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsClientFactory.java
@@ -9,5 +9,5 @@ import com.yahoo.vespa.applicationmodel.HostName;
* @author bakksjo
*/
public interface JaxRsClientFactory {
- <T> T createClient(Class<T> apiClass, HostName hostName, int port, String pathPrefix);
+ <T> T createClient(Class<T> apiClass, HostName hostName, int port, String pathPrefix, String scheme);
}
diff --git a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsStrategyFactory.java b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsStrategyFactory.java
index 722652557c7..6523a0c138f 100644
--- a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsStrategyFactory.java
+++ b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JaxRsStrategyFactory.java
@@ -34,13 +34,15 @@ import java.util.Set;
public class JaxRsStrategyFactory {
private final Set<HostName> hostNames;
private int port;
+ private final String scheme;
private final JaxRsClientFactory jaxRsClientFactory;
// TODO: We might need to support per-host port specification.
public JaxRsStrategyFactory(
final Set<HostName> hostNames,
final int port,
- final JaxRsClientFactory jaxRsClientFactory) {
+ final JaxRsClientFactory jaxRsClientFactory,
+ String scheme) {
if (hostNames.isEmpty()) {
throw new IllegalArgumentException("hostNames argument must not be empty");
}
@@ -48,19 +50,20 @@ public class JaxRsStrategyFactory {
this.hostNames = hostNames;
this.port = port;
this.jaxRsClientFactory = jaxRsClientFactory;
+ this.scheme = scheme;
}
public <T> JaxRsStrategy<T> apiWithRetries(final Class<T> apiClass, final String pathPrefix) {
Objects.requireNonNull(apiClass, "apiClass argument may not be null");
Objects.requireNonNull(pathPrefix, "pathPrefix argument may not be null");
- return new RetryingJaxRsStrategy<T>(hostNames, port, jaxRsClientFactory, apiClass, pathPrefix);
+ return new RetryingJaxRsStrategy<T>(hostNames, port, jaxRsClientFactory, apiClass, pathPrefix, scheme);
}
public <T> JaxRsStrategy<T> apiNoRetries(final Class<T> apiClass, final String pathPrefix) {
Objects.requireNonNull(apiClass, "apiClass argument may not be null");
Objects.requireNonNull(pathPrefix, "pathPrefix argument may not be null");
final HostName hostName = getRandom(hostNames);
- return new NoRetryJaxRsStrategy<T>(hostName, port, jaxRsClientFactory, apiClass, pathPrefix);
+ return new NoRetryJaxRsStrategy<T>(hostName, port, jaxRsClientFactory, apiClass, pathPrefix, scheme);
}
private static final Random random = new Random();
diff --git a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JerseyJaxRsClientFactory.java b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JerseyJaxRsClientFactory.java
index 8d096a0dff6..5fd72432702 100644
--- a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JerseyJaxRsClientFactory.java
+++ b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/JerseyJaxRsClientFactory.java
@@ -36,8 +36,8 @@ public class JerseyJaxRsClientFactory implements JaxRsClientFactory {
* https://jersey.java.net/apidocs/latest/jersey/org/glassfish/jersey/client/HttpUrlConnectorProvider.html#SET_METHOD_WORKAROUND
*/
@Override
- public <T> T createClient(final Class<T> apiClass, final HostName hostName, final int port, final String pathPrefix) {
- final UriBuilder uriBuilder = UriBuilder.fromPath(pathPrefix).host(hostName.s()).port(port).scheme("http");
+ public <T> T createClient(final Class<T> apiClass, final HostName hostName, final int port, final String pathPrefix, String scheme) {
+ final UriBuilder uriBuilder = UriBuilder.fromPath(pathPrefix).host(hostName.s()).port(port).scheme(scheme);
final Client webClient = ClientBuilder.newClient()
.property(ClientProperties.CONNECT_TIMEOUT, connectTimeoutMs)
.property(ClientProperties.READ_TIMEOUT, readTimeoutMs)
diff --git a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/NoRetryJaxRsStrategy.java b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/NoRetryJaxRsStrategy.java
index 0f053332d99..7d70c37a40d 100644
--- a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/NoRetryJaxRsStrategy.java
+++ b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/NoRetryJaxRsStrategy.java
@@ -18,6 +18,7 @@ public class NoRetryJaxRsStrategy<T> implements JaxRsStrategy<T> {
private final int port;
private final JaxRsClientFactory jaxRsClientFactory;
private final Class<T> apiClass;
+ private final String scheme;
private String pathPrefix;
public NoRetryJaxRsStrategy(
@@ -25,7 +26,8 @@ public class NoRetryJaxRsStrategy<T> implements JaxRsStrategy<T> {
final int port,
final JaxRsClientFactory jaxRsClientFactory,
final Class<T> apiClass,
- final String pathPrefix) {
+ final String pathPrefix,
+ String scheme) {
Objects.requireNonNull(hostName, "hostName argument may not be null");
Objects.requireNonNull(jaxRsClientFactory, "jaxRsClientFactory argument may not be null");
Objects.requireNonNull(apiClass, "apiClass argument may not be null");
@@ -35,11 +37,12 @@ public class NoRetryJaxRsStrategy<T> implements JaxRsStrategy<T> {
this.jaxRsClientFactory = jaxRsClientFactory;
this.apiClass = apiClass;
this.pathPrefix = pathPrefix;
+ this.scheme = scheme;
}
@Override
public <R> R apply(final Function<T, R> function) throws IOException {
- final T jaxRsClient = jaxRsClientFactory.createClient(apiClass, hostName, port, pathPrefix);
+ final T jaxRsClient = jaxRsClientFactory.createClient(apiClass, hostName, port, pathPrefix, scheme);
try {
return function.apply(jaxRsClient);
} catch (ProcessingException e) {
diff --git a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java
index a73297780c6..73320a4c72d 100644
--- a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java
+++ b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java
@@ -28,13 +28,15 @@ public class RetryingJaxRsStrategy<T> implements JaxRsStrategy<T> {
private final JaxRsClientFactory jaxRsClientFactory;
private final Class<T> apiClass;
private String pathPrefix;
+ private final String scheme;
public RetryingJaxRsStrategy(
final Set<HostName> hostNames,
final int port,
final JaxRsClientFactory jaxRsClientFactory,
final Class<T> apiClass,
- final String pathPrefix) {
+ final String pathPrefix,
+ String scheme) {
if (hostNames.isEmpty()) {
throw new IllegalArgumentException("hostNames argument must not be empty");
}
@@ -47,6 +49,7 @@ public class RetryingJaxRsStrategy<T> implements JaxRsStrategy<T> {
this.jaxRsClientFactory = jaxRsClientFactory;
this.apiClass = apiClass;
this.pathPrefix = pathPrefix;
+ this.scheme = scheme;
}
@Override
@@ -55,7 +58,7 @@ public class RetryingJaxRsStrategy<T> implements JaxRsStrategy<T> {
for (int i = 0; i < NUM_LOOP_ATTEMPTS; ++i) {
for (final HostName hostName : hostNames) {
- final T jaxRsClient = jaxRsClientFactory.createClient(apiClass, hostName, port, pathPrefix);
+ final T jaxRsClient = jaxRsClientFactory.createClient(apiClass, hostName, port, pathPrefix, scheme);
try {
return function.apply(jaxRsClient);
} catch (ProcessingException e) {