Apache BVal - README.txt
Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------

About
=====
This is an implementation of JSR 303 (Bean Validation), a specification of the
Java API for Javabean validation in Java EE and Java SE.
The technical objective is to provide a class level constraint declaration and
validation facility for the Java application developer, as well as a constraint
metadata repository and query API.


Release Notes
=============
Please refer to the included CHANGES.txt for a complete list of new features
available and issues resolved in this release.


Getting Started
===============
Please visit the project website for the latest information:
    http://bval.apache.org/

Along with the developer mailing list archive:
    http://mail-archives.apache.org/mod_mbox/bval-dev/


System Requirements
===================
You need a platform that supports Java SE 5 or later.
Most testing has been done with Java SE 6 on Mac OS X, Windows and Linux.


Building
==========================
To build from source code:
  - Sources require Java SE 5 or higher. (Tested with JDK 1.5.0_22 and 1.6.0_21)
  - The project is built with Apache Maven (suggested is at least 2.2.1).
    You need to download and install Maven from: http://maven.apache.org/
  - Invoke maven in the root directory or a module subdirectory:
      mvn install

Checkout the Building section on the project web site for more details:
    http://bval.apache.org/


Support
=======
Any problems with this release can be reported to the user mailing list or
opened in the Jira issue tracker.

  Mailing list archive:
    http://mail-archives.apache.org/mod_mbox/bval-user/

  User mailing list:
    user@bval.apache.org

  User mailing list subscription:
    user-subscribe@bval.apache.org

  Jira:
    https://issues.apache.org/jira/browse/BVAL/

--------------------------------------------------------------------------------

