Release Notes for XWiki 12.1

Last modified by Andreea Chirica on 2020/06/25

These are the release notes for XWiki Commons, XWiki Rendering and XWiki Platform. They share the same release notes as they are released together and have the same version.

This release brings a simplified WYSIWYG Editor toolbar, the ability to increase Office import performances by supporting pools of LibreOffice servers, an experimental redesign of the Notifications feature for increased scalability and a couple of bug fixes (19). Many of our third party dependencies have been upgraded also. There are less new features and improvements than usual because we focused on 3 important investigations, whose results will be seen in the next versions:

  • ActivityPub Integration: we're implementing an extension to allow XWiki be part of the Fediverse and use ActivityPub. The first use case we want to support is to be able to follow the activity of an user from another XWiki instance.
  • Notifications Re-Architecture: we're looking for ways to improve the performance of the XWiki notifications; we're experimenting for instance with storing pre-filtered user notifications.
  • In-place and real-time editing: we want to improve the editing experience by reducing the number of steps required to make changes and we want to enable true collaboration with real-time editing

New and Noteworthy (since XWiki 12.0)

Full list of issues fixed and Dashboard for 12.1.

For Users

Simplified WYSIWYG Editor Toolbar

The WYSIWYG Editor toolbar has been simplified by grouping and reorganizing the buttons, removing those that were used very rarely. Here's a summary of the changes we did:

  • the Format drop down is now the first item on the left side
  • Strike, Underline, Subscript, Superscript and Remove Format have been grouped in a drop down menu
  • the list buttons have been grouped in a dedicated drop down menu
  • the Unlink button was moved from the main toolbar to the floating toolbar that is shown when you click on a link
  • we enabled the image floating toolbar, visible when an image is selected
  • Horizontal Line, Special Character and Import from Office have been grouped in a new Insert drop down menu
  • we moved the Insert/Edit Macro button to the Insert drop down menu, where we also added shortcuts for common macros
  • we removed the Copy, Cut and Paste buttons from the toolbar. They are available in the context menu
  • we removed the Copy Formatting button, as we don't encourage the usage of in-line styles
  • we removed the Language drop down because it was causing confusion with the wiki page language

As a result the toolbar now takes a single line by default.

For Admins

  • Use LibreOffice with a pool of process: The Office Importer Application configuration has changed to allow using a pool of process in case of internally managed office server.

    The property openoffice.serverPort is deprecated in favor of openoffice.serverPorts which takes a list of ports: each port will be use to start a dedicated office process. This will allow to use the process in parallel and avoid blocking users when several operations involving office are performed at the same time (imports and exports).

  • Notifications Redesign: The start of a Notifications re-architecture has been started in order to improve performances. The current implementation is computing changes for a given user on the fly, when asked. This has the advantage of being very light to save new events but the computation is cost when displaying notifications (even though there's a cache). It doesn't scale well when there are a lot of events and users. Thus we've started a redesign where we compute and store the notifications for each user, when a new event is triggered.

    To enable the new feature, edit your file and set the notifications.eventPreFilteringEnabled property to true.

    This feature is currently EXPERIMENTAL and should not be tried in production.

    #-# [Since 12.1] [Experimental]
    #-# Enabling this option will make user notifications be filtered and stored when the event is generated
    #-# instead of filtered each time they are displayed.
    #-# The default is :
    # notifications.eventPreFilteringEnabled = false

For Developers

  • Velocity Object Tool: Provides various methods to manipulate objects from Velocity. For example to check for null:

    #set ($result = ...)
    #if ($objecttool.isNull($result))


The following runtime dependencies have been upgraded (they have a different release cycle than XWiki Commons, XWiki Rendering and XWiki Platform):


The following translations have been updated: 

Tested Browsers & Databases

Here is the list of browsers we support and how they have been tested for this release:

 BrowserTested on:
Chrome30.pngGoogle Chrome 80Jira Tickets Marked as Fixed in the Release Notes

Tests run and results
Firefox30.pngMozilla Firefox 73
Edge30.pngMicrosoft Edge 80
IE30.pngInternet Explorer 11
Safari30.pngSafari 13Not Tested

Here is the list of databases we support and how they have been tested for this release:

 DatabaseTested on:
hypersql.pngHyperSQL 2.5.0Not Tested
mysql.pngMySQL 5.7Jira Tickets Marked as Fixed in the Release Notes

Tests run and results
oracle.pngOracle 19c
postgresql.pngPostgreSQL 12

Here is the list of Servlet Containers we support and how they have been tested for this release:

 Servlet ContainerTested on:
tomcat-icon.pngTomcat 9.0.31Jira Tickets Marked as Fixed in the Release Notes

Tests run and results
jetty-icon.pngJetty 9.4.22 (XWiki Standalone packaging)
jetty-icon.pngJetty 9.4.22Not Tested

Known issues

Backward Compatibility and Migration Notes

General Notes

  • When upgrading make sure you compare and merge the following XWiki configuration files since some parameters may have been modified, removed or added:
    • xwiki.cfg
    • web.xml
    • hibernate.cfg.xml
  • Add in xwiki.cfg so that XWiki will attempt to automatically migrate your current database to any new schema. Make sure you backup your Database before doing anything.

Issues specific to XWiki 12.1

CollectionsTool deprecated

The Velocity binding $collectionstool has been deprecated in favor of $collectiontool. Two methods were renamed to not collide with Velocity standard methods:

  • sort(List<E> input) was renamed sortModifiable
  • reverse(List<E> input) was renamed to reverseModifiable

openoffice.serverPort property deprecated

The openoffice.serverPort option located in is now deprecated in favor of openoffice.serverPorts.
Check the related release change for more information.

API Breakages

The following APIs were modified since XWiki 12.0:

  • Not a Breakage. Moved to Legacy.
    • Violation type:
    • Code:
      ## Old:


The following people have contributed code and translations to this release (sorted alphabetically):

Clément Aubin
Guillaume Delhumeau
Jonathan Leitschuh
Marius Dumitru Florea
Mateusz Idczak
Paul Massol
Prachi Joshi
Sebek Kusek
Simon Urli
Thomas Mortagne
Vincent Massol

Get Connected