2011-01-04

Jease 1.6 released

Registry, Factory, Control-Panel, Pluggable Authentication

If you're upgrading from Jease 1.1, 1.2 or 1.3, please read the upgrdade notice below before performing an update!

This release brings a lot of new features and several bug fixes. The most prominent feature is the introduction of a content registry which allows you to create modules with your own content-types and editors more easily. The former reflection based configuration approach was nice on the first sight, but had to many drawbacks in the long run when you've started to add custom components and needed to maintain them within the default package structure of Jease.

Another important feature is the introduction of Factories. A Factory is a container for content prototypes which are used to synchronize properties of content types automatically. This way you can extend existing content-types with additional properties just within the CMS without touching any line of source code. Along with the Factory comes a new (and very) simple content-type called Item which can be used as building block for dynamic (property) based contents via a Factory (or as persistent container when storing results submitted via forms).

In order to give the administrator more control of the CMS, I've started to add a Control-Panel. The first feature is a manual revision control which allows to prune revisions based on content-type, revisioned days and total count just with a click.

A minor change in handling the authentification results in a big gain: If you need to authenticate your users against an existing identity management system, I've added an interface for pluggable authentication. You can define your own Authenticator and configure it via web.xml, so that it is possible to authenticate against any system which can somehow be connected via some lines of Java-code.

Last but not least I've added a reusable pager for the search results.

New Features:

  • Added Registry by dropping the reflection-based detection of content/property-types and switching to an explicit XML declaration. It is now possible to put a content-definition along with an editor and appropriate XML-file into a single jar and drop it into Jease. This allows extension of Jease without touching the sources... another benefit: Jease works now as unexploded war too.
  • Added Factory which allows to predefine additional properties for content-types, so editing content automatically synchronizes the additional properties defined in the Factory for the content-type.
  • Added Item as general purpose content-type for storing properties (e.g. storing form results etc.pp.)
  • Created a Control-Panel for manual purging of revisions and cleared also the semantics of the revision parameters (0 means to ignore parameter completely, so that day/count can be used independently).
  • Added pluggable Authentication by introducing (optional) Authenticator via web.xml.
  • Allow to set node context via query string for the CMS (.../cms?path/to/node). This way it is possible to create edit-links in the web-site which point directly to the correct container to edit content in the CMS.
  • Added parser for Mediawiki-syntax to Codemirror. Codemirror is now the default editor for Wiki.
  • Refactored Searchresults into re-useable service and adapted existing templates. Added also a reusable Pager for server-side paging of content lists.

Major Changes:

  • Controller.jsp: Renamed "jsp"-parameter to more generic "page"-parameter and allow to include arbitrary resources (e.g. ZUL).

Minor Changes:

  • CMF: Make sure to set a proper container in JeaseSession.
  • CMS: Use CodeMirror as editor for plaintext in Text.
  • CMS:Separated Navigation from Login
  • Site: Some cleanups for stylesheets (default, demo, photo)
  • Build: Added ant-task for building war-file.
  • JFix: Changed mime-type for JSP from text/html to text/plain.
  • JFix: Moved updating of window title from general refresh to change handler, so fewer redraws are needed.

Bug fixes:

  • Mediafield: content type was set to application/octet-stream when no extension for content object was present. Thanks to Max for spotting this issue!
  • File: #getSize() could throw NPE when contentType was not set.
  • Properties: IntegerEditor used #getValue().intValue() whereas #intValue() should be used directly to avoid NPE for empty spinner control.
  • Site: Fixed possible NPE in Designswitch when Jease was deployed unexploded (e.g. in Jetty). #getRealPath() is (by spec) allowed to return null for unexploded wars.
  • The build-system was broken since removing the servlet-api.jar from distribution. Fixed also the build.xml which requires now CATALINA_HOME to be present for resolving servlet-api.jar.

Dependency updates:

  • Latest zk-codemirror
  • CKEditor: Finally the ZK-Team included my blur=forceBlur patch into the official repository, so Jease is running with official builds from ZK again.
  • Perst 425
  • Lucene 3.0.3

Upgrade notice (only relevant when upgrading from Jease 1.1, 1.2 or 1.3)

You have to run an update-script to migrate existing revisions to new class format. Just call http://localhost:8080/cms/update/revisions.jsp after updating Jease to migrate the old revisions to the new format. It is highly recommended to create a backup of your database-directory (~/db4o or ~/perst) before doing the upgrade!

Last modified on 2011-01-04 by Maik Jablonski

Download Jease

You can download the latest binary release bundle here.