diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/container/component/UserBindingPattern.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/container/component/UserBindingPattern.java | 27 |
1 files changed, 24 insertions, 3 deletions
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() { |