Trash, Breadcrumbs, Concurrent modification detection, Caches, no more dependency on Tomcat.
I'm happy to announce the 0.9 release of Jease... as 0.9 is quite close to 1.0, maybe the next release will be the first major one. Therefore you should try out Jease 0.9 because I've made lots of changes and improvements in the last weeks.
Please note: I've cleaned up and refactored the code base to bring it in shape for a 1.0 release, so maybe you'll have to touch some of your customized JSPs to make things work again (biggest change: site.service changed to site, so a simple find&replace should do the trick). I'm usually very conservative with this kind of breaking changes, but I really like to start 1.0 with a very clean code base with no historical cruft. The structure of the content-repository/database itself (and that's what count in the end) hasn't changed since the 0.1 release, so I'm quite confident that it will stay this way forever.
- Clickable Breadcrumb-Navigation in CMS.
- New Trash-Object which acts as a safety-guard for delete-operations. Please note: you have to add an Trash-Object to your content-repository if you want to make use of this feature.
- Detection of concurrent content modification: if a user is going to save content which got saved by another user in the meanwhile, a validation error occurs.
- Added caches to resolve Nodes by path and Access-Restrictions (about 10 times faster).
- Removed dependency on Tomcat-DefaultServlet by using a ServletFilter. Now Jease works out of the box with Tomcat, Jetty, Glassfish, Resin and other application servers. Updated web.xml. Changed packaging, so you can easily copy jease/webapps/ROOT.war to the application server of your choice.
- The database-name in web.xml is now evaluated as path to a directory when a File.separator is contained. This allows to store the database regardless of default based on home-dir.
- A Transit can be used to include dynamic generated content via a JSP directly into a page. Please note: changed field-names (pathname to uri), so existing Transits need to be updated!
- Added Node.validateParent() which allows to restrict potential parents for a Node.
Critical bug fixes:
- Nodes without parent could be saved to database, so the uniqueness of the root-node could break and therefore Jease couldn't be started anymore. This happened when a copy-operation was performed, but the copied content wasn't saved.
- Reflections.find() was broken on Windows, so no content-types could be added at all.
- Node.getTitle() is deprecated and will be removed in the next release. Use Content.getTitle() via appropriate casts instead. Changed necessary site-templates accordingly.
- Some fixes to Servlets.write(): use reader for text, close input properly, don't send content-length.
- Reference-Editor: Show only user-accessible content as selectable references.
- ContentEditor: set parent container as current container after delete.
- Improved User-Administration: when a user is deleted, replace all references in contents with current user before deletion. Invalidate session when admin deletes his account.
- Made nodes which cannot be added to current container invisible instead of disabled
- Improved Setup: Use context-path as initial id for root-object, so Jease works out of the box when not deployed as ROOT-application.
- Fixed NullPointerException when editor is null (Editorial.jsp).
- Fixed concurrent modification when invalidating the session (problem with resin application server).
- Controller.jsp: added pageEncoding to make Jetty UTF-8-happy; set Last-Modified-Header.
- Optimized FCK-Config.
- ZK 5.0.2
- Apache-Commons 2.5
- Default servlet-api (without catalina classes)