This is 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 adds a RSS view to the Notifications macro and improves the user picker with compact display and in-line selection. The developers should check the new Page API and the improvements to the existing Icon API. In addition there have been 23 bugs fixed and a couple of small improvements done.

New and Noteworthy (since XWiki 10.5)

Full list of issues fixed and Dashboard for 10.6.

For Users

The Notifications Macro now includes a RSS view

 

Compact User Picker


The List of Users and List of Groups class properties have a new compact display that shows in view mode the user / group avatar followed by the user / group name. In edit mode the selected users / groups are shown in-line. Suggestions are retrieved from both the current wiki and the main wiki, depending on the current wiki's user scope (there's no toggle to switch between local and global users anymore). See the Data Model documentation for more information. This is the same user picker that has been already integrated in the Live Table user filter.

The compact user picker has been integrated in other places such as Administration, App Within Minutes, Wiki Application, Message Sender, Solr Search user facet and Share Page.

For Admins

Ability to set the default autowatch mode in the administration


It is now possible, for administrators, to set the default auto watch page behavior.

For Developers

New Page API


10.6 brings the Page concept which was introduced in 7.4 to the API and the macros.

PAGE EntityType and Page*Reference classes

First thing first we now have a few new types in EntityType and the corresponding typed Page*Reference helpers. One for each of the element you can have in a page:

  • PAGE
  • PAGE_ATTACHMENT
  • PAGE_OBJECT
  • PAGE_OBJECT_PROPERTY
  • PAGE_CLASS_PROPERTY

Corresponding resolvers/serializer/providers

Each of the already existing DOCUMENT oriented resolvers and serializers have their PAGE oriented implementation.

Conversion from DOCUMENT to PAGE world

The entity resolvers automatically convert from/to DOCUMENT from/to PAGE world references. So yes using a resolver is the official way to do that conversion.

New syntax

Pages reference have a very different syntax.

To summarize it's a filesystem path syntax with support for parameters.

Here is are a few examples:

wiki:page1/page2;param1=value1;param2=value2;en_US

wiki:page1/page2/attachment

../siblingpage
  • separator: "/" between all elements except WIKI which is still ":"
  • escaping: still "\"
  • current, parent support: like in a file system you can refer to the current page or parent page/wiki using "." and ".."
  • parameters: we now have syntax to express the parameters of an EntityReference. Each parameter is separated by a ";" at the end of the entity name
  • default parameter: the syntax have the concept of default parameter which mean a parameter for which you don't need to indicate the name. For example PAGE reference default parameter is "locale"

New resource reference

A new resource reference of type PAGE has been added and can be used in links for example:

[[parent>>page:..]]
[[page:page1/page2]]

Miscellaneous

  • the $services.model API also got his own new helpers to manipulate pages
  • support for page references have been added to various oldcore (XWiki/XWikiDocument/Document) and bridge (DocumentAccessBridge) APIs
  • support for page references have been added to the security module

User Picker Velocity Macro Changes


The #userPicker Velocity macro has been modified to have a compact display. There is no toggle to switch between local and global suggestions as the picker retrieves suggestions from both the current wiki and the main wiki depending on the current wiki's user scope. You can overwrite this if you want using the data-userScope parameter.

#set ($userPickerParameters = {
  'id': 'wikiOwner',
  'name': 'owner',
  'value': $descriptor.ownerId,
  'data-userScope': 'GLOBAL_ONLY'
})
#set ($multipleSelection = false)
#userPicker($multipleSelection $userPickerParameters)

The JavaScript library used to fetch the suggestions and to display them has been replaced, causing modifications to the HTML structure of the user picker. This means that you may have to update your code in case you did customizations on top of the old library. The new library we use is selectize.js.

Improvement of the icon API


It is now possible to manually pull icon theme resources and get a metadata map of an icon to customize the display.

See the Icon Theme Application extension for documentation.

Upgrades

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

Translations

We recently moved l10n.xwiki.org to a new translation platform based on Weblate and we're still trying to figure out how to compute an accurate list of the locales that have been updated for real (excluding comments and whitespace changes). We hope to put back the list of updated translations in the next release notes.

Known issues

Backward Compatibility and Migration Notes

General Notes

When upgrading make sure you compare your xwiki.cfg, xwiki.properties and web.xml files with the newest version since some configuration parameters may have been modified or added. Note that you should add xwiki.store.migration=1 so that XWiki will attempt to automatically migrate your current database to the new schema. Make sure you backup your Database before doing anything.

Issues specific to XWiki 10.6RC1

User Picker Velocity Macro

The implementation of the #userPicker* and #groupPicker* Velocity macros has been modified. You should review the usage of these macros in your own (custom) code to make sure they still work as expected. We changed the JavaScript library used to fetch and display the suggestions and this lead to changes on the HTML structure of the user and group pickers. This means that you may have to update your code in case you did customizations on top of the old library. The userPicker.js file has been deprecated (but it's still bundled) and the userPicker.css file has been removed (but the styles have been integrated into the skin).

API Breakages

The following APIs were modified since XWiki 10.5:

  • Not a breakage.
    • Violation type:
      java.annotation.attributeValueChanged
    • Code:
      ## Old:
      @interface org.xwiki.stability.Unstable

      ## New:
      @interface org.xwiki.stability.Unstable
  • Adding a REST endpoint is actually not an API breakage.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.notifications.rest.NotificationsResource::getNotificationsRSS(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception
  • Not a breake: the REST endpoint is the same.
    • Violation type:
      java.method.returnTypeChanged
    • Code:
      ## Old:
      method org.xwiki.notifications.rest.model.Notifications org.xwiki.notifications.rest.NotificationsResource::getNotifications(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception

      ## New:
      method javax.ws.rs.core.Response org.xwiki.notifications.rest.NotificationsResource::getNotifications(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception
  • Young API
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method org.xwiki.notifications.filters.watch.AutomaticWatchMode org.xwiki.notifications.filters.watch.WatchedEntitiesConfiguration::getDefaultAutomaticWatchMode(org.xwiki.model.reference.WikiReference)

Credits

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

  • Adel Atallah
  • Alex Cotiugă
  • Clément Aubin
  • Ecaterina Moraru (Valica)
  • Eduard Moraru
  • Fekete Judit
  • Guillaume Delhumeau
  • Marius Dumitru Florea
  • slauriere
  • Thomas Mortagne
  • Vincent Massol
  • xrichard
Tags:
Created by Guillaume Delhumeau on 2018/06/13
   

Get Connected