Release Notes for XWiki 5.4 Release Candidate 1

Last modified by Thomas Mortagne on 2023/10/13

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

This is an improvement and stability release for things started during the 5.x cycle.

New and Noteworthy (since XWiki 5.4 Milestone 1)

Full list of issues fixed and Dashboard for XWiki 5.4.

Solr Search Improvements

The search facets now support multiple selection. Moreover, selecting a facet value doesn't hide the rest of the values of that facet. You can still see the number of results matching that value. We also decided to display a facet even when it has only one value, so that the user understands that all the results have that value for the specified facet. The facet selection is now preserved when you perform a new search. You can reset the current facets from the header of the facet pane if you want.

searchFacetMultipleSelection.png

Advanced Search Options Removed

We decided to remove the Advanced Search Options (i.e. the search filters) because they weren't visible enough (you had to notice the arrow at the end of the search input) and, most importantly, because most of these options were duplicated by search facets, creating confusion. We integrated into the facet column the filters that were not already present there. The query boost option is no longer available but you can achieve the same thing from the query input and we'll add later a query boost configuration in the search administration section.

Following this change, we aligned the search input to the left. The reason it was centered before is because we didn't want the advanced search pane to hide the start of the first search results.

The Result Type facet has the document type selected by default. This is consistent with the old Result Type filter from the Advanced Search Options which was set to include by default only documents in the search results.

Improved File Type Facet

The File Type facet filters results based on the attachment file type. E.g. "documents that have attached images", "text attachments". File types are grouped by category. You can select both an entire category and a specific file type. Categories can be expanded and collapsed.

searchFileTypeFacet.png

Improved File Size Facet

The File Size facet lets you filter the results based on the size (in bytes) of the attachments. You can new choose between 4 ranges:

  • tiny (less than 10KB)
  • small (between 10KB and 500KB)
  • medium (between 500KB and 5MB)
  • large (more than 5MB)

searchFileSizeFacet.png

Debug Mode

You can enable search debug mode by adding &debug=true to the search URL query string. See the Solr Search Application for more details.

searchDebug.png

Distribution Wizard improvements

We changed the labels of the Skip and Cancel buttons from the Distribution Wizard steps. We hope this will remove some of the confusion around these two buttons. Additionally, we added a confirmation pop-up when the Never button (former Cancel) is clicked to prevent users from discarding the Distribution Wizard by mistake.

dw-welcomeStep.png

No Upgrade Mode anymore

The Upgrade Mode step has been removed. Instead, both upgrade modes are kind of enabled: you can upgrade your wikis when running the Distribution Wizard on the main wiki, from the Wikis step, but you can also run the Distribution Wizard on each of your wikis separately (like on the main wiki). As a consequence, upgrading the wikis in the Wikis step is now optional: you always get the Continue button. So it's up to you if you want to upgrade the default set of wiki pages on your wikis now or later by accessing each wiki.

dw-wikisStep.png

New report step

A new last step has been introduce to display all the changes made to the wiki and give a chance to do some rollbacks.

dw-report.png

Repair Previous UI

When repairing the previous UI, you can now enter a version that is not on the list by clicking on the pencil icon after the version list box. Moreover, the version list box should contain now all the available stable versions of the recommended UI.

dw-repairPreviousUI-editVersion

On the Wikis step, you can now repair the previous UI on all the available wikis.

dw-wikisStep-repairPreviousUI.png

Activity Stream improvements

  • The name of the wiki where the event has happened is displayed now, if the event concerns an other wiki than the current one.
  • On the main wiki, Activity Stream now display events from every wikis where the current user has view right.
    activity.png

Miscellaneous

  • Images that are copy-pasted as HTML in the WYSIWYG editor now work fine, thanks to the added support of the Data URI scheme in XWiki Syntax 2.1. The wiki syntax is:
    image:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAO9JREFUOE+lUrsNwjAUdCyWIBXjIEokVoCejgkyQ2gYAIkSsQUrUIUxwrund5bjX4OlyPG9u3v22Z2rjM1uWEtpkq//PC/fCs35UoHi/WGL8mTrErVsAJGJHU2KagGzHUi3I8iP+0s1nInXjBSPSfI/n2/vGTNFJZOVCRkYltdGl1FMRqmHYL0FFM6MjnFXaxCwNJMOZAbW6JyVkI1cbwcD3T5MGBjZLQxi8Lw9kp5iFFikUYwZr2dNQzQT7EavsDFOwl2ErNuIh5kgaX1E0bEyMTiZAcA0WAa26GSL7CUaHjJJz1wyqWLpe6gS/yn8AD9tcjFN7/ajAAAAAElFTkSuQmCC
  • The user and group pickers now take into account the User Scope specified when you create a new wiki. If the current wiki supports only global users then the user picker will suggest global users. If the current wiki supports both local and global users then the user picker has a toggle that lets you choose whether to get local or global suggestions. The group picker behaves slightly different because you can have local groups even when only global users are allowed (to be able to setup various rights for the global users). Thus the group picker shows the scope toggle when you are in a subwiki that accepts global users, otherwise it suggests only local groups (from the current wiki, which can be the main wiki).
  • Increased the size of the security cache to improve performances from 500 entries to 10000 entries. This setting could still be overwritten in the infinispan configuration of the cache named platform.security.authorization.cache. This new setting should be sufficient for most usages while the previous default were only valid for small single wiki.
  • Improvement in the wiki descriptor pages. It is now consistent with our vertical forms standard.
    descriptor-improvement1.png descriptor-improvement2.png
  • When the user creates a new wiki, without a template, a message is displayed to explain him the Distribution Wizard will be started to initialize the new created wiki.
    create-a-wiki-dw.png
  • In the Activity Stream, the name of the wiki where the event has happened is displayed now, if the event concerns an other wiki than the current one.
    activity.png

See the full list of JIRA issues fixed in this release.

For Developers

New APIs to manipulate XAR files

A new "xar" ScriptService has been introduced with APIs to manipulate XAR files. It does not yet contains a lot of methods and new will be added as needed. See XAR Module extension for more details.

Miscellaneous

  • We added a new parameter to the Live Table Velocity macro named 'selectedTags' which controls the list of tags that are selected initially in the tag cloud. You can still select different tags after the live table loads. With this new parameter you can have a permanent link to a live table that has the rows filtered initially by some tags:
    ## /xwiki/bin/view/Demo/WebHome?tag=news&tag=science
    #set ($options = {
      'className': 'Demo.DemoClass',
      ...
      'tagCloud': true,
      'selectedTags': $request.getParameterValues('tag'),
      ...
    })
  • The module xwiki-platform-wiki-rest replaces the old module xwiki-platform-wiki-manager-rest in order to move xwiki-platform-wiki-manager in contrib, but the API is unchanged.
  • Verbosity of the job is now configurable right from the org.xwiki.job.Request object
  • Log generator now generates BeginEvent/EndEvent variants based on marker informations
  • The following java.lang.Class methods are now allowed in Velocity by default: name, isArray, isAssignableFrom, isEnum, isInstance, isInterface, isLocalClass, isMemberClass, isPrimitive, isSynthetic
  • Default job status does not provide log tree anymore. Was making the API too complex. It can be created from the log queue very easily in Java and a helper method has been added in logging ScriptService to create one: $services.logging.toLogTree($logs)
  • Various APIs have been added to help translate log. See Logging Module for more details
  • It's now possible to add new Images Types when rendering in XHTML
  • Introduced org.xwiki.observation.AbstractEventListener
  • New model API and script service API to create a tree from a list of entity references. See Model Module for more details
  • New option in the XAR plugin's format mojo to add missing license headers
  • If you want to restrict the list of wikis that are searchable by default with Solr from the main wiki then you can define the following Velocity variable in a page that includes Main.SolrSearch:
    #set ($wikisSearchableFromMainWiki = ["xwiki", "platform", "enterprise", ..., "commons", "rendering"])
  • $services.wiki.lastException, $services.wiki.user.lastException, $services.wiki.template.lastException are deprecated now. Please use the corresponding lastError function instead.

Translations

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:

BrowserStatus
Chrome30.pngGoogle Chrome 32Jira Tickets Marked as Fixed in the Release Notes
Firefox30.pngMozilla Firefox 27Not Tested
IE30.pngInternet Explorer 8Not Tested
IE30.pngInternet Explorer 9Not Tested

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

DatabaseStatus
hypersql.pngHyperSQL 2.3.1Jira Tickets Marked as Fixed in the Release Notes
mysql.pngMySQL 5.6.10Not Tested
oracle.pngOracle 11.2Not Tested
postgresql.pngPostgreSQL 9.2.4Not Tested

For the full list of tests see this page.

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 5.4RC1

New Velocity uberspector

If you modified velocity.properties = runtime.introspector.uberspect.chainClasses = ... property in xwiki.propertes file you should make sure to replace org.apache.velocity.util.introspection.SecureUberspector with org.xwiki.velocity.introspection.SecureUberspector.

API Breakages

The following APIs were modified since 5.3 (young APIs introduced recently not finalized yet):

org.xwiki.wikistream.xar.input.XARInputProperties: Method 'public boolean isReferencesOnly()' has been removed
org.xwiki.wikistream.xar.input.XARInputProperties: Method 'public void setReferencesOnly(boolean)' has been removed
org.xwiki.wikistream.model.filter.WikiDocumentFilter: Field PARAMETER_REVISION has been removed, but it was previously a constant
org.xwiki.wikistream.model.filter.WikiObjectPropertyFilter: Parameter 2 of 'public void onWikiObjectProperty(java.lang.String, java.lang.String, org.xwiki.filter.FilterEventParameters)' has changed its type to java.lang.Object
Tags:
   

Get Connected