You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2016/05/17 16:58:58 UTC

deltaspike git commit: DELTASPIKE-1147 try to make TypedResolver behave the same way like ConfigResolver

Repository: deltaspike
Updated Branches:
  refs/heads/master 138eec616 -> c25a89f1d


DELTASPIKE-1147 try to make TypedResolver behave the same way like ConfigResolver


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/c25a89f1
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/c25a89f1
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/c25a89f1

Branch: refs/heads/master
Commit: c25a89f1dd0ab8654396acedb60e1e1975386a41
Parents: 138eec6
Author: Mark Struberg <st...@apache.org>
Authored: Tue May 17 18:57:06 2016 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Tue May 17 18:58:02 2016 +0200

----------------------------------------------------------------------
 .../deltaspike/core/api/config/ConfigResolver.java       | 11 +++++++++--
 .../deltaspike/test/api/config/ConfigResolverTest.java   |  7 ++++++-
 .../deltaspike/test/api/config/TestConfigSource.java     |  2 ++
 3 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/c25a89f1/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
index a2b8ed6..778614b 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
@@ -171,6 +171,7 @@ public final class ConfigResolver
         return getPropertyValue(key, defaultValue, true);
     }
 
+
     public static String getPropertyValue(String key, String defaultValue, boolean evaluateVariables)
     {
         String value = getPropertyValue(key, evaluateVariables);
@@ -759,6 +760,7 @@ public final class ConfigResolver
 
         private Class<?> configEntryType = String.class;
 
+        private boolean withDefault = false;
         private T defaultValue;
 
         private boolean projectStageAware = true;
@@ -810,6 +812,7 @@ public final class ConfigResolver
         public TypedResolver<T> withDefault(T value)
         {
             defaultValue = value;
+            withDefault = true;
             return this;
         }
 
@@ -823,6 +826,7 @@ public final class ConfigResolver
             }
 
             defaultValue = convert(value);
+            withDefault = true;
             return this;
         }
 
@@ -898,7 +902,10 @@ public final class ConfigResolver
             String valueStr = resolveStringValue();
             T value = convert(valueStr);
 
-            value = fallbackToDefaultIfEmpty(keyResolved, value, defaultValue);
+            if (withDefault)
+            {
+                value = fallbackToDefaultIfEmpty(keyResolved, value, defaultValue);
+            }
 
             if (logChanges && (value != null && !value.equals(lastValue) || (value == null && lastValue != null)) )
             {
@@ -969,7 +976,7 @@ public final class ConfigResolver
             }
 
             // make initial resolution of longest key
-            value = getPropertyValue(keyResolved, null, evaluateVariables);
+            value = getPropertyValue(keyResolved, evaluateVariables);
 
             // try fallbacks if not strictly
             if (value == null && !strictly)

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/c25a89f1/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java b/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
index 6afdce7..66c288a 100644
--- a/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
+++ b/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
@@ -28,7 +28,6 @@ import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 
 public class ConfigResolverTest
 {
@@ -82,6 +81,12 @@ public class ConfigResolverTest
         Assert.assertEquals("testvalue", ConfigResolver.getPropertyValue("testkey3", null));
         Assert.assertEquals("", ConfigResolver.getProjectStageAwarePropertyValue("testkey3"));
         Assert.assertEquals(DEFAULT_VALUE, ConfigResolver.getProjectStageAwarePropertyValue("testkey3", DEFAULT_VALUE));
+
+        Assert.assertEquals(DEFAULT_VALUE, ConfigResolver.getProjectStageAwarePropertyValue("deltaspike.test.projectstagefallback", DEFAULT_VALUE));
+        Assert.assertEquals("", ConfigResolver.getProjectStageAwarePropertyValue("deltaspike.test.projectstagefallback"));
+
+        Assert.assertEquals(DEFAULT_VALUE, ConfigResolver.resolve("deltaspike.test.projectstagefallback").as(String.class).withDefault(DEFAULT_VALUE).withCurrentProjectStage(true).getValue());
+        Assert.assertEquals("", ConfigResolver.resolve("deltaspike.test.projectstagefallback").as(String.class).withCurrentProjectStage(true).getValue());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/c25a89f1/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/TestConfigSource.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/TestConfigSource.java b/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/TestConfigSource.java
index c0f34c7..e5e4e28 100644
--- a/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/TestConfigSource.java
+++ b/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/TestConfigSource.java
@@ -89,6 +89,8 @@ public class TestConfigSource implements ConfigSource
         props.put("deltaspike.test.recursive.variable2", "pre-${deltaspike.test.recursive.variable3}-post");
         props.put("deltaspike.test.recursive.variable3", "crazy");
 
+        props.put("deltaspike.test.projectstagefallback.UnitTest", "");
+        props.put("deltaspike.test.projectstagefallback", "Value without ProjectStage");
     }
 
     @Override