OVal is a pragmatic and extensible validation framework for any kind of Java objects (not only JavaBeans). Constraints can be configured with annotations, POJOs, or XML. Custom constraints can be expressed in pure Java or by using scripting languages such as JavaScript, Groovy, or BeanShell. Besides simple object validation, OVal provides certain Programming by Contract features. They can easily be enabled by using the provided AspectJ aspects.