This release brings a couple of small, but very useful improvements like the ability to filter the sections in Administration, reset changes done to extension pages and alternative configuration locations. Developers get some helpful API in writing clean queries when escaping and filtering, a new API to find documents belonging to extensions and more control through a new extension point for the content menu.

New and Noteworthy (since XWiki 9.2)

For Users

Miscellaneous

Disabling emoticons: It's now possible to disable default emoticons by editing xwiki.properties and overriding the mapping with an empty value. For example to disable (n) you'd add:

rendering.transformation.icon.mappings = (n) =

For Admins

Reset Extension changes

It's now possible to reset changes listed in the Extension diff.

Live Search in Administration

The administration menu now has a search input at the top that can be used to filter the administration categories and sections. At the moment the live search matches only the category/section name and description.

Miscellaneous

Configuration in /etc/xwiki: XWiki will now try to find xwiki.cfg and xwiki.properties in /etc/xwiki/ on file system before looking in the webapp resources.

The default value of xwiki.users.initialGroups now depends on xwiki.authentication.group.allgroupimplicit value (users are not added to XWikiAllGroup anymore when xwiki.authentication.group.allgroupimplicit is enabled).

Admin user as a Simple user: When using the Jetty/HSQLDB demo packaging, the Admin user used to be an Advanced user, and this was troubling for users discovering XWiki since they were seing advanced features from the onset. The Admin user is now a Simple user, matching what you get in other packagings in which the admin user is created in the Distribution Wizard when XWiki is executed the first time.

For Developers

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!

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

Filtering Query parameters

It's now possible to filter not only Query statements but also Query parameters or in general any value returned by a Query object. This is achieved through a new method in QueryFilter. See the Query Module for more details. Example:

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.

API Breakages

The following APIs were modified since XWiki 9.2:

Really don't see how adding a new constructor could be a breakage...

Violation type: java.field.serialVersionUIDUnchanged

Old: field org.xwiki.extension.ExtensionException.serialVersionUID

New: field org.xwiki.extension.ExtensionException.serialVersionUID

Not a binary breakage and should not change anything at build either time most of the time