You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/09/27 15:55:21 UTC

[isis] 01/05: ISIS-2086: converts isis.services.translation.po.mode to type-safe config.

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 4874fcccac8bd572e65736774946be71ce38ba8e
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Sep 27 16:31:50 2019 +0100

    ISIS-2086: converts isis.services.translation.po.mode to type-safe config.
---
 .../java/org/apache/isis/config/IsisConfiguration.java   | 16 ++++++++++++++++
 .../runtime/services/i18n/po/TranslationServicePo.java   | 13 ++++++++-----
 2 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index 31a898d..ff044a6 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.config;
 
+import org.apache.isis.applib.services.i18n.TranslationService;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 import lombok.Data;
@@ -83,6 +84,21 @@ public class IsisConfiguration {
             private boolean disableAutoFlush = false;
 
         }
+
+        private final Translation translation = new Translation();
+
+        @Data
+        public static class Translation {
+
+            private final Po po = new Po();
+
+            @Data
+            public static class Po {
+
+                TranslationService.Mode mode = TranslationService.Mode.WRITE;
+            }
+
+        }
     }
 
     
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java
index dfa38e4..e5522dc 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java
@@ -20,6 +20,7 @@ package org.apache.isis.runtime.services.i18n.po;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
+import javax.inject.Inject;
 import javax.inject.Singleton;
 
 import org.apache.isis.applib.services.i18n.LocaleProvider;
@@ -28,6 +29,7 @@ import org.apache.isis.applib.services.i18n.TranslationsResolver;
 import org.apache.isis.commons.collections.Bin;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.context._Context;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.runtime.system.context.IsisContext;
 
 import static org.apache.isis.config.internal._Config.getConfiguration;
@@ -35,8 +37,6 @@ import static org.apache.isis.config.internal._Config.getConfiguration;
 @Singleton
 public class TranslationServicePo implements TranslationService {
 
-    public static final String KEY_PO_MODE = "isis.services.translation.po.mode";
-
     private PoAbstract po;
 
     /**
@@ -49,12 +49,15 @@ public class TranslationServicePo implements TranslationService {
 
     // -- init, shutdown
 
+    @Inject
+    IsisConfiguration configuration;
+
     @PostConstruct
     public void init() {
 
-        final String translationMode = getConfiguration().getString(KEY_PO_MODE);
+        final Mode translationMode = configuration.getServices().getTranslation().getPo().getMode();
 
-        final boolean translationDisabled = TranslationService.Mode.DISABLED.matches(translationMode);
+        final boolean translationDisabled = (Mode.DISABLED == translationMode);
         if(translationDisabled) {
             // switch to disabled mode
             po = new PoDisabled(this);
@@ -68,7 +71,7 @@ public class TranslationServicePo implements TranslationService {
 
         final boolean prototypeOrTest = isPrototypeOrTest();
 
-        final boolean forceRead = TranslationService.Mode.READ.matches(translationMode);
+        final boolean forceRead = (Mode.READ == translationMode);
 
         if(prototypeOrTest && !forceRead) {
             // remain in write mode