diff options
author | jonmv <venstad@gmail.com> | 2023-11-01 09:42:39 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-11-01 09:42:39 +0100 |
commit | cdcf0c2eddde976dae18f09034664f460984814f (patch) | |
tree | 64288bdfeba31b55e82deebe3f2cfc6fc546fbff | |
parent | b1cad5f46cf104f077379690828e8b0b2ba6edb3 (diff) |
Avoid clinit deadlock between ApplicationId and its constituent field classes
4 files changed, 12 insertions, 10 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 f3f181d2023..f0a2dc069e8 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,11 +5,8 @@ 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. * @@ -19,10 +16,6 @@ import static java.util.logging.Level.SEVERE; */ 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"), ApplicationName.from("routing"), InstanceName.from("default")) { }; diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationName.java index 57045212421..1fea171675d 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationName.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationName.java @@ -3,6 +3,8 @@ package com.yahoo.config.provision; import ai.vespa.validation.PatternedStringWrapper; +import java.util.regex.Pattern; + /** * Represents an applications name, which may be any kind of string or default. This type is defined * in order to provide a type safe API for defining environments. @@ -12,10 +14,11 @@ import ai.vespa.validation.PatternedStringWrapper; */ public class ApplicationName extends PatternedStringWrapper<ApplicationName> { + private static final Pattern namePattern = Pattern.compile("[a-zA-Z0-9_-]{1,256}"); private static final ApplicationName defaultName = new ApplicationName("default"); private ApplicationName(String name) { - super(name, ApplicationId.namePattern, "application name"); + super(name, namePattern, "application name"); } public static ApplicationName from(String name) { diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java index 9578c83e8af..36ae635b80e 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java @@ -3,6 +3,8 @@ package com.yahoo.config.provision; import ai.vespa.validation.PatternedStringWrapper; +import java.util.regex.Pattern; + /** * Represents an applications instance name, which may be any kind of string or default. This type is defined * in order to provide a type safe API for defining environments. @@ -11,10 +13,11 @@ import ai.vespa.validation.PatternedStringWrapper; */ public class InstanceName extends PatternedStringWrapper<InstanceName> { + private static final Pattern namePattern = Pattern.compile("[a-zA-Z0-9_-]{1,256}"); private static final InstanceName defaultName = new InstanceName("default"); private InstanceName(String name) { - super(name, ApplicationId.namePattern, "instance name"); + super(name, namePattern, "instance name"); } public static InstanceName from(String name) { diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/TenantName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/TenantName.java index 4b37c4f4c63..e1198a52b27 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/TenantName.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/TenantName.java @@ -3,6 +3,8 @@ package com.yahoo.config.provision; import ai.vespa.validation.PatternedStringWrapper; +import java.util.regex.Pattern; + /** * Represents a tenant in the provision API. * @@ -10,10 +12,11 @@ import ai.vespa.validation.PatternedStringWrapper; */ public class TenantName extends PatternedStringWrapper<TenantName> { + private static final Pattern namePattern = Pattern.compile("[a-zA-Z0-9_-]{1,256}"); private static final TenantName defaultName = new TenantName("default"); private TenantName(String name) { - super(name, ApplicationId.namePattern, "tenant name"); + super(name, namePattern, "tenant name"); } public static TenantName from(String name) { |