Changes Report

Last modified by Vincent Massol on 2026/09/02 19:04

Better handling of webjar extensions

A new webjars Maven extension is now available to package webjar extensions the "standard" way. It automate a bit of plumbing when producing webjar artifact with Maven and more importantly it explicitly indicate that those are webjar so that Extension Manager apply special handling for them (which usually means not requiring programming right to install them).

See WebJAR Maven Handler for more informations about the Maven plugin.

If you can't depend on 9.0 yet you can also use <xwiki.extension.jar.type>webjar</xwiki.extension.jar.type> Maven property which have pretty much the same effect from Extension Manager point of view (for someone installing your extension on 9.0+ of course).

New filesystem recycle bin

To work around database limitation when deleting documents with a lot of attachments a new file recycle bin component has been introduced.

You can enable in xwiki.cfg configuration file with the following:

xwiki.store.recyclebin.content.hint=file

Filesystem templates now have programming right by default

It was decided to give filesystem template programming right by default. The used to be executed with the right of the current document.

Improved Notifications email layout

The email layout for notifications has been totally redesigned.

Improved Notifications UI

The notifications menu is more clear now, and a link to see what has changed is available in the details of each event, when you click on the date.

Table of content in the notifications email

Now, the events described in the notification emails are ordered by pages, and then by dates. To have a quick view of all the changes, a table of content is now displayed at the beginning of the mail.

System and Extension pages are now protected against accidental deletion

You will no longer accidentally erase system or extensions pages and break your wiki! When you try to delete such pages, XWiki will now ask you to confirm the operation, and list all concerned pages.

Jobs improvements

  • org.xwiki.job.event.status.JobStatus#ask now allows passing a timeout as parameter
  • a new REST API is available to start any job, see Job REST API (require programming right)
  • the existing REST API to get the job status has been improved to also get the request and the log all at once

Notifications

We have introduced a list of notifications in the top menu, that list some events that have occurred in the wiki recently: a page has been created, a new blog post has been published, etc...

See the Notifications Application's page to have more infos.

Ability to store events in the event stream and display them as notifications

It is now possible to say to the Event Stream Module that some events, sent with the Observation Module, should be stored.

In addition, this events can be displayed in the notifications menu of users. See the tutorial: How to send notifications.

Safe escaping when querying

When writing XWQL or HQL, it's easy to forget to escape the %, _ or even the [ character in LIKE clauses. It's also easy to forget that MySQL considers the default escape character to be \ and thus when you have a serialized Entity Reference in a LIKE you need to change the escape character as otherwise pages with dots (.) in their names won't match!

To avoid bother we're introducing a new Query Manager API when binding a value.

Example usage:

$services.query.xwql("xwqlstatement like :ref").bindValue("ref").literal("${documentReference}.").anyChars().query().execute()

Restore a batch of deleted documents

If you have performed an operation that deletes multiple documents at the same time (like delete with children or delete space), it is now possible to restore all the deleted documents together, to their original state and location.

This is achieved by assigning a common batch ID to the deleted documents in the recycle bin. You can now browse the deleted documents and group them by batch.

For each deleted document, you can now also choose to see the batch where it was deleted from and if you want to restore just one document or the entire batch.

Check the documentation for more details.

XWiki Enterprise is dead, long live XWiki Standard!

The XWiki Enterprise distribution of XWiki has been abandoned and replaced in 9.5 by a new XWiki Standard flavor.

Here are the main changes in 9.5 related to distribution packages and flavors:

  • XWiki Enterprise does not exist anymore
  • A new XWiki Standard flavor has been introduced (actually two: one for the main wiki and one for sub wikis like XWiki Enterprise had)
  • Administrators now install XWiki and get to choose which flavor they want (at the time of 9.5 release only XWiki Standard is available but there will be many more as contributors add new ones on http://extensions.xwiki.org) to install on top of it
  • A XIP package is provided to help with offline install use case
  • Graphical installers have been abandoned, too hard to maintain (and not working very well anyway) and not providing much value for something that was unusable in production

Optional extension dependencies

It's now possible for Extension authors to define which of the dependencies are mandatory and which are optional. The Extension Manager will install all of them by default but optional dependencies won't have any impact on the validity of the extension:

  • if the optional dependency install plan fail, the extension is installed without it
  • if the optional dependency is uninstalled, it won't uninstall the extension
  • if the optional dependency is missing at startup, it won't make the extension invalid

Improved Code Viewer with Blame View

The code viewer (More Actions > View Source) has been improved to look nicer and have proper line numbers that support highlighting and linking.

A new Blame View was also added to the code viewer. In this mode, each line of the document's content is annotated with the last author that modified it and the revision in which this modification was introduced. The blame view also works when viewing the source of a document revision (other than the latest one) so it can be accessed at any point in the history of a document. See the documentation for more details.

Improved Attachment Index

The Attachments tab from the Page Index has been improved:

  • the Space and Page columns have been replaced with the Location column
  • the Type column is now the first column and you can sort and filter attachments by file type
  • the Type column uses the Icon Theme and shows a thumbnail preview for image attachments
  • there's a new column that displays the attachment file size, with support for sorting and filtering the attachments by their file size
  • attachments can be filtered by date using the new date range picker

We also fixed two important bugs:

  • the sort was not working correctly
  • attachments from hidden pages were displayed even if hidden pages were not visible

The old WYSIWYG editor based on Google WebToolkit has been removed

In XWiki 8.2RC1 we made CKEditor the default WYSIWYG editor but the users could still use the old Google WebToolkit (GWT) editor by enabling it in the wiki administration. Starting with this version the old WYSIWYG editor is no longer available. CKEditor remains the only WYSIWYG editor option available in XWiki by default.

Flavors search optimization

Speed up display of flavors mostly containing core dependencies (when resolving flavors dependencies, just assume those with know recommended versions are valid).

Runtime injection of REST resources

  • It's now possible to install/uninstall/upgrade REST resources dynamically (it used to require a restart of XWiki)
  • Upgrading/uninstalling a JAR extension doesn't break REST resources coming from extensions anymore

Watchlist to be replaced by Notifications

At the end of the 9.x cycle, we plan to remove the Watchlist Application from XWiki Standard. Before being able to do this, we need that the Notifications Application be able to propose the same features (and even more possibilities).

In this version, you can now receive notifications concerning a watched location (ie: a page, a page and its children, a wiki..), without enabling any specific type of events in the preferences.

Warning

This feature is disabled by default (and the Watchlist Application is active by default). See Notifications Application to know how to enable it.

Get Connected