Nice stuff. Not to be pessimistic though, true CMS functionality cannot be achieved without being able to version the data, roll back to specific versions, etc.
This is exactly what JSR 171 (IIRC) does: Java Content Repository. An implementation could be based on JBossCache. What they essentially do for versioning is to create another subtree for the same data with a version number++. Reverting back to an old version simply entails setting the view to the new branch.