From d936dc65ad0b29a3c875a946a17cb35628d0335e Mon Sep 17 00:00:00 2001 From: HÃ¥kon Hallingstad Date: Wed, 13 Mar 2024 16:22:45 +0100 Subject: Add DomainName.leafLabel() --- vespajlib/src/main/java/ai/vespa/http/DomainName.java | 5 +++++ vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java | 4 ++++ 2 files changed, 9 insertions(+) (limited to 'vespajlib') 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 { 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()); } } -- cgit v1.2.3