summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-08-27 16:36:31 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-08-27 17:06:01 +0200
commit0f27c93bd06b0ab31b337f16d589368bef5780f5 (patch)
treeb168966dc4dd7ecd794577c33d29be84f20fd167 /config-model
parentc6c3254619000d2859abd2ff1bbe7bf6fa092c2a (diff)
Add method to check if pattern will match independently of port
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/UriBindingsValidator.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/BindingPattern.java3
2 files changed, 4 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UriBindingsValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UriBindingsValidator.java
index 00c761a6764..e7191cc4bb9 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UriBindingsValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UriBindingsValidator.java
@@ -58,7 +58,7 @@ class UriBindingsValidator extends Validator {
// bindings produced by the hosted config model amender will violate some of the rules below
if (binding instanceof SystemBindingPattern) return;
- if (binding.port().isPresent() && !binding.port().get().equals(BindingPattern.WILDCARD_PATTERN)) {
+ if (!binding.matchesAnyPort()) {
throw new IllegalArgumentException(createErrorMessage(binding, "binding with port is not allowed"));
}
if (!binding.host().equals(BindingPattern.WILDCARD_PATTERN)) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/BindingPattern.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/BindingPattern.java
index 1d5736ba7e2..95b60091e8f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/BindingPattern.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/BindingPattern.java
@@ -66,6 +66,9 @@ public abstract class BindingPattern implements Comparable<BindingPattern> {
/** Compares the underlying pattern string for equality */
public boolean hasSamePattern(BindingPattern other) { return this.patternString().equals(other.patternString()); }
+ /** Returns true if pattern will match any port (if present) in uri **/
+ public boolean matchesAnyPort() { return port().filter(p -> !p.equals(WILDCARD_PATTERN)).isEmpty(); }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;