diff options
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java index c8712064cc0..49e0b0f478d 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java @@ -5,8 +5,11 @@ import com.yahoo.cloud.config.ApplicationIdConfig; import java.util.Comparator; import java.util.Objects; +import java.util.logging.Logger; import java.util.regex.Pattern; +import static java.util.logging.Level.SEVERE; + /** * A complete, immutable identification of an application instance. * @@ -16,6 +19,8 @@ import java.util.regex.Pattern; */ public class ApplicationId implements Comparable<ApplicationId> { + private static final Logger log = Logger.getLogger(ApplicationId.class.getName()); + static final Pattern namePattern = Pattern.compile("[a-zA-Z0-9_-]{1,256}"); private static final ApplicationId global = new ApplicationId(TenantName.from("hosted-vespa"), @@ -53,19 +58,15 @@ public class ApplicationId implements Comparable<ApplicationId> { return new ApplicationId(TenantName.from(tenant), ApplicationName.from(application), InstanceName.from(instance)); } - public static ApplicationId fromSerializedForm(String idString) { - String[] parts = idString.split(":"); - if (parts.length < 3) - throw new IllegalArgumentException("Application ids must be on the form tenant:application:instance, but was " + idString); - - return from(parts[0], parts[1], parts[2]); - } + public static ApplicationId fromSerializedForm(String idString) { return fromIdString(idString, ":"); } - public static ApplicationId fromFullString(String idString) { - String[] parts = idString.split("\\."); - if (parts.length < 3) - throw new IllegalArgumentException("Application ids must be on the form tenant.application.instance, but was " + idString); + public static ApplicationId fromFullString(String idString) { return fromIdString(idString, "."); } + private static ApplicationId fromIdString(String idString, String splitCharacter) { + String[] parts = idString.split(Pattern.quote(splitCharacter)); + if (parts.length != 3) + throw new IllegalArgumentException("Application ids must be on the form tenant" + + splitCharacter + "application" + splitCharacter + "instance, but was " + idString); return from(parts[0], parts[1], parts[2]); } |