© Excellent backgrounds/Shutterstock.com
Kolumne: EnterpriseTales

Einer für alle - alle für einen: Bean Validation 1.1


Es gibt wohl kaum eine andere Java-Spezifikation, die so eng mit der Community verbunden ist wie das Bean-Validation-API. Erwachsen aus einem Open-Source-Projekt, sind auch weiterhin die Anforderungen und Wünsche der Anwender maßgeblicher Treiber für Neuerungen und Verbesserungen. Wie die kommende Version in etwa aussehen könnte, zeigt ein Blick in die Kristallkugel aka JSR 349 Early Draft.

Das Bean-Validation-API ist deutlich mehr als nur eine Spezifikation inklusive Referenzimplementierung. Ein Blick auf die zugehörige Webseite [1] macht klar, wie auch in einen offiziellen JSR die Community gewinnbringend mit eingebunden werden kann und so der ursprüngliche Open-Source-Gedanke erhalten bleibt. So wundert es auch nicht, dass ein Großteil der bisher für die aktuell als Early Draft vorliegende Version 1.1 [2] angedachten Neuerungen und Erweiterungen das direkte Feedback der Nutzergemeinde darstellt. Bevor wir das eine oder andere zukünftige Feature im Detail anschauen, soll kurz ein Überblick über die wichtigsten zu erwartenden Neuerungen gegeben werden:

  • Integration mit weiteren APIs: bessere Integration in weitere JSRs wie JAX-RS, JAXB, EJB sowie JPA und CDI

  • Method-Level Validation: Validierung von Methodenparametern und -rückgabewerten

  • Dependency Injection: CDI-Support für Bean Validation Components (MessageInterpolator, ConstraintValidatorFactory und ConstraintValidator)

  • Constraint Composition: Erweiterung der Komposition von bestehenden Constraints durch OR-Verknüpfungen. Aktuell sind Kompositionen automatisch AND-Verknüpfungen.

  • Group Propagation: Überführung einer Constraint-Gruppe in eine andere Gruppe bei kaskadierenden Validierungen

  • Constraints für Collection-Elemente: Aktuell werden lediglich Constraints auf einer Collection selbst oder kaskadierende Constraints auf den enthaltenen Elementen unterstützt. Zukünftig soll auch die direkte Angabe von Constraints auf Collection-Element-Ebene möglich sein, wodurch zum Beispiel die Validierung von nativen Typen unterstützt werden wird. Dies ist eigentlich nur ein Workaround für die nach wie vor fehlende Unterstützung von Annotationen auf Java-Typen (JSR 308 – Early Draft).

Integration

Wenn auch nicht offizieller Bestandteil des Bean-Validation-API, legt die Spezifikation großen Wert darauf, sich optimal in die verschiedenen Lifecycles der Java-SE/EE-Plattformen einzubetten. Ein gutes Beispiel hierfür ist die bereits heute schon bestehende Integration in JSF 2 und JPA 2. Angedacht für die Version ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang