Temporal types Date and DateRange with Hibernate persistence definitions.
Auditing framework to audit data changes transparently, providing support to undo operations.
Using Spring AOP framework simple DAOs are enabled to store auditing information
(There is also an AspectJ version that was deprecated as it made development complex)