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 2017/11/27 10:09:07 UTC

deltaspike git commit: DELTASPIKE-1272 / 1287: make defaultValues work

Repository: deltaspike
Updated Branches:
  refs/heads/master 8e27c82fe -> 1174922e4


DELTASPIKE-1272 / 1287: make defaultValues work

Signed-off-by: Mark Struberg <st...@apache.org>


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

Branch: refs/heads/master
Commit: 1174922e4fa438948bada8c9afe86952933fafc2
Parents: 8e27c82
Author: Alexander Falb <fa...@gmail.com>
Authored: Mon Nov 27 10:19:20 2017 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Mon Nov 27 11:03:30 2017 +0100

----------------------------------------------------------------------
 .../deltaspike/core/api/config/ConfigResolver.java  | 16 ++++++++++++++--
 .../test/api/config/ConfigResolverTest.java         | 11 +++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/1174922e/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 57d1d08..d415719 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
@@ -866,8 +866,15 @@ public final class ConfigResolver
         public TypedResolver<List<T>> asList()
         {
             isList = true;
+            TypedResolver<List<T>> listTypedResolver = (TypedResolver<List<T>>) this;
 
-            return (TypedResolver<List<T>>) this;
+            if (defaultValue == null)
+            {
+                // the default for lists is an empty list instead of null
+                return listTypedResolver.withDefault(Collections.<T>emptyList());
+            }
+
+            return listTypedResolver;
         }
 
         @Override
@@ -1015,9 +1022,14 @@ public final class ConfigResolver
 
         private T splitAndConvertListValue(String valueStr)
         {
+            if (valueStr == null)
+            {
+                return null;
+            }
+
             List list = new ArrayList();
             StringBuilder currentValue = new StringBuilder();
-            int length = valueStr != null ? valueStr.length() : 0;
+            int length = valueStr.length();
             for (int i = 0; i < length; i++)
             {
                 char c = valueStr.charAt(i);

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/1174922e/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 d1d6a99..6613043 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
@@ -27,6 +27,7 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.Arrays;
 import java.util.List;
 
 @SuppressWarnings("Duplicates")
@@ -260,6 +261,16 @@ public class ConfigResolverTest
         Assert.assertEquals(0, intValues.size());
     }
 
+    @Test
+    public void testConfiguredListValues_WithDefault() {
+        List<Integer> intValues = ConfigResolver.resolve("test.list.not_existing").as(Integer.class).asList().withDefault(Arrays.asList(99, 88, 77)).getValue();
+        Assert.assertNotNull(intValues);
+        Assert.assertEquals(3, intValues.size());
+        Assert.assertTrue(intValues.contains(99));
+        Assert.assertTrue(intValues.contains(88));
+        Assert.assertTrue(intValues.contains(77));
+    }
+
     private void setTestConfigSourceValue(String key, String value)
     {
         ConfigSource[] configSources = ConfigResolver.getConfigSources();