aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/clients
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-07-20 16:12:29 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-08-17 17:04:17 +0200
commitead8d2122f052436f5d38771df5db68483e10989 (patch)
tree887fb93a02da41592779899ef5d7043a355441a1 /config-model/src/main/java/com/yahoo/vespa/model/clients
parent4b4dfeb835e43b852858cb128e512219270d7f93 (diff)
Use BindingPattern to represent all types of binding in config model
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/clients')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
index 58f03bffb30..d4d7178f0f3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
@@ -5,6 +5,7 @@ import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.container.bundle.BundleInstantiationSpecification;
import com.yahoo.osgi.provider.model.ComponentModel;
import com.yahoo.vespa.model.container.ContainerCluster;
+import com.yahoo.vespa.model.container.component.BindingPattern;
import com.yahoo.vespa.model.container.component.Handler;
import java.util.Collection;
@@ -24,7 +25,7 @@ public class ContainerDocumentApi {
}
private void setupHandlers(ContainerCluster cluster) {
- cluster.addComponent(newVespaClientHandler("com.yahoo.document.restapi.resource.RestApi", "document/v1/*"));
+ cluster.addComponent(newVespaClientHandler("com.yahoo.document.restapi.resource.RestApi", "/document/v1/*"));
cluster.addComponent(newVespaClientHandler("com.yahoo.vespa.http.server.FeedHandler", ContainerCluster.RESERVED_URI_PREFIX + "/feedapi"));
}
@@ -32,9 +33,18 @@ public class ContainerDocumentApi {
Handler<AbstractConfigProducer<?>> handler = new Handler<>(new ComponentModel(
BundleInstantiationSpecification.getFromStrings(componentId, null, vespaClientBundleSpecification), ""));
- for (String rootBinding : options.bindings) {
- handler.addServerBindings(rootBinding + bindingSuffix,
- rootBinding + bindingSuffix + '/');
+ if (options.bindings.isEmpty()) {
+ handler.addServerBindings(
+ BindingPattern.createModelGeneratedFromHttpPath(bindingSuffix),
+ BindingPattern.createModelGeneratedFromHttpPath(bindingSuffix + '/'));
+ } else {
+ for (String rootBinding : options.bindings) {
+ String pathWithoutLeadingSlash = bindingSuffix.substring(1);
+ handler.addServerBindings(
+ BindingPattern.createUserGeneratedFromPattern(rootBinding + pathWithoutLeadingSlash),
+ BindingPattern.createUserGeneratedFromPattern(rootBinding + pathWithoutLeadingSlash + '/'));
+ }
+
}
return handler;
}