You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by st...@apache.org on 2018/05/29 20:44:38 UTC
svn commit: r1832481 -
/geronimo/components/config/branches/ConfigJSR/impl/src/main/java/org/apache/geronimo/config/ConfigValueImpl.java
Author: struberg
Date: Tue May 29 20:44:38 2018
New Revision: 1832481
URL: http://svn.apache.org/viewvc?rev=1832481&view=rev
Log:
fix isSet and implicit converters for ConfigValue
Modified:
geronimo/components/config/branches/ConfigJSR/impl/src/main/java/org/apache/geronimo/config/ConfigValueImpl.java
Modified: geronimo/components/config/branches/ConfigJSR/impl/src/main/java/org/apache/geronimo/config/ConfigValueImpl.java
URL: http://svn.apache.org/viewvc/geronimo/components/config/branches/ConfigJSR/impl/src/main/java/org/apache/geronimo/config/ConfigValueImpl.java?rev=1832481&r1=1832480&r2=1832481&view=diff
==============================================================================
--- geronimo/components/config/branches/ConfigJSR/impl/src/main/java/org/apache/geronimo/config/ConfigValueImpl.java (original)
+++ geronimo/components/config/branches/ConfigJSR/impl/src/main/java/org/apache/geronimo/config/ConfigValueImpl.java Tue May 29 20:44:38 2018
@@ -22,6 +22,7 @@ import javax.config.spi.Converter;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
@@ -119,6 +120,7 @@ public class ConfigValueImpl<T> implemen
throw new RuntimeException("Empty String or null supplied as string-default value for property "
+ keyOriginal);
}
+ value = replaceVariables(value);
if (isList) {
defaultValue = splitAndConvertListValue(value);
@@ -256,11 +258,21 @@ public class ConfigValueImpl<T> implemen
}
String valueStr = resolveStringValue();
+
if ((valueStr == null || valueStr.isEmpty()) && withDefault) {
return defaultValue;
}
- T value = convert ? convert(valueStr) : (T) valueStr;
+ T value;
+ if (isList || isSet) {
+ value = splitAndConvertListValue(valueStr);
+ if (isSet) {
+ value = (T) new HashSet((List) value);
+ }
+ }
+ else {
+ value = convert ? convert(valueStr) : (T) valueStr;
+ }
//X will later get added again
/*X
@@ -326,27 +338,34 @@ public class ConfigValueImpl<T> implemen
if (evaluateVariables && value != null)
{
- // recursively resolve any ${varName} in the value
- int startVar = 0;
- while ((startVar = value.indexOf("${", startVar)) >= 0)
+ value = replaceVariables(value);
+
+ }
+ return value;
+ }
+
+ private String replaceVariables(String value)
+ {
+ // recursively resolve any ${varName} in the value
+ int startVar = 0;
+ while ((startVar = value.indexOf("${", startVar)) >= 0)
+ {
+ int endVar = value.indexOf("}", startVar);
+ if (endVar <= 0)
{
- int endVar = value.indexOf("}", startVar);
- if (endVar <= 0)
- {
- break;
- }
- String varName = value.substring(startVar + 2, endVar);
- if (varName.isEmpty())
- {
- break;
- }
- String variableValue = config.access(varName).evaluateVariables(true).get();
- if (variableValue != null)
- {
- value = value.replace("${" + varName + "}", variableValue);
- }
- startVar++;
+ break;
}
+ String varName = value.substring(startVar + 2, endVar);
+ if (varName.isEmpty())
+ {
+ break;
+ }
+ String variableValue = config.access(varName).evaluateVariables(true).get();
+ if (variableValue != null)
+ {
+ value = value.replace("${" + varName + "}", variableValue);
+ }
+ startVar++;
}
return value;
}
@@ -370,12 +389,7 @@ public class ConfigValueImpl<T> implemen
return (T) value;
}
- Converter converter = config.getConverters().get(configEntryType);
- if (converter == null) {
- throw new IllegalStateException("No Converter for type " + configEntryType);
- }
-
- return (T) converter.convert(value);
+ return (T) config.convert(value, configEntryType);
}