diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-07-20 16:12:29 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-08-17 17:04:17 +0200 |
commit | ead8d2122f052436f5d38771df5db68483e10989 (patch) | |
tree | 887fb93a02da41592779899ef5d7043a355441a1 /config-model/src/main/java/com/yahoo/vespa/model/clients | |
parent | 4b4dfeb835e43b852858cb128e512219270d7f93 (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.java | 18 |
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; } |