Discussions

News: Envers 1.0.0.GA hits the download site

  1. Envers 1.0.0.GA hits the download site (14 messages)

    Envers is a library for versioning JPA entities, based on Hibernate. To enable versioning, you just need to annotate your entity with @Versioned. Then, any changes you make will be recorded in an automatically generated versions table. Both simple properties and relations can be versioned, thanks to revisions - when a transaction is commited, a new revision is generated. Using this mechanizm, you can retrieve a view of a database at a given time/revision. Retrieving historical data is also easy - thanks to a simple and straightforward API. You can also query for historical data using a Hibernate Criteria-like interface. Some use cases include bi-temporal versioning and database auditing, as you can store additional data with each revision (for example, the name of the user which made the changes). Try it out on the nearest occasion! Comments, bug reports, ideas, and of course contributors are always very welcome :) Website: http://www.jboss.org/envers/ Downloads: http://www.jboss.org/envers/downloads/ Adam Warski

    Threaded Messages (14)

  2. Cool, I see you've addressed many of the comments here on the original version. I noted that you had a poll regarding how to store the revision data up on the jboss site, but can't bothered to register there, so here goes: Any chance of allowing a switch between options one and two mentioned in the poll (1 - separate table for historic versions; 2 - one table for live and historic data)? Or make this sufficiently pluggable? Often this may depend on the use-case (how the data is used, what pct of data is historic vs. live, etc), and with bi-temporal data it may not just be historic and live, but also future data. Finally, it's frequently a subjective choice made by DBA's or Data modellers to go one way or the other, and it would therefore be of value to not force a particular implementation on these otherwise opinionated creatures - or this may quickly be a no-go at the early evaluation stages.
  3. Hello, making this pluggable/configurable is certainly a very good idea; and possible. When switching to the other way of storing data, the query system would become much more constrained (which, I suppose, would be acceptable for users who would choose it). For now, I only implemented the option that got most of the votes in the pool. But I'll add the possibility to make it configurable to the road map. Adam
  4. Re: feature[ Go to top ]

    This is a feature not a GA announcement, what a joke JBoss marketing has become, oops, sorry, i let that slip, i really don't feel that all is lost, but i am still slightly upset from the marketing efforts around JBoss 5... at least "Envers" didn't get a code-name to represent some secret project that is actually an open-source feature that can barely be called out in Hibernate positioning; actually that is what it is another d*mn code name for a feature of an app server... Bill Burke, u should have no complaints ab/ TSS after these two non-sensical posts about JBoss projects that have no bearing on the broader marketplace... requisite Apache-JCP-like disclaimer: "Though I would typically support this post, while feeling it is an inadequate debate, I am waiting for someone with Java experience to assist in the leadership of TSS, so that we could move to a more in-depth level of analysis than re-hashed product announcements."
  5. Re: joke[ Go to top ]

    O.k., apologies for calling u guys out 2 much (not TSS, but JBoss), i can understand u r all heads-down with the pressure to get v.5 out, but the basic argument remains that more coordination is needed to get the messaging right: there is no such thing as "Envers" and "Cache" to anyone outside of Raleigh, these r mere deliverables on a go-to-market chart for when the app server is ready, and i am not willing or all that interested in debating anything to the contrary... it is time 4 management to get all-hands to act like a publicly traded company, and release information so that it furthers the ultimate cause of JBoss 5, not detract attention away from it, this is what it means to manage, and hold a successful release, even if it is behind schedule... there is still time, plenty of it, apparently, to sit-down and figure out what that launch will include, and it doesn't really matter if a "library" gets buried in the PR noise from an official launch, it will be good to read briefly about it then, but until then, JBoss people have to realize that this campaign of slowly rolling out features without so much as a reference to its relevance to the broader objectives of competing in the middleware market is counter-productive...i don't claim to b the defining source of all goodness in a launch, but i do feel sometimes that i am well under-paid 4 obvious tactics that would help the effort (= $0), just coordinate, thats all i think is needed...
  6. Re: joke[ Go to top ]

    Doug, You are cross posting, which achieves nothing. http://www.theserverside.com/user/userthreads.tss?user_id=677344 But at least we see your true colours now and know you are just trolling to get attention and traffic for your blog. Might I suggest you refrain from polluting TSS with your noise, and if you have something to say put it into a guidelines document somewhere and just refer people to that. All projects have fun code names, you seem to forget that many of us are here because we enjoy what we do and want to make it fun. Heck even the commercial proprietary guys codename there project features and releases, it's just something fun and quirky. If you don't like it, ignore it, but your comment on the codename warrants no substance. "but until then, JBoss people have to realize that this campaign of slowly rolling out features without so much as a reference to its relevance to the broader objectives of competing in the middleware market is counter-productive" Wtf? Again you assume that JBoss is only about AS. Hibernate is the world's most popular persistence library used and supported by every App Server, it has huge relevance regardless to what's going on with JBoss AS. Envers is a standalone project that solves many every day problems people have with JPA, so the relevance and interest of this announcement is large. Mark http://blog.athico.com The Drools Blog
  7. Re: shut-up[ Go to top ]

    stop being a punk, Mark, i am here to help, i can discuss any blessed thing i feel like, until they make an effort to ban me, which is probably a desirable outcome for JBoss, since u guys refuse to answer the basis of my complaint: no positioning that demonstrates why people should stay engaged with the Red Hat middleware org.... you and Bill must get along swimmingly, i honestly cant believe u r allowed to publicly flogg me, clean it up...
  8. I've been looking at it and from first look it's really good. Unfortunately I haven't had the opportunity to use it in any projects at the moment.
  9. I've been looking at it and from first look it's really good. Unfortunately I haven't had the opportunity to use it in any projects at the moment.
    I will definitely be looking at it and I have a project or two that needs this.
  10. I've been looking at it and from first look it's really good. Unfortunately I haven't had the opportunity to use it in any projects at the moment.

    I will definitely be looking at it and I have a project or two that needs this.
    Good for you. You can use the library with Hibernate not just JPA...
  11. I've been looking at it and from first look it's really good. Unfortunately I haven't had the opportunity to use it in any projects at the moment.

    I will definitely be looking at it and I have a project or two that needs this.


    Good for you. You can use the library with Hibernate not just JPA...
    ... which is a good thing since i am using Hibernate.
  12. Great stuff, it's about time someone started abstracted these historic data strategies into the persistence framework. Is it possible to do a "go back in time" query? For example: show me the list of Persons as it was on 2007-01-02 13:00
  13. Hello, yes, of course it's possible. You just need to do two things: - first, retrieve the revision, which corresponds to your date. You can do this with: Number rev = versionsReader.getRevisionNumberForDate(yourDateHere) - then, read the persons at that revision. This can be done using this simple query: versionsReader.createQuery().forEntitiesAtRevision(MyEntity.class, revisionNumber).getResultList(); You can of course constraint the list of results using conditions, just like in a normal select. Adam
  14. I would like to do versioned and non-versioned commits. Is there a way to switch versioning on and off? Can I use a regular entitymanager in parallel to achieve this?
  15. Hello, currently it's not possible, but it is an interesting feature to introduce. Please file a feature request in JIRA: https://jira.jboss.org/jira/browse/ENVERS Adam