Commit c8dc5e0c5628f6e554b43b40531ae15415ebfb40
1 parent
807b241d
Exists in
master
Adicionada na classe ConfigurationLoader a funcionalidade que permite a
utilização dos validadores de atributo da especificação Bean Validation (JSR 303). Foi adicionada ao pom a dependência para a implementação de referência dessa especificação (Hibernate Validator) para realização de testes.
Showing
2 changed files
with
27 additions
and
4 deletions
Show diff stats
impl/core/pom.xml
| @@ -206,6 +206,11 @@ | @@ -206,6 +206,11 @@ | ||
| 206 | <artifactId>weld-se-core</artifactId> | 206 | <artifactId>weld-se-core</artifactId> |
| 207 | <scope>test</scope> | 207 | <scope>test</scope> |
| 208 | </dependency> | 208 | </dependency> |
| 209 | + <dependency> | ||
| 210 | + <groupId>org.hibernate</groupId> | ||
| 211 | + <artifactId>hibernate-validator</artifactId> | ||
| 212 | + <scope>test</scope> | ||
| 213 | + </dependency> | ||
| 209 | 214 | ||
| 210 | <!-- | 215 | <!-- |
| 211 | <dependency> | 216 | <dependency> |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationLoader.java
| @@ -43,8 +43,14 @@ import java.io.Serializable; | @@ -43,8 +43,14 @@ import java.io.Serializable; | ||
| 43 | import java.lang.reflect.Field; | 43 | import java.lang.reflect.Field; |
| 44 | import java.util.Collection; | 44 | import java.util.Collection; |
| 45 | import java.util.HashSet; | 45 | import java.util.HashSet; |
| 46 | +import java.util.Iterator; | ||
| 47 | +import java.util.Set; | ||
| 46 | 48 | ||
| 47 | -import javax.validation.constraints.NotNull; | 49 | +import javax.validation.ConstraintViolation; |
| 50 | +import javax.validation.ConstraintViolationException; | ||
| 51 | +import javax.validation.Validation; | ||
| 52 | +import javax.validation.Validator; | ||
| 53 | +import javax.validation.ValidatorFactory; | ||
| 48 | 54 | ||
| 49 | import org.apache.commons.configuration.AbstractConfiguration; | 55 | import org.apache.commons.configuration.AbstractConfiguration; |
| 50 | import org.apache.commons.configuration.FileConfiguration; | 56 | import org.apache.commons.configuration.FileConfiguration; |
| @@ -275,10 +281,22 @@ public class ConfigurationLoader implements Serializable { | @@ -275,10 +281,22 @@ public class ConfigurationLoader implements Serializable { | ||
| 275 | } | 281 | } |
| 276 | } | 282 | } |
| 277 | 283 | ||
| 284 | + @SuppressWarnings({ "rawtypes", "unchecked" }) | ||
| 278 | private void validateValue(Field field, Object value) { | 285 | private void validateValue(Field field, Object value) { |
| 279 | - if (field.isAnnotationPresent(NotNull.class) && value == null) { | ||
| 280 | - throw new ConfigurationException(getBundle().getString("configuration-attribute-is-mandatory", | ||
| 281 | - this.prefix + getKey(field), this.resource), new NullPointerException()); | 286 | + ValidatorFactory dfv = Validation.buildDefaultValidatorFactory(); |
| 287 | + Validator validator = dfv.getValidator(); | ||
| 288 | + | ||
| 289 | + Set violations = validator.validateProperty(this.object, field.getName()); | ||
| 290 | + | ||
| 291 | + StringBuffer message = new StringBuffer(); | ||
| 292 | + | ||
| 293 | + if (!violations.isEmpty()) { | ||
| 294 | + for (Iterator iter = violations.iterator(); iter.hasNext();) { | ||
| 295 | + ConstraintViolation violation = (ConstraintViolation)iter.next(); | ||
| 296 | + message.append(field.toGenericString() + " " + violation.getMessage() + "\n"); | ||
| 297 | + } | ||
| 298 | + | ||
| 299 | + throw new ConfigurationException(message.toString(), new ConstraintViolationException(violations)); | ||
| 282 | } | 300 | } |
| 283 | } | 301 | } |
| 284 | 302 |