Apache Bval
# Apache Bval

Apache BVal es una implementación en código abierto de la especificación Bean Validation (JSR303) para la plataforma Java, parte integrante de Java EE 6.

## Origen

La base original de código fue donada a Apache Software Foundation por la empresa Agimatec GmbH y se pone a disposición bajo los términos de Apache License 2.0. Apache Bval pasó a integrar los proyectos principales de la Fundación el 15 de febrero de 2012.

## Materia

Las aplicaciones computacionales suelen dedicar una parte considerable de su código fuente a la validación de datos. Suele tratarse de código a la medida, fragmentado, disperso y muchas veces duplicado en las diversas capas o componentes.Bean Validation provee un mecanismo estandarizado para llevar a cabo la validación de datos en JavaBeans. Todo servidor Java EE 6 debe, además, incluir un proveedor para Bean Validation. Apache Bval es una de las implementaciones de este estándar. El mecanismo de validación es declarativo, por medio de anotaciones, que dan lugar a restricciones (constraints) y pueden aplicarse tanto a propiedades individuales como a tipos completos. He aquí un ejemplo de restricción aplicada a una propiedad de un JavaBean:

## Módulos

Esta implementación de JSR-303 se subdivide en los siguientes módulos:

* bval-core: Motor de metadatos de BVal.
* bval-xstream: Metadatos XML para BVal con XStream (opcional).
* bval-jsr303: Clases específicas de la implementación de JSR-303 Bean Validation 1.0
* org.apache.bval.bundle: Paquete agregado OSGi para Apache BVal (bval-core + bval-jsr303).
* bval-json: Componente opcional JSON para BVal (optional).
* bval-guice: Componente opcional para la integración de BVal en Google Guice.
* bval-tck: (Ejecutor del TCK) incorpora dependencias y ejecuta el TCK para JSR-303.
* bval-extras: Rutinas y restricciones opcionales de BVal, no especificadas por JSR-303.

Véase también Bean Validation.

