Hibernate Validator - Bean Validation 2.0 (JSR 380) Reference Implementation
Java Other
Latest commit 11815ad Jan 20, 2017 @gsmet gsmet HV-1220 Add test for programmatically defined cross parameter constra…
…int defined on a method returning void
Permalink
Failed to load latest commit information.
annotation-processor HV-1212 Removing AnimalSniffer set-up Jan 19, 2017
build-config HV-1145 Include RESOURCE_SPECIFICATION in ParenPad checkstyle rule Dec 22, 2016
cdi HV-1212 Removing AnimalSniffer set-up Jan 19, 2017
distribution HV-1214 Switch to Asciidoctor for the documentation output Jan 20, 2017
documentation HV-1214 Push the output to the en-US directory to be consistent with how Jan 20, 2017
engine HV-1220 Add test for programmatically defined cross parameter constra… Jan 20, 2017
integration HV-1211 Remove empty ConstraintValidator#initialize implementations Jan 18, 2017
modules HV-1124 Add integration test for javax.money validation on WildFly Jan 9, 2017
osgi HV-1203 Add a @Currency annotation for javax.money Jan 12, 2017
performance HV-1163 Update performance tests to 5.3.3.Final Nov 30, 2016
src/main HV-1076 Fix Checkstyle configuration and all the violations. Jun 20, 2016
tck-runner HV-1187 Fix incontainer build which was broken by latest changes Dec 19, 2016
test-utils HV-1118 Using reflection based parameter names by default Oct 5, 2016
.gitattributes HV-760 Adding .gitattributes to ensure consistent line ending style May 2, 2013
.gitignore Adding .checkstyle to .gitignore Sep 22, 2016
.travis.yml Travis - Add -U option to mvn Jan 19, 2017
CONTRIBUTING.md HV-1078 Update the CONTRIBUTING.md file Jun 21, 2016
README.md HV-1195 Fix link to annotation processor documentation in README.md Jan 3, 2017
changelog.txt [Jenkins release job] changelog.txt updated by release build 5.4.0.CR1 Jan 12, 2017
copyright.txt HV-1164 Adding Sebastian to copyright.txt Nov 30, 2016
license.txt BVAL-31 refactored some code, imported AnnotationFactory from annotat… Jan 7, 2009
pom.xml HV-1214 Switch to Asciidoctor for the documentation output Jan 20, 2017
settings-example.xml HV-1187 Only use Groovy 2.4.8-SNAPSHOT for JDK 9 Dec 17, 2016

README.md

Hibernate Validator

Version: 5.3.4.Final - 08-12-2016

What is it?

This is the reference implementation of JSR-380 - Bean Validation 2.0. Bean Validation defines a metadata model and API for JavaBean as well as method validation. The default metadata source are annotations, with the ability to override and extend the meta-data through the use of XML validation descriptors.

Documentation

The documentation for this release is included in the docs directory of the distribution package or can be accessed online.

Release Notes

The full list of changes for this release can be found in changelog.txt.

System Requirements

JDK 1.8 or above.

Using Hibernate Validator

  • In case you use the distribution archive from the download site, copy dist/hibernate-validator-<version>.jar together with all jar files from dist/lib/required into the classpath of your application. For the purposes of logging, Hibernate Validator uses the JBoss Logging API, an abstraction layer which supports several logging solutions such (e.g. log4j or the logging framework provided by the JDK) as implementation. Just add a supported logging library to the classpath (e.g. log4j-<version>.jar) and JBoss Logging will delegate any log requests to that provider.

  • Add the following to your Maven or Ivy dependency list

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.3.4.Final</version>
    </dependency>
    

    You also need an API and implementation of the Unified Expression Language. These dependencies must be explicitly added in an SE environment. In an EE environment they are often already provided.

    <dependency>
       <groupId>org.glassfish</groupId>
       <artifactId>javax.el</artifactId>
       <version>3.0.1-b08</version>
    </dependency>
    
  • Bean Validation defines integration points with CDI. If your application runs in an environment which does not provide this integration out of the box, you may use the Hibernate Validator CDI portable extension by adding the following dependency:

    <dependency>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate-validator-cdi</artifactId>
       <version>5.3.4.Final</version>
    </dependency>
    
  • hibernate-validator-annotation-processor-<version>.jar is an optional jar which can be integrated with your build environment respectively IDE to verify that constraint annotations are correctly used. Refer to the online documentation for more information.

Licensing

Hibernate Validator itself as well as the Bean Validation API and TCK are all provided and distributed under the Apache Software License 2.0. Refer to license.txt for more information.

Build from Source

You can build Hibernate Validator from source by cloning the git repository git://github.com/hibernate/hibernate-validator.git. You will also need a JDK 8 and Maven 3 (>= 3.0.3). With these prerequisites in place you can compile the source via

mvn -s settings-example.xml clean install

There are more build options available as well. For more information refer to Contributing to Hibernate Validator.

Build on JDK 9

To build Hibernate Validator with JDK 9, export the following environment variable:

export MAVEN_OPTS="--add-modules java.annotations.common,java.xml.bind --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED"

Then the build can be started like this:

mvn -s settings-example.xml clean install

Also the OSGi integration tests will fail on Java 9 currently, hence the "osgi" module is excluded automatically when building on JDK 9. We are waiting for the release of Karaf 4.1.0.

Here are the reasons why we added the various --add-opens options:

  • java.security: required by wildfly-maven-plugin:execute-commands (for the WildFly integration tests and the TCK runner running in container mode)
  • java.lang: required by JRuby for Asciidoc processing

Continuous Integration

The official Continuous Integration service for the project is hosted on ci.hibernate.org.

We provide a .travis.yml file so that you can enable CI for your GitHub fork by enabling the build in your Travis CI account.

Hibernate Validator URLs