From 16f51f0a5ce0acbb297bb10e2cfdbae85fc8a7f1 Mon Sep 17 00:00:00 2001 From: mcilwain Date: Tue, 24 Jan 2017 08:40:41 -0800 Subject: [PATCH] Add initial implementation of YAML config file This implements the basic framework that allows global YAML configuration, per-environment custom configuration, and unit- test-specific configuration. TESTED=I deployed to alpha, ran some EPP commands through the nomulus tool, and verified no errors. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=145422680 --- java/google/registry/config/RegistryConfig.java | 13 +++++++++++++ .../env/alpha/common/WEB-INF/nomulus-config.yaml | 11 +---------- .../env/crash/common/WEB-INF/nomulus-config.yaml | 11 +---------- .../env/local/common/WEB-INF/nomulus-config.yaml | 4 +--- .../production/common/WEB-INF/nomulus-config.yaml | 11 +---------- .../env/sandbox/common/WEB-INF/nomulus-config.yaml | 11 +---------- 6 files changed, 18 insertions(+), 43 deletions(-) diff --git a/java/google/registry/config/RegistryConfig.java b/java/google/registry/config/RegistryConfig.java index 20899a533..b270df5be 100644 --- a/java/google/registry/config/RegistryConfig.java +++ b/java/google/registry/config/RegistryConfig.java @@ -1254,6 +1254,19 @@ public final class RegistryConfig { } } + /** + * Memoizes loading of the {@link RegistryConfigSettings} POJO. + * + *

Memoizing without cache expiration is used because the app must be re-deployed in order to + * change the contents of the YAML config files. + */ + private static final Supplier CONFIG_SETTINGS = + memoize(new Supplier() { + @Override + public RegistryConfigSettings get() { + return getConfigSettings(); + }}); + /** Returns the roid suffix to be used for the roids of all contacts and hosts. */ public static String getContactAndHostRoidSuffix() { return CONFIG_SETTINGS.get().registryPolicy.contactAndHostRoidSuffix; diff --git a/java/google/registry/env/alpha/common/WEB-INF/nomulus-config.yaml b/java/google/registry/env/alpha/common/WEB-INF/nomulus-config.yaml index 85b1f528f..4b9ddfafd 100644 --- a/java/google/registry/env/alpha/common/WEB-INF/nomulus-config.yaml +++ b/java/google/registry/env/alpha/common/WEB-INF/nomulus-config.yaml @@ -1,10 +1 @@ - -appEngine: - projectId: domain-registry-alpha - -registryPolicy: - contactAndHostRoidSuffix: GOOGLE - productName: Google Registry Alpha - -registrarConsole: - logoFilename: google_registry.png +# Add environment-specific configuration here diff --git a/java/google/registry/env/crash/common/WEB-INF/nomulus-config.yaml b/java/google/registry/env/crash/common/WEB-INF/nomulus-config.yaml index 4e5a23b6d..4b9ddfafd 100644 --- a/java/google/registry/env/crash/common/WEB-INF/nomulus-config.yaml +++ b/java/google/registry/env/crash/common/WEB-INF/nomulus-config.yaml @@ -1,10 +1 @@ - -appEngine: - projectId: domain-registry-crash - -registryPolicy: - contactAndHostRoidSuffix: GOOGLE - productName: Google Registry Crash - -registrarConsole: - logoFilename: google_registry.png +# Add environment-specific configuration here diff --git a/java/google/registry/env/local/common/WEB-INF/nomulus-config.yaml b/java/google/registry/env/local/common/WEB-INF/nomulus-config.yaml index 0626bf521..4b9ddfafd 100644 --- a/java/google/registry/env/local/common/WEB-INF/nomulus-config.yaml +++ b/java/google/registry/env/local/common/WEB-INF/nomulus-config.yaml @@ -1,3 +1 @@ - -appEngine: - projectId: domain-registry +# Add environment-specific configuration here diff --git a/java/google/registry/env/production/common/WEB-INF/nomulus-config.yaml b/java/google/registry/env/production/common/WEB-INF/nomulus-config.yaml index ae5d0e918..4b9ddfafd 100644 --- a/java/google/registry/env/production/common/WEB-INF/nomulus-config.yaml +++ b/java/google/registry/env/production/common/WEB-INF/nomulus-config.yaml @@ -1,10 +1 @@ - -appEngine: - projectId: domain-registry - -registryPolicy: - contactAndHostRoidSuffix: GOOGLE - productName: Google Registry - -registrarConsole: - logoFilename: google_registry.png +# Add environment-specific configuration here diff --git a/java/google/registry/env/sandbox/common/WEB-INF/nomulus-config.yaml b/java/google/registry/env/sandbox/common/WEB-INF/nomulus-config.yaml index b68bdaab6..4b9ddfafd 100644 --- a/java/google/registry/env/sandbox/common/WEB-INF/nomulus-config.yaml +++ b/java/google/registry/env/sandbox/common/WEB-INF/nomulus-config.yaml @@ -1,10 +1 @@ - -appEngine: - projectId: domain-registry-sandbox - -registryPolicy: - contactAndHostRoidSuffix: GOOGLE - productName: Google Registry Sandbox - -registrarConsole: - logoFilename: google_registry.png +# Add environment-specific configuration here