Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 4th, 2012  |  syntax: None  |  size: 2.49 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. GWT and Hibernate Validator
  2. <module rename-to='start'>
  3.   ...
  4.   <inherits name="com.google.gwt.validation.Validation" />
  5.   <!-- with this doesn't work too
  6.   <inherits name="org.hibernate.validator.HibernateValidator" />
  7.   -->
  8.   ...
  9. </module>
  10.        
  11. public class Start implements EntryPoint {
  12.     public void onModuleLoad() {
  13.  
  14.         final ValidatorFactory factory = Validation.byDefaultProvider().configure().buildValidatorFactory();
  15.         ...
  16.     }
  17. }
  18.        
  19. <dependency>
  20.   <groupId>javax.validation</groupId>
  21.   <artifactId>validation-api</artifactId>
  22.   <version>1.0.0.GA</version>
  23. </dependency>
  24. <dependency>
  25.   <groupId>org.hibernate</groupId>
  26.   <artifactId>hibernate-validator</artifactId>
  27.   <version>4.2.0.Final</version>
  28. </dependency>
  29.        
  30. <!-- hibernate validator -->
  31. <inherits name="org.hibernate.validator.HibernateValidator" />
  32. <replace-with class="net.marioosh.gwt.client.MyValidatorFactory">
  33.   <when-type-is class="javax.validation.ValidatorFactory" />
  34. </replace-with>
  35.        
  36. package net.marioosh.gwt.client;
  37.  
  38. import javax.validation.Validator;
  39. import net.marioosh.gwt.shared.model.entities.Link;
  40. import com.google.gwt.core.client.GWT;
  41. import com.google.gwt.validation.client.AbstractGwtValidatorFactory;
  42. import com.google.gwt.validation.client.GwtValidation;
  43. import com.google.gwt.validation.client.impl.AbstractGwtValidator;
  44.  
  45. public class MyValidatorFactory extends AbstractGwtValidatorFactory {
  46.  
  47.     /**
  48.      * Only the classes listed in the {@link GwtValidation} annotation can be validated.
  49.      * In my example: Link.class can be validated
  50.      */
  51.     @GwtValidation(value = { Link.class })
  52.     public interface GwtValidator extends Validator {
  53.     }
  54.  
  55.     @Override
  56.     public AbstractGwtValidator createValidator() {
  57.         return GWT.create(GwtValidator.class);
  58.     }
  59.  
  60. }
  61.        
  62. <!-- local dependency -->
  63. <dependency>
  64.     <groupId>org.hibernate</groupId>
  65.     <artifactId>hibernate-validator-sources</artifactId>
  66.     <version>4.2.0.Final</version>
  67.     <scope>system</scope>
  68.     <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/hibernate-validator-4.2.0.Final-sources.jar</systemPath>
  69. </dependency>
  70.        
  71. public void onModuleLoad() {
  72.     final ValidatorFactory factory = Validation.byDefaultProvider().configure().buildValidatorFactory();
  73.     final Validator validator = factory.getValidator();
  74.     ...
  75.  
  76.     Link l = new Link(....);
  77.     Set<ConstraintViolation<Link>> violations = validator.validate(l);
  78.  
  79.     if(!violations.isEmpty()) {
  80.            // validation fail
  81.     } else {
  82.            // validation success
  83.     }
  84.     ...
  85. }