From 699cf9d77bd769615b609d8dcff84b104f51078d Mon Sep 17 00:00:00 2001 From: lor6 Date: Wed, 19 Apr 2017 15:27:02 +0300 Subject: [PATCH] Bael 736 (#1685) * dynamic validation * small fixes * remove set property * fix conflicts * fix conflicts * add optional * small fix * update get --- .../ContactInfoValidator.java | 24 ++++++++++++------- .../config/CustomerController.java | 3 --- .../config/PersistenceConfig.java | 6 ----- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/ContactInfoValidator.java b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/ContactInfoValidator.java index 81345eac83..c12c28d00a 100644 --- a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/ContactInfoValidator.java +++ b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/ContactInfoValidator.java @@ -2,6 +2,7 @@ package com.baeldung.dynamicvalidation; import com.baeldung.dynamicvalidation.dao.ContactInfoExpressionRepository; import com.baeldung.dynamicvalidation.model.ContactInfoExpression; +import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.thymeleaf.util.StringUtils; @@ -12,27 +13,34 @@ import java.util.regex.Pattern; public class ContactInfoValidator implements ConstraintValidator { + private static final Logger LOG = Logger.getLogger(ContactInfoValidator.class); + @Autowired private ContactInfoExpressionRepository expressionRepository; @Value("${contactInfoType}") String expressionType; + private String pattern; + @Override public void initialize(final ContactInfo contactInfo) { + if (StringUtils.isEmptyOrWhitespace(expressionType)) { + LOG.error("Contact info type missing!"); + } else { + pattern = expressionRepository.findOne(expressionType) + .map(ContactInfoExpression::getPattern) + .orElse(""); + } } @Override public boolean isValid(final String value, final ConstraintValidatorContext context) { - if (StringUtils.isEmptyOrWhitespace(expressionType)) { - return false; + if (!StringUtils.isEmptyOrWhitespace(pattern)) { + return Pattern.matches(pattern, value); } - - return expressionRepository - .findOne(expressionType) - .map(ContactInfoExpression::getPattern) - .map(p -> Pattern.matches(p, value)) - .orElse(false); + LOG.error("Contact info pattern missing!"); + return false; } } diff --git a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/CustomerController.java b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/CustomerController.java index d1e6b845d7..f08271f307 100644 --- a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/CustomerController.java +++ b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/CustomerController.java @@ -1,10 +1,7 @@ package com.baeldung.dynamicvalidation.config; -import java.util.List; - import javax.validation.Valid; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; diff --git a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/PersistenceConfig.java b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/PersistenceConfig.java index 0eeac2a8dc..d89dfc5fcd 100644 --- a/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/PersistenceConfig.java +++ b/spring-boot/src/main/java/com/baeldung/dynamicvalidation/config/PersistenceConfig.java @@ -6,7 +6,6 @@ import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; @@ -16,11 +15,6 @@ import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; @Configuration public class PersistenceConfig { - @Bean - public JdbcTemplate getJdbcTemplate() { - return new JdbcTemplate(dataSource()); - } - @Bean public DataSource dataSource() { EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();