Commit 392ab62c3d72b6f144e6d12b4491782a2f9c9331

Authored by Emerson Oliveira
1 parent 62dde646
Exists in master

Ajustes para carregamento de arrays a partir de arquivo do

tipo properties
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java
... ... @@ -52,6 +52,7 @@ import org.apache.commons.configuration.FileConfiguration;
52 52 import org.apache.commons.configuration.PropertiesConfiguration;
53 53 import org.apache.commons.configuration.SystemConfiguration;
54 54 import org.apache.commons.configuration.XMLConfiguration;
  55 +import org.apache.commons.lang.ClassUtils;
55 56  
56 57 import br.gov.frameworkdemoiselle.annotation.Ignore;
57 58 import br.gov.frameworkdemoiselle.annotation.Name;
... ... @@ -178,37 +179,36 @@ public class ConfigurationLoader implements Serializable {
178 179 }
179 180  
180 181 String key = getKey(field);
  182 + Object value;
181 183  
182 184 if (field.getType().isArray()) {
183   - loadArrayField(field, key);
184   - } else if (field.getType() == String.class) {
185   - loadStringField(field, key);
  185 + value = getArrayValue(field, key);
186 186 } else {
187   - loadBasicField(field, key);
  187 + value = getPrimitiveOrWrappedValue(field, key);
188 188 }
189   - }
190 189  
191   - private void loadArrayField(Field field, String key) {
192   - Object value = this.configuration.getArray(field.getType().getComponentType(), key,
193   - Reflections.getFieldValue(field, this.object));
194 190 Reflections.setFieldValue(field, this.object, value);
195 191 }
196 192  
197   - private void loadStringField(Field field, String key) {
198   - Object value = this.configuration.getString(key, (String) Reflections.getFieldValue(field, this.object));
199   - Reflections.setFieldValue(field, this.object, value);
  193 + private Object getArrayValue(Field field, String key) {
  194 + return this.configuration.getArray(field.getType().getComponentType(), key,
  195 + Reflections.getFieldValue(field, this.object));
200 196 }
201 197  
202   - private void loadBasicField(Field field, String key) {
  198 + @SuppressWarnings("unchecked")
  199 + private Object getPrimitiveOrWrappedValue(Field field, String key) {
203 200 Object value;
  201 + Object defaultValue = Reflections.getFieldValue(field, this.object);
204 202  
205 203 try {
206   - value = this.configuration.get(field.getType(), key, Reflections.getFieldValue(field, this.object));
  204 + Class<Object> type = ClassUtils.primitiveToWrapper(field.getType());
  205 + value = this.configuration.get(type, key, defaultValue);
  206 +
207 207 } catch (ConversionException cause) {
208   - value = null;
  208 + value = defaultValue;
209 209 }
210 210  
211   - Reflections.setFieldValue(field, this.object, value);
  211 + return value;
212 212 }
213 213  
214 214 private String getKey(Field field) {
... ...