We've been making steady progress in the 'master' branch on the issues targeted to the 4.0 release, which were discussed on our roadmap and plan for 4.0. You can see the list of resolved/closed issues for details, but we've already added a few nice features, including:
- support for Wildfly (MODE-2065)
- an internal event journal (MODE-1683), which we'll use to implement the JCR event journal API and to update indexes much faster when a process rejoins the cluster
- minimum JDK of Java 7 (MODE-2041)
- file system connector now generates events when files change on the file system (MODE-2040)
- the start of a new query engine that will support custom indexes (MODE-2018); at this time most (but not all) JCR-SQL2 query functionality is working without any indexes, but we'll add the ability to define and use specific indexes on the file system, in local Lucene, and hopefully in Solr and ElasticSearch.
- upgrading to Infinispan 6.0 (MODE-2066) and JGroups 3.0 (MODE-1427); note that Infinispan added some nice cache stores but also removed several poorly-performing cache stores (including the file system cache store).
We've also fixed a lot of bugs, and switched our license to ASL 2.0. Except for the query system, this release will actually be quite stable.
The release plan is as follows:
- release Alphas every 3 weeks or so, and continue to do so until all features are implemented and deprecated methods are removed
- release Betas every 3 weeks or so, fixing bugs until the codebase is stable enough for a candidate release
- release at least one CR (candidate release), and additional CRs as necessary until stable enough for a final release
- release 4.0.0.Final
We're think we're ready to release the first alpha, 4.0.0.Alpha1 in the next few days, and after that we'll start time-boxing the releases.
What should you expect as far as compatibility? First, almost all of our public API will remain unchanged, and our persistence format will remain unchanged. However, this is a major release, so expect a few breaking changes to our API (especially removing deprecated methods) and changes to the configuration format (mostly around clustering and indexing, though we make make other changes, too). Also, be aware that Infinispan 6 removed some cache stores, so if the cache store you were using was removed you will need to use our backup/restore feature to migrate data from your ModeShape 3.x instance to a new 4.0 instance; if this is the case, please plan on testing it out as soon as possible so that we can ensure that migrating to 4.0.0.Final works flawlessly.
Look for these releases if you want to start testing the 4.0 codebase, especially starting with the Betas. And if you want to help with any of the outstanding issues, please do! We're here to answer any questions and help identify problems.