Discussions

What is JaValid?
JaValid is an annotation-based validation framework for Java and provides integration with JSF/Facelets, Spring and any database. The framework can be extended easily, by means of extensions, and allows you to add your own validation constraints in addition to the ones shipping with the framework.
What has changed?
The most important changes can be found below. For all changes check the release notes.
- Annotations are registered by default now (for core and extensions),
* Extensions register their annotations as soon as they are enabled. This
reduces unnecessary configuration.
* Update your configuration file if you used one!
* Remember: the core can always be used without any configuration!
- JavalidValidator interface introduces complex validation option.
Therefore refactored all existing validators (they now extend
AbstractJavalidValidator). The change is backwards compatible if you let
any custom 1.1 validators extend AbstractJavalidValidator.
- Added new validation annotations:
* @DateBefore Validates that a date is before another date in the business
model using expressions. Comparison can be done on dates only,
dates with time and milliseconds.
* @DateAfter Validates that a date is after another date in the business
model using expressions. Comparison can be done on dates only,
dates with time and milliseconds.
* @DateEqual Validates that a date matches another date in the business
model using expressions. Comparison can be done on dates only,
dates with time and milliseconds.
* @DateNotEqual Validates that a date does not equal another date in the
business model using expressions. Comparison can be done on
dates only, dates with time and milliseconds.
- Added support for classlevel annotation validations as well as introduced
several of these new type of annotations:
* @NotNullAll
* @NullOrNotNullAll
* @NotEmptyAll
* @EmptyOrNotEmptyAll
- Added MessageCode resolver, which allows to resolve message codes.
- Added automatic message (user feedback) resolving (if enabled) for validation messages.
- @JvGroup is not required anymore on methods/fields/class if you need default
validation (without groups or other options),
it will use the default group then (which is "1")
- Added Spring AnnotationValidatorBeanPostProcessor, which allows for validation of Spring Beans in an
automated way.
- @NotEmpty improved, it can be annotated on java.lang.String,
java.lang.StringBuffer, java.lang.StringBuilder, any array,
java.util.Collection and java.util.Map
For more information, downloads and documentation visit: http://www.javalid.org
Have fun!

Quick question (which I was hoping to find from FAQ but didn't): what is the relation between JaValid, and JSR-303, Bean Validation API? Given seemingly similar goals, I would have guessed JaValid might be an implementation, but there is no mention of this on project page.
Assuming JaValid is not an implementation, what would be the main reason to use JaValid over standard alternative?
I am guessing JaValid has bigger selection of annotations (and probably functionality), for one. But beyond this?

Hi Tatu,
There is no relation with the JSR. JaValid originates from way before this JSR was ever created, hence it is not an implementation of it.
However in future releases there's a good chance it will support it nevertheless.
The idea of JaValid is to go eventually beyond the JSR (it is already at some points), and offer as you said yourself more functionality, ease of use, several integrations etc.
Martijn

TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations technology projects - with its network of technology-specific websites, events and online magazines.