2010-07-01

Jease 1.0 released

Wiki, Script, new demo template, API freeze, bug fixes and cleanups.

I'm happy to announce the release of Jease 1.0 which marks an essential milestone in the development of Jease. Jease provides a rock stable building block for creating customized Content-Management-Systems with Java without having to worry about complicated technologies like persistence. Just think about your domain and your layout and let Jease care about the boring rest.

With Jease 1.0, the public API is now frozen. This allows you to develop Content-Management-Systems on top of Jease without having to worry about future updates. In order to bring Jease into the best possible shape for this mission, I've done some refactorings and changes to the code base which might break your existing installations without appropriate adjustments, but all changes are so minor that you should get up and running within a few minutes again. I'm very proud on the fact that the structure of the content repository didn't change since version 0.1, so you can be sure that your data is stored in a proven, tested and reliable manner... and that's what really counts in the long run.

New Content-Types

  • Added Wiki(text) as new content-type. Wiki-markup is especially suited for technical documentation. The Wikiparser comes from the Eclipse-Mylin-Project and allows several markups (Mediawiki, Confluence, Tracwiki, ...).
  • Added Script as new content-type: A script stores its contents in the database, but it gets executed in a servlet-environment. Per default a Script uses JSP as scripting technology, but it is easy to plugin in other scripting/templating engines just by configuring appropriate servlets (e.g. Groovy, Freemarker) in web.xml.

New Features

  • Added a second public site template which powers demo.jease.org. The new template is a good example for a single-page-template and should get you easily started with your own customizations.
  • Added automatic syntax highlighting for pre/code-tags via Google Code Prettify.
  • Added timestamp when clicking on "View", so no more browser refresh is needed for cached content.
  • Use processing-prompt-delay instead of Modal.click as user feedback. This saves one roundtrip to server for each click.
  • Reference#getDestination() returns terminal point for a reference (reference points to reference and so on)
  • Exchanged internal Sun-Base64-Coder with a version from public domain.
  • Using a set instead of a list for storing items speeds up the rebuild of large trees.
  • Introduced "Context" as complement to "Node" to store original requested node (very useful for Scripts called via References).

Bug Fixes

  • Refreshing of new node selection was broken with invalid (= invisible) childs.
  • Fixed problem with missing trailing slash for absolute path to database
  • Throw NestingException for quick file-upload when non-folder with id already exists, otherwise unzipped children could be appended to non-folders (e.g. Text).
  • Added dynamically created base tag to templates so images with relative urls work without problems in page-based containers (e.g. Composites).

Changes

  • JeaseConfig: refactored from abstract class to interface. Just change from "extends" to "implements" to make it work again.
  • Jease/ContentManager: moved upload functionality completely into userspace.
  • Node: removed deprecated #getTitle(), use a cast to Content instead.
  • Folder: refactored #getDefaultContent() into #getContent() to use same naming as Reference.
  • Transit: set page only for text/html to avoid inclusion of xml/other text types into page-layout.
  • Reference: Contents#getPathnames() returns now all files below a given directory. Filtering of unwanted files should be done in userland. Also removed dependency on commons-io here.
  • Controller.jsp: introduced new attribute "Page.Base" to render images in container-based pages correctly; renamed "Page.Path" to "Page.Root" to make difference clearer.
  • Move definition of JEASE_SITE_CONTROLLER to filter config, so several filters with different controllers can be used for different mappings. Moved JSP-Encoding from Controller.jsp to web.xml.
  • Created a much more evident directory layout for public site to reflect the overall "Jease"-directory-layout and allow easy reuse of domain renderers and services.
  • Removed jfix.util.Dates, use String.format instead.

Updated dependencies

  • ZK 5.0.3
  • db4o 7.12
  • Lucence 3.0.2
  • Included sources with jfix.jar for easier development.
  • Moved all code from jease.cmf into independent jease.jar for easier update-management.

Removed dependencies

  • Neodatis (project seems to be inactive, additionally there were some nasty errors when running stress tests against Neodatis).
  • BeanShell (is only needed when you want scripting in ZUL, Jease doesn't need this).
  • Commons Lang (only a few methods were needed, reimplemented them in JFix-layer).

Last modified on 2010-06-30 by Maik Jablonski

Download Jease

1970-01-01

You can download the latest binary release bundle here.