aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/container/component
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/container/component')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/BindingPattern.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/UserBindingPattern.java27
2 files changed, 35 insertions, 4 deletions
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 c3dae7e4c8a..791b59f82a6 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
@@ -63,11 +63,21 @@ public abstract class BindingPattern implements Comparable<BindingPattern> {
return builder.append(path).toString();
}
+ public String originalPatternString() {
+ StringBuilder builder = new StringBuilder(scheme).append("://").append(host);
+ originalPort().ifPresent(port -> builder.append(':').append(port));
+ return builder.append(path).toString();
+ }
+
/** 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(); }
+ public boolean matchesAnyPort() { return originalPort().filter(p -> !p.equals(WILDCARD_PATTERN)).isEmpty(); }
+
+ protected Optional<String> originalPort() {
+ return port();
+ }
@Override
public boolean equals(Object o) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/UserBindingPattern.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/UserBindingPattern.java
index 182eca835c1..0f2480a6812 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/UserBindingPattern.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/UserBindingPattern.java
@@ -1,6 +1,9 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.container.component;
+import java.util.Objects;
+import java.util.Optional;
+
/**
* A {@link BindingPattern} which is constructed directly from a user provided 'binding' element from services.xml.
*
@@ -8,12 +11,30 @@ package com.yahoo.vespa.model.container.component;
*/
public class UserBindingPattern extends BindingPattern {
- private UserBindingPattern(String scheme, String host, String port, String path) { super(scheme, host, port, path); }
- private UserBindingPattern(String binding) { super(binding); }
+ private final Optional<String> originalPort;
+
+ private UserBindingPattern(String scheme, String host, String port, String path) {
+ super(scheme, host, port, path);
+ this.originalPort = null;
+ }
+ private UserBindingPattern(String scheme, String host, String port, Optional<String> originalPort, String path) {
+ super(scheme, host, port, path);
+ this.originalPort = originalPort;
+ }
+ private UserBindingPattern(String binding) {
+ super(binding);
+ this.originalPort = null;
+ }
public static UserBindingPattern fromHttpPath(String path) { return new UserBindingPattern("http", "*", null, path); }
public static UserBindingPattern fromPattern(String binding) { return new UserBindingPattern(binding); }
- public UserBindingPattern withPort(int port) { return new UserBindingPattern(scheme(), host(), Integer.toString(port), path()); }
+ public UserBindingPattern withPort(int port) { return new UserBindingPattern(scheme(), host(), Integer.toString(port), port(), path()); }
+
+ protected Optional<String> originalPort() {
+ return Objects.isNull(originalPort)
+ ? port()
+ : originalPort;
+ }
@Override
public String toString() {