Upcoming Jakarta Validation 4.0
Jakarta Validation 4.0 is on its way, as the release plan for this version was approved exactly one month ago on May 6!
What to expect from Jakarta Validation 4.0?
The highlights of this release plan are as follows:
-
This version of the specification will require Java SE 21 or higher.
-
Prepare for removal of the legacy approach to mark container elements for cascading validation, i.e.
@Valid List<MyBean> list;
. The next major version will consider such code to be requesting the cascading validation of theList
, and not its elements. It’s time to finally switch any remaining code using this approach to the much more encouraged and cleanerList<@Valid MyBean> list;
If you have a particular use case where you think that you won’t be able to express your constraints without relying on the legacy approach — please reach out on the corresponding issue. -
Introduce an alternative initialization method
ConstraintValidator#initialize
to provide more context than just the annotation so that it would be possible to use a more eager approach to initializing the constraint validator. -
Relax element order in the XSD where it doesn’t matter.
-
Add support for
ConstraintValidator
declaration via service loader. -
Remove any uses of the
SecurityManager
as it’s being deprecated without an alternative for some time now. -
Reevaluate the value extraction for
Optional
and whethernull
should be passed as an extracted value for empty optionals. -
Other more minor clarifications, cleanups and improvements.
Join the discussions at the issue tracker, or bring your proposals for future consideration.
Jakarta Validation 3.1 specification
Jakarta Validation 3.1 was released earlier in 2024.
What’s new in Bean Validation 3.1?
The 3.1 update of the specification, compared to 3.0, brings the following changes:
-
The minimum required Java version is set to 17.
-
The rename of the specification from Jakarta Bean Validation to Jakarta Validation.
-
The clarification on the record validation.
Jakarta Validation 3.1 will be a part of the Jakarta EE 11 platform, to be released later.
Give it a try
Don’t wait and try out the new release yourself! Just get the Hibernate Validator implementation, read the Getting started section of its reference guide. You also can read the complete specification as well as the API docs.
Bean Validation 2.0 - What’s in it?
While a couple of months have passed since Bean Validation 2.0 got released, the info about what’s new in the spec may still not yet have reached everyone. Here are two presentations which I wanted to share in order to help with that.
The first one is the slide set of the talk on Bean Validation 2.0 and JSR 380 which I did at JavaOne 2017:
You can also download a PDF with these slides from Speaker Deck here.
While the JavaOne session was not recorded, my quickie session on the same topic at Devoxx 2017 luckily was. In just 14:17 min you’ll get an overview on the new spec revision. It’s lots of contents for the short amount of time, but you can pause and rewind as often as you like ;)
Feedback
You got feedback on these presentations or just have a general question around Bean Validation? Then let us know by adding a comment below or sending a message to the Bean Validation mailing list.
While at the moment no work on the spec itself is going on, we’re eager to explore new features in the reference implementation. So if there’s something which you think should be added in a future spec revision, it’s the perfect time to get in touch so we can begin to experiment with these things.
Your feature requests (and pull requests) will be highly welcomed!
Bean Validation has a new website!
Bean Validation just got a new website and we hope you will like it!
New layout
We developed a more modern layout based on Semantic UI.
It should be easier to the eye and more readable too.
The logo, contributed by Hendrik Ebbers for Bean Validation 2.0, is now in good place.
New organization
In the old website, the information about a given version of the spec was spread over multiple pages. It was hard for the user to get an overview of a given version and it was also hard for us to work on new versions of the spec.
We changed the website organization to centralize all the information of a spec release on one page.
See for instance:
The main changes, the TCK and the certified implementations are all accessible from these landing pages.
A bright future
The last version of the spec has a prominent link in the menu and you can find the old versions of the spec in the archives.
Presenting a new version of the spec should be easier than ever. That was our ultimate goal.
Feedback
As usual, if you have some feedback or if you find an issue in the new website, either add a comment just below or post something on the Bean Validation mailing list.
Bean Validation 2.0 is a spec!
It is done — after one year of hard work, and a bit more than four years after the previous revision, the final release of Bean Validation 2.0 (JSR 380) is out!
Last week, the JSR passed the Final Approval Ballot by the executive committee of the JCP unanimously with 25 "Yes" votes. After the ballot we’ve released version 2.0.0.Final of the specification, the API as well as the TCK. At the same time, the final version of the reference implementation, Hibernate Validator 6, was released, too.
Within the next few days, the final specification will also be available on the JSR 380 page on jcp.org, after which the work on this JSR is complete and the expert group officially will disband.
What’s new in Bean Validation 2.0?
By now, you’ll probably have heard about all the new features added in Bean Validation 2.0. Just in case you haven’t, here’s a quick summary:
-
Support for validating container elements by annotating type arguments of parameterized types, e.g.
List<@Positive Integer> positiveNumbers
; this also includes:-
More flexible cascaded validation of collection types; e.g. values and keys of maps can be validated now:
Map<@Valid CustomerType, @Valid Customer> customersByType
-
Support for
java.util.Optional
-
Support for the property types declared by JavaFX
-
Support for custom container types by plugging in additional value extractors
-
-
Support for the JSR 310 date/time types for
@Past
and@Future
; fine-grained control over the current time and time zone used for validation -
New built-in constraints:
@Email
,@NotEmpty
,@NotBlank
,@Positive
,@PositiveOrZero
,@Negative
,@NegativeOrZero
,@PastOrPresent
and@FutureOrPresent
-
All built-in constraints are marked as repeatable
-
Parameter names are retrieved using reflection
-
ConstraintValidator#initialize()
is a default method
Bean Validation 2.0 will also be part of the Java EE 8 platform, to be released later this summer.
To learn more about all the new features in Bean Validation 2.0, check out this presentation which I recently gave at the jdk.io conference.
Thank you!
I’d like to shout out a huge "Thank you" to everyone helping with the work on Bean Validation 2.0:
-
The fantastic JSR 380 expert group (thanks to Christian, Hendrik, Marco, Otavio and everyone else for their great input, proposals and much more) as well as the BV community at large (thanks to Hardy, Matt and everyone else for making themselves heard and providing feedback)
-
The former spec lead Emmanuel for his continued support with everything JCP-related and going through the details of container element validation again and again
-
My dear fellow Guillaume for his tireless work on the TCK, the reference implementation, the website and the spec; merci beaucoup!
-
Marko Bekhta who stepped up to work on the TCK which has been a very much appreciated contribution
-
Everyone participating in our polls and surveys; your replies and comments helped very much to arrive on good decisions on the different options on the table
-
The friendly folks of Oracle’s GlassFish team for all their work on integrating Bean Validation 2.0 into the Java EE 8 reference implementation
It has been a true pleasure and honor for me to make the new spec a reality together with such a fantastic community!
Give it a try
Don’t wait and try out the new release yourself! Just download the reference implementation Hibernate Validator and read the Getting started section of its reference guide. You also can read the complete specification as well as the API docs.
Latest news
Stay up to date, subscribe to the news feed.