The Hibernate Validator module is used to:

1) generate client side validators.
2) super source hibernate specific constraints
3) super source hibernate classes needed to return ConstraintViolations from the server to the client.


Maintenance Notes.
Test using samples/validation.


NOTE
(nchalko) all of should be pushed back to hibernate.