aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2024-03-13 16:52:24 +0100
committerGitHub <noreply@github.com>2024-03-13 16:52:24 +0100
commit1a13f6f8867c86508eadabbceb06ec5fee787fa6 (patch)
treefc337cd7f56ee65a9417ceed838f9028943e4f66
parent37484d712d93d7daf6075455b266f18788d40690 (diff)
parentd936dc65ad0b29a3c875a946a17cb35628d0335e (diff)
Merge pull request #30614 from vespa-engine/hakonhall/add-domainnameleaflabel
Add DomainName.leafLabel()
-rw-r--r--vespajlib/src/main/java/ai/vespa/http/DomainName.java5
-rw-r--r--vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java4
2 files changed, 9 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/ai/vespa/http/DomainName.java b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
index fa6964002bc..51ae9c12036 100644
--- a/vespajlib/src/main/java/ai/vespa/http/DomainName.java
+++ b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
@@ -32,4 +32,9 @@ public class DomainName extends PatternedStringWrapper<DomainName> {
return requireMatch(label, "domain name label", labelPattern);
}
+ public String leafLabel() {
+ int offset = value().lastIndexOf('.');
+ return offset == -1 ? value() : value().substring(0, offset);
+ }
+
}
diff --git a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
index ed7650d2929..f3c9b70b7db 100644
--- a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
+++ b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
@@ -3,6 +3,7 @@ package ai.vespa.http;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
@@ -30,6 +31,9 @@ class DomainNameTest {
assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo%"));
assertThrows(IllegalArgumentException.class, () -> DomainName.of(("." + "a".repeat(32)).repeat(8).substring(1, 257)));
assertThrows(IllegalArgumentException.class, () -> DomainName.of("a".repeat(64)));
+
+ assertEquals("foo", DomainName.of("foo").leafLabel());
+ assertEquals("foo", DomainName.of("foo.com").leafLabel());
}
}