ModeShape has been working a long time on implementing the JCR 1.0 specification. In fact, when we started (as JBoss DNA), JCR 1.0 was really the only option, since the JCR 2.0 specification was still just an early draft. With the release of ModeShape 1.2 this week, we've implemented all of the high-value required and optional features of JCR 1.0. Sure, we still have on our roadmap a number of big features (like full clustering support and more management facilities), and these are still high priorities for us. But we also know that at some point we're going to switch to JCR 2.0: it's not a question of "if", but "when".
I now believe that the time has come to make this switch, and that we should make it now. First, we've recently had an upswing in queries asking when ModeShape will support JCR 2.0, so obviously there is interest there. Second, any applications written to JCR 1.0 have a very good chance of migrating to use the JCR 2.0 API (especially if the repository continues support for the deprecated XPath and JCR-SQL query languages), whereas applications written against JCR 2.0 cannot go back to JCR 1.0 implementation. Third, JCR 2.0 has some very nice improvements that we'd like to expose and take advantage of. Fourth, any new applications are going to be written against JCR 2.0, and we want to be considered. Finally, given the state of ModeShape 1.2 and that we designed most of the ModeShape features to be ready for JCR 2.0, we're actually now in a great position to make the switch to the JCR 2.0 API. In fact, we've already done some prototyping, and we're very happy with what we've seen so far.
Therefore, I would like us to change our current plans and roadmap so that our next release focuses on moving to the JCR 2.0 API. Obviously this entails a major API change, so we would re-christen the next release as "2.0". If we focus the release solely on this change, we (conservatively) estimate that we can release 2.0 in less than a month, and hopefully a lot sooner. Other features, such as clustering, management facilities, JDBC driver, and other features would get pushed into ModeShape 2.1 that would be released in mid- to late July.
Let us know what you think!
I agree that switching from JCR1 to JCR2 is inevitable. I also think it's going to be at least mildly disruptive for all concerned, so I'd rather do it sooner than later under the assumption that more people will be using/experimenting with 'Shape as time goes on. Let's bite the bullet now and hope that it's another 5 years before JCR3.
In short, I'm for this move.
I agree that clustering and management console are very important. Basically, we'll get JCR 2.0 and clustering and management console all in the next 2 month timeframe, no matter which order. In fact, we're already working on the management console, and that work will continue regardless of the order.
One thing to also consider is that moving to JCR 2.0 will require us to move to a "2.x" line, and frankly if we know we'll be doing that, the sooner we can get on that line the better.
It's been a week, and we've received no negative comments regarding our desire to alter our roadmap and have the next release be compatible with the JCR 2.0 API. In fact, I hit up several different projects (inside and outside JBoss.org) that I know are using or plan to use ModeShape, and they were all fine with moving to JCR 2.0.
So, I've created an issue for switching to the JCR 2.0 API, and created a '2.0' release on our roadmap that currently has all those issues related to this change. The old '1.3' target that used to be on our roadmap has been renamed as '2.1', and includes things like the clustering feature.
Thanks for all the feedback!