Changes Report

Last modified by Vincent Massol on 2017/05/31

Administration sections executed with the right author

The content of the administration sections used to be inserted as is into the general administration code forcing it to disable programming right to avoid dangerous code injection. Configuration section content is now executed with the right of its author and with all the rights of its author so not longer require display macro based hacks to workaround the previous limitation.

Maven extension repositories can be configured with custom HTTP headers

It is now possible to define extra HTTP headers to be used when connecting to a maven extension repository. See the maven extension repository connector documentation to learn more.

Wiki Macro priority

It's now possible to define the priority of a wiki macro (it used to only be possible for Java Macros). This is useful when you need your macro to be executed before or after other macros. When not specified the default priority is 1000.

Like feature disabling

It is now possible to disable the Like feature from the administration. Disabling it will preserve any existing Like data but hide them from the UI.

Annotations on content generated by the HTML macro

Annotations can now be added on content generated by the HTML macro.

As a direct consequence, you can also add annotations to pages that are part of an application, such as AWM applications.

The RSA Crypto script service issues SHA256 certificates by default

The RSA Crypto script service (accessible from services.crypto.rsa) now issues certificates signed with SHA256+RSA instead of SHA1+RSA. See XWIKI-19676 to learn more.

The RSA Crypto script service issues SHA256 certificates by default

The RSA Crypto script service (accessible from services.crypto.rsa) now issues certificates signed with SHA256+RSA instead of SHA1+RSA. See XWIKI-19676 to learn more.

Link to in-place editor

You can now create a link to open a page directly in in-place editing mode, provided in-place editing is enabled:

You can [[edit in-place>>Some.Page||anchor="edit"]] this page.

You can also output a link to create a missing page translation in-place:

You can [[translate in-place>>Some.Page||anchor="translate"]] this page.

The Information tab uses this, for instance, to link to the missing page translations, when in-place editing is enabled.

Translate Page Button

A new Translate button is now visible when viewing a page, if the wiki is multilingual and the page has not been translated to the current user interface locale. This button allows you to create the missing translation. It opens the in-place editor or it takes you to the stand-alone editor (Wiki or WYSIWYG) depending on your preferences. See the Internationalization documentation for more information.

Searching inside Extensions

It's now possible to expose some Components found in Extensions so that they can be queried by the Extension Manager and shown in the extension details. You can now search in the Extension Manager for all Extensions providing some type of Components (Macros, Script Services, Syntax Parsers, Syntax Renderers, etc). For example, you can use component_macro:* to search for all Extensions providing Rendering Macros.

Live Data Boolean Filter

The Live Data Macro now provides a new Boolean filter, allowing boolean values to be filtered using a drop-down field instead of a text field.

Refactoring for references in macros

When a page is moved or renamed, the link and image references located inside inline-editable macros are now updated as well.

New administration section for Extension Rights

A new administration section has been introduced allowing to display and set the extension rights: those are rights that some specific extensions might provide, and which are not part of the core rights. By default in XWiki Standard, the Like Right is displayed in there since it's part of the Like extension which is automatically installed.

UI Extension Point for Document Extra Tabs

A new UI extension point has been added, allowing to insert a new tab at the bottom of a document. The parameters of this UIXP allow to specify the title of the tab, a number to show next to the title, and the order of the tab.

Live Data popover menu

Before XWiki 13.6, a double click on a property of a Live Data would switch it to edit mode. This mechanism was causing different issues, especially when the entries were containing links.

We have deactivated the double click and a popover is now shown to the user.

On devices equipped with a mouse, the popover is shown when hovering over an editable property and it proposes a single edit action.

On touch-based devices, the popover is shown on touch on editable entries, and on touch on any links. They respectively propose the edit and follow link actions (touching a link in an editable property proposes both actions).

Automatic injection of required skin extensions

Lazy loading UI elements has become much easier with the automatic injection (on the client side) of the required skin extensions.

Smaller serialized job status

Job status are now zipped (new jobs will end up with a file named instead of status.xml). The content of the actual XML used to serialize the progress was also optimized a little (removed various metadata which did not really needed to be serialized) when possible. This should help reduce quite a lot the disk space used by some jobs statuses.

Method selection improvement in Velocity

When standard Velocity cannot match a method call, XWiki try to find a close approximation that could be called provided the arguments are converted. The only criteria to select a suitable method used to be to count the number of arguments, but the order in which methods with the same number of arguments were tried was pretty much random. This leaded sometime to either hard to call methods or random results. This has been greatly improved to have more advanced ordering (taking into account already compatible arguments, etc.), see Velocity Module for more details.

Allow to display ConfigurableClass in all administration pages

The ConfigurableClass has been refactored to use a new scope property for defining where it should be configured. This property can take 4 different values:

  • WIKI (displayed Wiki): the configuration will be displayed in the wiki administration (equivalent to true value in configureGlobally for older versions)
  • SPACE (displayed "Current space"): the configuration will be displayed in administration of pages that belongs to the current space (equivalent to false value in configureGlobally for older versions)
  • ALL_SPACES (displayed "All spaces"): the configuration will be displayed on administration of pages for any space, but not on the wiki administration. 
  • WIKI+ALL_SPACES (displayed "Wiki and all spaces"): the configuration will be displayed in all administration pages, be it the wiki administration or any page administration. 

Note that the old configureGlobally property is still supported in the code handling the ConfigurableClass so no migration is needed for this change.

Translation Messages in JavaScript

We added support for using translation messages in JavaScript without relying on Velocity code. This has the big advantage that the JavaScript code can be cached without the need to invalidate the cache when the current locale changes. Here's how you can do it:

// First you need to define a module that holds the required translation keys.
define('my-translation-keys', {
  prefix: 'livedata.',
  keys: [

// Then you require the translation messages using the dedicated loader.
require(['xwiki-l10n!my-translation-keys'], function(l10n) {
 // Translation key without parameters.

 // Translation key with parameters.
 console.log(l10n.get('selection.infoBar.allSelectedBut', 'parameter value'));

See the Localization Module documentation for more information on this topic.

Realtime Communication (Netflux)

The new Netflux module provides support for real-time WebSocket-based communication in XWiki by offering:

  • a script service and a REST resource to help create and retrieve communication channels.
  • a WebSocket server end-point used to join channels and to exchange channel or direct user messages.

This can be used along with the Netflux Client to implement realtime-enabled extensions on top of XWiki (e.g. a chat application).

Get Connected