@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void validate(Collection<Bean> beans) throws AbortRuntimeException { if (validator == null) { validator = Validation.buildDefaultValidatorFactory().getValidator(); } ClassRepository repos = new ClassRepository(); ClassLoader cl = repos.getClassLoader(); ClassLoader org = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(cl); for (Bean bean : beans) { Class genclazz = forName(bean.getSchema().getType()); Object beanToValidate = conversion.convert(bean, genclazz); logger.debug("Validating {}", beanToValidate); Set<ConstraintViolation<Object>> violations = validator.validate(beanToValidate); String msg = ""; for (ConstraintViolation<Object> v : violations) { msg = msg + v.getPropertyPath() + " " + v.getMessage(); } if (msg != null && !"".equals(msg.trim())) { throw CFG309_VALIDATION_ERROR(msg); } } } finally { Thread.currentThread().setContextClassLoader(org); } }
/** * Validate a collection of bean instances. This method is called * when beans are provisioned from an administrative context. * <p> * Beans can correlate their respective validation constraints using * the schema name. * </p> * * @param beans to be validated. * @throws AbortRuntimeException */ @SuppressWarnings({ "rawtypes", "unchecked" }) public void validate(Collection<Bean> beans) throws AbortRuntimeException { if (validator == null) { validator = Validation.buildDefaultValidatorFactory().getValidator(); } for (Bean bean : beans) { Class genclazz = loadClass(bean.getSchema().getType()); Object beanToValidate = conversion.convert(bean, genclazz); Set<ConstraintViolation<Object>> violations = validator.validate(beanToValidate); String msg = ""; for (ConstraintViolation<Object> v : violations) { msg = msg + v.getPropertyPath() + " " + v.getMessage(); } if (!"".equals(msg.trim())) { throw Events.CFG309_VALIDATION_ERROR(msg); } } }