- GWT and Hibernate Validator
- <module rename-to='start'>
- ...
- <inherits name="com.google.gwt.validation.Validation" />
- <!-- with this doesn't work too
- <inherits name="org.hibernate.validator.HibernateValidator" />
- -->
- ...
- </module>
- public class Start implements EntryPoint {
- public void onModuleLoad() {
- final ValidatorFactory factory = Validation.byDefaultProvider().configure().buildValidatorFactory();
- ...
- }
- }
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- <version>1.0.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>4.2.0.Final</version>
- </dependency>
- <!-- hibernate validator -->
- <inherits name="org.hibernate.validator.HibernateValidator" />
- <replace-with class="net.marioosh.gwt.client.MyValidatorFactory">
- <when-type-is class="javax.validation.ValidatorFactory" />
- </replace-with>
- package net.marioosh.gwt.client;
- import javax.validation.Validator;
- import net.marioosh.gwt.shared.model.entities.Link;
- import com.google.gwt.core.client.GWT;
- import com.google.gwt.validation.client.AbstractGwtValidatorFactory;
- import com.google.gwt.validation.client.GwtValidation;
- import com.google.gwt.validation.client.impl.AbstractGwtValidator;
- public class MyValidatorFactory extends AbstractGwtValidatorFactory {
- /**
- * Only the classes listed in the {@link GwtValidation} annotation can be validated.
- * In my example: Link.class can be validated
- */
- @GwtValidation(value = { Link.class })
- public interface GwtValidator extends Validator {
- }
- @Override
- public AbstractGwtValidator createValidator() {
- return GWT.create(GwtValidator.class);
- }
- }
- <!-- local dependency -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator-sources</artifactId>
- <version>4.2.0.Final</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/hibernate-validator-4.2.0.Final-sources.jar</systemPath>
- </dependency>
- public void onModuleLoad() {
- final ValidatorFactory factory = Validation.byDefaultProvider().configure().buildValidatorFactory();
- final Validator validator = factory.getValidator();
- ...
- Link l = new Link(....);
- Set<ConstraintViolation<Link>> violations = validator.validate(l);
- if(!violations.isEmpty()) {
- // validation fail
- } else {
- // validation success
- }
- ...
- }