Java object versioning library