2011-04-26

Jease 1.9.2 released

Tomcat Config Typo, fixes for Dynamic Compiler, Page Template, Search and Feeds.

Please read the detailed release notes for more informations about Jease 1.9.

Jease 1.9.2 contains several minor fixes:

  • Tomcat: fixed typo in jease/conf/server.xml. It must read "useBodyEncoding" instead of "seBodyEncoding" in the declaration of the HTTP-connector. This resulted in a problem with garbled UTF-8 searches.
  • Dynamic Compiler: fixed bug with encoded spaces (%20) in filenames returned from URL. This could lead to a problem when running Jease under a directory which contains a space character in the path (e.g. Windows).
  • User-Management: fixed a bug with the Picklist for root selection which didn't show last created folders after first use.
  • Search: fixed empty result due to NullPointerException when query was found in root node.
  • Templates: added clear-both after content and editorial, so no "open" floating after content can destroy layout.
  • Feeds: moved XML-declaration to top of file. Otherwise an empty line at the top of file might result if container doesn't support whitespace-stripping (e.g. Jetty).

Depending on if you're updating Tomcat along with Jease or not, updating is mostly straightforward: simply copy jease/webapps/ROOT/WEB-INF/lib/jease.jar and jease/webapps/ROOT/WEB-INF/lib/jfix.jar to your existing installation and restart your server. Additionally you can fix your Page-Template by adding a div-tag with style="clear:both" between content area and editorial. If you're using News and running Jease on Jetty, you should copy jease/webapps/ROOT/site/service/feeds/* to your instance.That's it.

2011-04-06

Jease 1.9.1 released

Minor bug fixes, CodeMirror 1.0, Tomcat 7.0.12

Please read the detailed release notes for more informations about Jease 1.9.

Jease 1.9.1 contains a fix for a small bug in PropertyEditor, updates some translations and comes with CodeMirror 1.0. It also is bundled with Tomcat 7.0.12 which fixes security issues which shouldn't affect Jease at all, but better to be safe than sorry.

Depending on if you're updating Tomcat along with Jease or not, updating is mostly straightforward: simply copy jease/webapps/ROOT/WEB-INF/lib/jease.jar and jease/webapps/ROOT/WEB-INF/lib/codemirror.jar to your existing installation and restart your server. That's it.

2011-03-21

Jease 1.9 released

Long Term Support, Maintenance mode, User-Management, Sequences, Error page, ScriptProperty, HTML Rewriter

Please read carefully before upgrading:

  • Before performing an upgrade, make a backup of your database directory.
  • If you upgrade from 1.7 or earlier, please read the upgrade note from 1.8.

Jease 1.9 is the last major release in the 1.x series and the first one which comes with "long term support". Long term support means that Jease 1.9 is "feature frozen" (so no new features will be added anymore), but I will provide bug-fixes and support until end of 2012 (and maybe longer if required). This way Jease 1.9 will provide you with a stable and supported platform to develop your custom content-management solutions. The main development with new features will done for the 2.x series.

This release adds some important new features to Jease besides some minor changes and a few important bug fixes. This first new feature is the option to run the CMS in "maintenance mode", so only administrators are allowed to work within the CMS, while all other editors are logged out automatically after having saved their current work. The user management screen shows now the last time a user accessed his session, so an administrator can see when the last editor is logged out.

Another feature is the introduction of a database persistent sequence generator. This can be used in combination with a Factory to create ids automatically or as a general counter for other purposes (e.g. a downloads counter).

In order to provide more user-friendly 404-error pages, Jease now supports a custom error page which can be set via a parameter. This way the error page can be displayed within the layout of your site.

Another interesting feature is the introduction of a global JEASE_SITE_REWRITER which is a post-processor for the resulting HTML. With a JEASE_SITE_REWRITER you can do fancy stuff like obfuscate email adresses, add additional markups which is translated server-side and so on.

To make the property support more useful, I've added a ScriptProperty which can act as a provider for choice/selection-properties. This way it is possible to create the options via Java code at runtime of the CMS.

Last but not least the Transit and Script content types have now an additional attribute called "forward" which allows to create non-HTML-content easily.

Features

  • Added "Maintenance Mode" via setting JEASE_CMS_MAINTENANCE. While in "maintenance mode" only administrators are allowed to work, while all other users will be automatically logged out after saving their current work. 
  • User Management: display last session access for every user.
  • User-Management: constrain selectable roots to content containers (not only to Folders).
  • Sequence: added infrastructure for named sequences. A sequence generates a database stored series of integers. A Factory can now use a sequence to generate ids automatically.
  • Added a custom error-page. If a parameter JEASE_SITE_ERROR is set, the denoted resource will be used a error page.
  • JEASE_SITE_REWRITER: allows to capture response of Controller and apply text transformations. Useful to implement custom markup or exchange strings etc.pp. Added default implementation for JEASE_SITE_REWRITER. This way a script (Java code with declared Function
  • Added ScriptProperty which acts as Provider for Selection/Choice-Properties and allows to create values via "scripted" Java code.
  • Added explicit forward attribute for Script & Transit. This make the usage of Script/Transit more flexible if you want to return non-paged content.

Changes

  • ContentEditor: administrators do not change "last modification information" (last editor, last modified date) anymore when the last editor is a non-administrator. This way the editor information will be preserved when an admin performs technical modifications/corrections to a document.
  • Refactored JEASE_USER_AUTHENTICATOR from web.xml to parameter JEASE_CMS_AUTHENTICATOR.
  • Hide user management for non-administrators if parameter "JEASE_CMS_AUTHENTICATOR" is present.
  • Evaluate existence of JEASE_SITE_DESIGN to determine wheter View-buttons should be displayed or not. This way Jease can be turned from a WCMS into a DMS by simply removing JEASE_SITE_DESIGN-paramter at runtime.
  • Abbreviate multiline parameters in parameter table view.
  • Surround Login.getAuthenticator() with try/catch to avoid lock out when custom authenticator is broken or not present.
  • Node/Content: use path only as identity for toString()
  • Item.jsp: Split newlines in properties into br's.
  • Slightly decreased editor heights for betting usability on small displays.
  • Added Users.queryByLogin(login) which retrieves the user for given login.
  • Trash: use "Empty Trash" as label for Delete button when Trash is not empty.
  • Introduced jease.Names as global name provider for system strings.
  • Added Properties.getProperties(parent, content) which returns an array of properites for given content which is synchronized with factory when content is appended to given parent.
  • web.xml: added dispatchers to filter-mapping for JeaseServletFilter which allows to serve error- pages out of the CMS. Added JeaseSessionListener to retrieve the set of all active sessions.

JFix

  • jfix.zk.RichTextArea: removed Text-Direction-Buttons from CKeditor. Moved custom filebrowser to web.jfix.ckez, so repackaging of Jease into single jar-file is now possible.
  • Added jfix.servlet.ResponseRewriter (allows to capture response and apply string transformation
  • function)
  • Added jfix.zk.Modal.exception() which displays complete stacktrace in modal window. Use Modal.exception() in jfix.zk.ObjectEditor() to display stacktrace in case of exception.
  • Added jfix.util.Reflections.init() to initialise static fields in a class with field name as value.
  • jfix.zk.Spinner: set constraint (min 0)
  • jfix.util.Compiler: added method to allow direct compilation of java code given via a string.
  • jfix.zk.ObjectEditor: added overload for validate which takes a String (Validation message) and adds this to the validation log or does nothing when String is null.
  • Added jfix.zk.Doublefield.isEmpty()
  • jfix.zk.Modal: added overloads for #info,#error with ActionListeners.

Bugs

  • Fixed concurrency bug: unsynchronized structural change of HashMap can result in an endless loop within HashMap, so concurrent readers and writers could keep single threads running in loops (= high cpu usage without any work done).
  • Deleting a non-empty Trash-Object under guard of another Trash object results in OME due to endless recursion.
  • Fixed possible NPE in jease.cms.service.Contents which might occur for Users with roots == null.

Build

  • As Jease develops more and more into a CMS on its own, deliver all resources from classpath within a single "jease.jar". This way it is easier for users to maintain their custom code under WEB-INF/classes.

Dependency updates

  • CodeMirror 0.94
  • CKeditor 3.5.2 (with patch for loading filebrowser from a custom location)
  • PrettyPhoto 3.0.3
  • Tomcat 7.0.11

Last modified on 2011-04-26 by Maik Jablonski

Download Jease

1970-01-01

You can download the latest binary release bundle here.