Hi Michael,
Great proposal! I like your scheme for capturing all types to be supported and how you describe the validation routine.
Some questions/thoughts:
* Why is it that you use compareTo() over isAfter()/isBefore()? I reckon the latter are not as widely supported amongst JSR 310 types?
* What are the shortcomings meant by "2.1.1. Working around limitations in ConstraintValidator that prevent the above strategy"?
* What do you have in mind with regards to "2.4. "Simple" TemporalAmount implementations support"?
* We need a way to expose the ClockProvider to ConstraintValidator implementations (injection via CDI may be used, but BV must be usable without CDI, too). Adding a new method ConstraintValidatorContext#getClockProvider() seems the most obvious choice (currently the RI provides HibernateConstraintValidatorContext#getTimeProvider() for that purpose).
* Regarding Duration/Period, how about handling this separately? It seems we could add this in a second step, allowing to align quickly on the @Future/@Past additions and add support for it to the RI.
--Gunnar