diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-08-27 16:36:31 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-08-27 17:06:01 +0200 |
commit | 0f27c93bd06b0ab31b337f16d589368bef5780f5 (patch) | |
tree | b168966dc4dd7ecd794577c33d29be84f20fd167 /config-model | |
parent | c6c3254619000d2859abd2ff1bbe7bf6fa092c2a (diff) |
Add method to check if pattern will match independently of port
Diffstat (limited to 'config-model')
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; |