This blog post is the first of a series on exploring JPMS modularity patterns for specification APIs.
In this part we’re going to look into how implementations of a specification API can be bootstrapped in a portable way
and how such implementations can access the private state of modules of the user of the API.
As discussed a while ago,
the latter is a common requirement;
for instance JPA providers must do so for reading and writing entity state.
The most significant feature in Bean Validation 2.0 (JSR 380) is the support for container element constraints.
I.e. you can now apply constraints to the contents of container types such as List, Map or Optional by annotating their type arguments
(which became possible with Java 8): List<@Future LocalDate> shipmentDates.
In this blog post you’ll learn how to take advantage of that for the validation of custom container types,
such as Multimap, Table or Graph from Google’s widely known Guava library.