Release Notes for Version 0.9

We're very excited to announce the release of version 0.9 of Weceem CMS.

This release brings Grails 1.3 compatibility and adds many new features bringing us very close to our baseline 1.0 feature-set targets.

There are very important steps for users who are upgrading. Please see the installation page for details.

Among the features in this release are...

New rendering pipeline

The content controller now has had some changes to the rendering mechanisms that make several new features possible. For developers this also means they have more flexibility and can render content more easily without the use of the standard controller entry points.

All classes and SQL tables renamed

To avoid clashes with other Grails plugins, all Weceem artefacts have been renamed with a Wcm prefix on their class name, which also has the effect of renaming their SQL tables similarly.

Per-type rendering hooks

Content type domain classes can now, if they wish, handle requests directly and control the response. This is used internally for example to allow ContentFile nodes to be served directly from the normal repository URIs, and by External Link content to perform a HTTP redirect to the target URL of the link.

HTML Content with macros/tags inside

A popular request was to enable the use of Weceem and Grails tags within HTML content. This is now possible by ticking the "Allow GSP" box when editing content - the next time you edit it, you will have a code editor instead of the rich text editor. This now makes it easy to link to content in the CMS using wcm:link, or to iterate over child tags. (Note: you cannot currently reliably switch between rich editor and code editor however)

Full-text search with customisable results page

There are now tags that make implementing full text search on your site trivial. The results page is served using content from the repository also, so you have full customisation of results.

Visitor content submission

Visitors to your site can submit content including comments to any content you like. You control what parts of the repository can receive user submitted content and what types are permitted (e.g. only allow comments under Blog Entry nodes). Content automatically enters an "unmoderated" status and remains unpublished until the status is updated.

A new content type "Comment" is supplied and ready to use for comments on any content you wish, with IP address logging and user details. [Note: Captcha or similar not yet implemented]


Basic blog functionality is included, with support for multiple Blogs, and comments on Blog Entries using the visitor content submission mechanisms. Blog archives are easily rendered and styled with your own content nodes, and tags are provided for rendering archive months with links to each archive listing.

Taggable content

All content can now be tagged (uses Grails Taggable plugin), including but not restricted to Blog Entries. Searching for content by tag is also supported.

Define actions that run Groovy scripts

There are two new content types "Groovy Script" and "Action". These allow you to create server-side Groovy code that executes like Grails controller actions, and you can bind this code to multiple URIs in your repository using Action nodes. This is very powerful and opens up many possibilities such as form processing, REST interfaces to a subset of your content and remote content retrieval.

With no redeploying, reloading or restart of the server required.

New Weceem tags

A whole bunch of new tags have been added, which are mostly self-explanatory:

  • wcm:submitContentLink
  • wcm:submitContentForm
  • wcm:feedLink
  • wcm:createFeedLink
  • wcm:join
  • wcm:eachComment
  • wcm:archiveList
  • wcm:monthName
  • wcm:search
  • wcm:searchField
  • wcm:searchLink
  • wcm:summarize
  • wcm:htmlToText
  • wcm:config (outputs value of a Grails config variable)
  • wcm:uiMessage (outputs last Weceem UI message, if any)
  • wcm:ifUserCanView
  • wcm:eachContent 

Direct serving of uploaded files

As mentioned earlier, the new ability for content types to handle request processing has enabled server file nodes to use the Servlet container's own dispatcher to serve uploaded files directly from the URI used to represent the server file. This eliminates the need to use wcm:createLinkToFile or use /WeceemFiles/XXX links in your CSS/HTML

Customizable URL prefixes

There are now Grails Config variables application developers (or deployers using can use to change the URI prefixes for content served by Weceem, for the admin parts of Weceem, and for the non-admin tools provided by Weceem (search, archive, content submission).

Mail plugin installed by default in Weceem Application

Another popular request, the pre-built Weceem Application WAR file now ships with the Grails mail plugin installed, which means that sending of mail is available out of the box, with the correct Javamail SMTP settings provided via configuration.  The default space now ships with an example Action/Groovy Script combination that shows how to send mail.

RSS and Atom Feeds

To support the Blog functionality, the Grails Feeds plugin has been integrated, with new tags for generating a link to feeds for any list of child content in your repository. You can produce feeds anywhere in your repository.

Date-specific publishing of content

Another time-saving feature for real-world CMS usage, you can set Publish From and Publish Until dates on your content. Weceem will automatically migrate the status of that content to Published when the Publish From date is hit, and shift the status to "Archived" when the Publish Until date is hit. A new date picker with hours and minutes is used in the editor.

Per-content-type user permissions

So support visitor content submission, the security policy mechanism has been extended to allow restriction of the types of content to which each permission (VIEW, EDIT, DELETE, CREATE) applies, per-URI, per user role,  and per-Space. This can also be used to restrict certain repository users to creating only the types of content they should be using, to reduce user error and increase security of your content.

New Preview option in editor

There is now a Preview button in the content editor  which opens a new browser window with the current content you are editing - without saving the changes. 

Skinnable admin interface

The GSP layout used to render the admin screens can now be changed with a Config setting, so that users embedding Weceem into their own applications can integrate it fully with their own look and feel. 

Bug fixes

A slew of bug fixes including the caching bug that was causing problems with editing content for some users.


eMail Page   Print
      Delicious   submit to reddit