Commit 86fe2d78dcfc3f296e1c91beb7daf8861f67aa14

Authored by Cleverson Sacramento
1 parent de9a251e
Exists in master

Incluindo os logs antigos no novo ConfigurationLoader

impl/core/src/main/java/br/gov/frameworkdemoiselle/configuration/ConfigurationValueExtractor.java
... ... @@ -42,7 +42,7 @@ import org.apache.commons.configuration.Configuration;
42 42  
43 43 public interface ConfigurationValueExtractor {
44 44  
45   - Object getValue(String prefix, String key, Field field, Configuration configuration, Object defaultValue);
  45 + Object getValue(String prefix, String key, Field field, Configuration configuration);
46 46  
47 47 boolean isSupported(Field field);
48 48 }
... ...
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationArrayValueExtractor.java
... ... @@ -50,9 +50,8 @@ import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor;
50 50 public class ConfigurationArrayValueExtractor implements ConfigurationValueExtractor {
51 51  
52 52 @Override
53   - public Object getValue(String prefix, String key, Field field, Configuration configuration, Object defaultValue) {
54   - return new DataConfiguration(configuration).getArray(field.getType().getComponentType(), prefix + key,
55   - defaultValue);
  53 + public Object getValue(String prefix, String key, Field field, Configuration configuration) {
  54 + return new DataConfiguration(configuration).getArray(field.getType().getComponentType(), prefix + key);
56 55 }
57 56  
58 57 @Override
... ...
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationClassValueExtractor.java
... ... @@ -51,8 +51,8 @@ import br.gov.frameworkdemoiselle.util.Reflections;
51 51 public class ConfigurationClassValueExtractor implements ConfigurationValueExtractor {
52 52  
53 53 @Override
54   - public Object getValue(String prefix, String key, Field field, Configuration configuration, Object defaultValue) {
55   - Object value = defaultValue;
  54 + public Object getValue(String prefix, String key, Field field, Configuration configuration) {
  55 + Object value = null;
56 56 String canonicalName = configuration.getString(prefix + key);
57 57  
58 58 if (canonicalName != null) {
... ... @@ -60,7 +60,7 @@ public class ConfigurationClassValueExtractor implements ConfigurationValueExtra
60 60 value = Reflections.forName(canonicalName);
61 61 } catch (ClassNotFoundException cause) {
62 62 // TODO Lançar a mensagem correta
63   - throw new ConfigurationException(null, cause);
  63 + throw new ConfigurationException("", cause);
64 64 }
65 65 }
66 66  
... ...
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationLoader.java
... ... @@ -64,6 +64,7 @@ import br.gov.frameworkdemoiselle.util.Beans;
64 64 import br.gov.frameworkdemoiselle.util.NameQualifier;
65 65 import br.gov.frameworkdemoiselle.util.Reflections;
66 66 import br.gov.frameworkdemoiselle.util.ResourceBundle;
  67 +import br.gov.frameworkdemoiselle.util.Strings;
67 68  
68 69 /**
69 70 * This component loads a config class annotated with {@link Configuration} by filling its attributes with {@link Param}
... ... @@ -122,6 +123,11 @@ public class ConfigurationLoader implements Serializable {
122 123 }
123 124  
124 125 private void validateField(Field field) {
  126 + Name annotation = field.getAnnotation(Name.class);
  127 +
  128 + if (annotation != null && Strings.isEmpty(annotation.value())) {
  129 + throw new ConfigurationException(getBundle().getString("configuration-name-attribute-cant-be-empty"));
  130 + }
125 131 }
126 132  
127 133 private void loadType() {
... ... @@ -147,7 +153,7 @@ public class ConfigurationLoader implements Serializable {
147 153 ((FileConfiguration) config).load();
148 154  
149 155 } catch (org.apache.commons.configuration.ConfigurationException cause) {
150   - // TODO Logar como warning.
  156 + getLogger().warn(getBundle().getString("file-not-found", this.resource));
151 157 config = null;
152 158 }
153 159 }
... ... @@ -159,17 +165,21 @@ public class ConfigurationLoader implements Serializable {
159 165 AbstractConfiguration config;
160 166  
161 167 switch (this.type) {
162   - case SYSTEM:
163   - config = new SystemConfiguration();
  168 + case PROPERTIES:
  169 + config = new PropertiesConfiguration();
164 170 break;
165 171  
166 172 case XML:
167 173 config = new XMLConfiguration();
168 174 break;
169 175  
170   - default:
171   - config = new PropertiesConfiguration();
  176 + case SYSTEM:
  177 + config = new SystemConfiguration();
172 178 break;
  179 +
  180 + default:
  181 + throw new ConfigurationException(getBundle().getString("configuration-type-not-implemented-yet",
  182 + type.name()));
173 183 }
174 184  
175 185 config.setDelimiterParsingDisabled(true);
... ... @@ -201,14 +211,22 @@ public class ConfigurationLoader implements Serializable {
201 211 }
202 212  
203 213 Object defaultValue = Reflections.getFieldValue(field, this.object);
204   - Object finalValue = getValue(field, field.getType(), getKey(field), defaultValue);
  214 + Object loadedValue = getValue(field, field.getType(), getKey(field), defaultValue);
  215 + Object finalValue = (loadedValue == null ? defaultValue : loadedValue);
  216 +
  217 + if (loadedValue == null) {
  218 + getLogger().debug(getBundle().getString("configuration-key-not-found", this.prefix + getKey(field)));
  219 + }
205 220  
206 221 Reflections.setFieldValue(field, this.object, finalValue);
  222 + getLogger().debug(
  223 + getBundle().getString("configuration-field-loaded", this.prefix + getKey(field), field.getName(),
  224 + finalValue == null ? "null" : finalValue));
207 225 }
208 226  
209 227 private Object getValue(Field field, Class<?> type, String key, Object defaultValue) {
210 228 ConfigurationValueExtractor extractor = getValueExtractor(field);
211   - return extractor.getValue(this.prefix, key, field, this.configuration, defaultValue);
  229 + return extractor.getValue(this.prefix, key, field, this.configuration);
212 230 }
213 231  
214 232 private ConfigurationValueExtractor getValueExtractor(Field field) {
... ... @@ -259,8 +277,8 @@ public class ConfigurationLoader implements Serializable {
259 277  
260 278 private void validateValue(Field field, Object value) {
261 279 if (field.isAnnotationPresent(NotNull.class) && value == null) {
262   - throw new ConfigurationException("", new NullPointerException());
263   - // TODO: Pegar mensagem do Bundle e verificar como as mensagens de log estão implementadas
  280 + throw new ConfigurationException(getBundle().getString("configuration-attribute-is-mandatory",
  281 + this.prefix + getKey(field), this.resource), new NullPointerException());
264 282 }
265 283 }
266 284  
... ...
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationMapValueExtractor.java
... ... @@ -54,9 +54,8 @@ import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor;
54 54 public class ConfigurationMapValueExtractor implements ConfigurationValueExtractor {
55 55  
56 56 @Override
57   - public Object getValue(String prefix, String key, Field field, Configuration configuration, Object defaultValue) {
58   - @SuppressWarnings("unchecked")
59   - Map<String, Object> value = (Map<String, Object>) defaultValue;
  57 + public Object getValue(String prefix, String key, Field field, Configuration configuration) {
  58 + Map<String, Object> value = null;
60 59  
61 60 String regexp = "^(" + prefix + ")((.+)\\.)?(" + key + ")$";
62 61 Pattern pattern = Pattern.compile(regexp);
... ...
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationPrimitiveOrWrapperValueExtractor.java
... ... @@ -69,14 +69,14 @@ public class ConfigurationPrimitiveOrWrapperValueExtractor implements Configurat
69 69  
70 70 @Override
71 71 @SuppressWarnings("unchecked")
72   - public Object getValue(String prefix, String key, Field field, Configuration configuration, Object defaultValue) {
  72 + public Object getValue(String prefix, String key, Field field, Configuration configuration) {
73 73 Object value;
74 74  
75 75 try {
76   - value = new DataConfiguration(configuration).get(ClassUtils.primitiveToWrapper(field.getType()), prefix + key, defaultValue);
  76 + value = new DataConfiguration(configuration).get(ClassUtils.primitiveToWrapper(field.getType()), prefix + key);
77 77  
78 78 } catch (ConversionException cause) {
79   - value = defaultValue;
  79 + value = null;
80 80 }
81 81  
82 82 return value;
... ...
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationStringValueExtractor.java
... ... @@ -49,8 +49,8 @@ import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor;
49 49 public class ConfigurationStringValueExtractor implements ConfigurationValueExtractor {
50 50  
51 51 @Override
52   - public Object getValue(String prefix, String key, Field field, Configuration configuration, Object defaultValue) {
53   - return configuration.getString(prefix + key, (String) defaultValue);
  52 + public Object getValue(String prefix, String key, Field field, Configuration configuration) {
  53 + return configuration.getString(prefix + key);
54 54 }
55 55  
56 56 @Override
... ...
impl/core/src/main/resources/demoiselle-core-bundle.properties
... ... @@ -40,7 +40,6 @@ ambiguous-strategy-resolution=Foi detectada ambiguidade da interface {0} com as
40 40 bean-not-found=Voc\u00EA est\u00E1 tentando obter um objeto n\u00E3o reconhecido pelo CDI via Beans.getReference({0})
41 41 more-than-one-exceptionhandler-defined-for-same-class=Foi definido mais de um m\u00E9todo na classe {0} para tratar a exce\u00E7\u00E3o {1}
42 42 handling-exception=Tratando a exce\u00E7\u00E3o {0}
43   -ambiguous-key=Existe mais de uma chave declarada no arquivo de configura\u00E7\u00E3o para o campo {0} da classe {1}. Indique qual a chave correta utilizando a anota\u00E7\u00E3o Name
44 43 taking-off=O Demoiselle ${project.version} decolou
45 44 engine-off=Desligando os motores do Demoiselle ${project.version}
46 45 setting-up-bean-manager=BeanManager dispon\u00EDvel atrav\u00E9s do utilit\u00E1rio {0}
... ... @@ -59,16 +58,14 @@ loading-configuration-class=Carregando a classe de configura\u00E7\u00E3o {0}
59 58 configuration-field-loaded=Configura\u00E7\u00E3o {0} atribu\u00EDda a {1} com o valor {2}
60 59 configuration-attribute-is-mandatory=A configura\u00E7\u00E3o {0} \u00E9 obrigat\u00F3ria, mas n\u00E3o foi encontrada em {1}
61 60 configuration-name-attribute-cant-be-empty=A nota\u00E7\u00E3o Name n\u00E3o pode estar em branco
62   -configuration-key-not-found=Chave de configura\u00E7\u00E3o {0} n\u00E3o encontrada. Conven\u00E7\u00F5es verificadas\: {1}
  61 +configuration-key-not-found=Chave de configura\u00E7\u00E3o {0} n\u00E3o encontrada
63 62  
64 63 transaction-not-defined=Nenhuma transa\u00E7\u00E3o foi definida. Para utilizar @{0} \u00E9 preciso definir a propriedade frameworkdemoiselle.transaction.class com a estrat\u00E9gia de transa\u00E7\u00E3o desejada no arquivo demoiselle.properties
65 64 executing-all=Executando todos os \: {0}
66 65 custom-context-was-registered=O contexto {0} foi registrado
67 66 custom-context-was-unregistered=O contexto {0} foi removido
68 67  
69   -error-creating-configuration-from-resource=Error creating configuration from resource named "{0}"
70 68 configuration-type-not-implemented-yet=Configuration type "{0}" is not implemented yet
71   -error-converting-to-type=Error converting to type "{0}"
72 69 error-creating-new-instance-for=Error creating a new instance for "{0}"
73 70 executed-successfully={0} execultado com sucesso
74 71 must-declare-one-single-parameter=Voc\u00EA deve declarar um par\u00E2metro \u00FAnico em {0}
... ...
impl/core/src/test/java/br/gov/frameworkdemoiselle/configuration/field/custom/MyValueExtractor.java
... ... @@ -9,7 +9,7 @@ import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor;
9 9 public class MyValueExtractor implements ConfigurationValueExtractor {
10 10  
11 11 @Override
12   - public Object getValue(String prefix, String key, Field field, Configuration configuration, Object defaultValue) {
  12 + public Object getValue(String prefix, String key, Field field, Configuration configuration) {
13 13 return new MappedClass();
14 14 }
15 15  
... ...