I'm looking for temporal libraries for Java, i.e. libraries which allow to store multiple historical version of the same concept. I'm looking for a library which has an API to do something like:
Instant i1 = Instant.valueOf("2010-01-01");
Instant i2 = Instant.valueOf("2010-01-02");
Attribute<String> a = ....
a.setValue(i1, "String as of 2010-01-01");
a.setValue(i2, "String as of 2010-01-02");
You can find a discussion about temporal issues on the nice articles by Martin Fowler
One library I found is JTemporal, which seems pretty good to me, but it's not complete and lacks support for Hibernate persistance. I'd like support for temporal sets too, i.e. sets defined in an exact point in time. JTemporal does that, but persisting the TemporalSet is not easy.