1. New functionalities
1.1 Hierarchical groups
With JCMS 5.6 groups become hierarchical.
A group may be composed of sub-groups, each composed of sub-sub-groups, and so on. A given sub-group can be attached to several parent groups (JCMS prevents the creation of circular dependences).
A member belonging to a group automatically belongs to all its parent groups too. In the example above, a member of group G5 is automatically a member of groups G2 and G3, and of group G1 as well.
The introduction of hierarchical groups requires a distinction to be made between groups for which a member is explicitly declared (G5 in the example) from those deduced from the hierarchy (G1, G2, G3). All the JCMS APIs works on the deduced groups. In the example, if we allow group G1 to access a publication, then members declared explicitly in groups G2, G3, G4 and G5 will also have access to this publication.
The interfaces used to manage members and groups have been revised. A column has been added on the left to navigate in the groups tree structure.
To ensure compatibility with earlier JCMS versions, the
Member.getGroups() method returns all the deduced groups to which a member belongs. Explicitly declared groups are obtained using the
Hierarchical groups necessitate a migration of the store.xml file (see section 3).
1.2 iCalendar export
Calendar events can now be exported in iCalendar format which is recognized by Microsoft Outlook. This means that by clicking the iCal export icon a user can import into his agenda an event or a whole series of events.
1.3 Cloud Portlet
The Cloud Portlet presents a set of categories in the form of a cloud in which the size of each category is proportional to its interest, in other words a "visually weighted list". This portlet is inspired by the tag clouds we find in popular tagging systems such as flickr, technocati and del.icio.us. It gives visitors a rapid impression of what they can find on a site.
In JCMS 5.6, the interest of a category can be calculated according to three criteria:
- the number of consultable content items in the category,
- the number of consulted content items in the category (known from the number of "Reader Notes"),
- a custom criterion.
The categories can be listed in alphabetic order or by size.
The many options found on this portlet include:
- Categories: the category branches to be presented
- Unit count: criterion for calculating the interest of categories
- Category links: type of link (browsing or searching) to be placed on each category
- Sorting: presentation in alphabetic order or size order (or both)
- Distribution scale: logarithmic or linear
- Levels: number of distribution levels
- Maximum number of categories to display: used to limit the number of categories displayed to the first "n" (a zero value means no limit)
- Threshold: categories smaller than the threshold are not shown
- Refinements: the cloud can be constituted dynamically from descendants of the current category.
The Cloud Portlet is based on the
<jalios:cloud> tag that provides all the portlet options and also enables use of a specific algorithm to calculate the interest of each category (by implementing the
1.4 Security Filter
When activated the SecurityFilter checks that links lead only to authorized addresses. This prevents rerouting to external sites designed to mislead users, for example clones of reputable sites that incite them to reveal confidential information ("phishing").
It also checks the content of certain http request parameters in order to prevent the insertion of malicious code ("cross-site scripting").
When either one of these attempts is detected, the user is either directed to the same URL, but with the fraudulent parameters removed, or to a configurable alert page.
By default the SecurityFilter is deactivated. To activate it, it must be added to the web.xml file. Details of this implementation are given in the JavaDoc: docs/javadoc/com/jalios/jcms/servlet/SecurityFilter.html
JCMS 5.5 introduced a PDA detection feature. JCMS 5.6 further enhances the support for mobile terminals by adding detection of i-mode browsers. The default behavior is to redirect the access to a page specifically for mobile devices, but it is quite possible to redirect it to a specific portal for this type of device (by modifying the behavior of index.jsp).
Content permalinks have been added on search results and in the header of detailed display templates.
2. Enhancements of existing functionalities
2.1 Rich-text field history
JCMS enables users to consult the history of any content, for example to compare the differences between two versions field by field. JCMS 5.6 improves the comparisons of rich-text fields by making it possible to consult either just the text (without tags) or the HTML view (with the tags).
2.2 Improved rendering of Workflows
JCMS 5.6 brings better rendering of complex workflows. Whatever number of states and transitions, the entire workflow appears in the page and the user can zoom in on individual states.
2.3 Profiling of portlet weights
JCMS 5.5 introduced a portal pages profiler enabling the memory consumption and processor needs of each portlet to be known. JCMS 5.6 completes the analysis by indicating for each portlet the size of the HTML fragment it has produced.
2.4 Running the Garbage Collector
In the JCMS 5.6 memory consumption monitoring interface it is possible to see the instantaneous memory consumption and to run the Garbage Collector (GC). This is generally necessary only if the site suffers memory problems and it becomes useful to analyze how memory is being freed.
2.5 Friendly URLs
With JCMS 5.6 it is no longer necessary to input a slash "/" at the end of a friendly URL. For example, by declaring the friendly URL "/faq" on the JaliosXperience site, it can be reached by faq or faq/ .
A pager has been added in the friendly URL management interface to enable large numbers of friendly URLs to be handled.
2.6 User documentation
The JCMS User Manual has been updated (currently to version 5.5; version 5.6 available on JaliosXperience).
The introduction of hierarchical groups has modified the structure of the Member class. Group-type fields have been replaced by the declaredGroups field. During migrations to JCMS 5.6, this modification must be made in the store.
JCMS 5.6 comes with a utility to perform this conversion: start JCMS 5. 6 then authenticate as Administrator and go to
admin/classpath.jsp and follow the instructions. Launch the converter in the command window:
Java com.jalios.jcms.tools.StoreConverter oldStore.xml newStore.xml
For migrations of webapps earlier than JCMS 5.5, all resources must be converted into UTF-8.
JCMS 5.6 fixes 21 bugs reported in JCMS 5.5.