Release Notes for XWiki 9.3-rc-1

Last modified by Gabriela Anechitoaei on 2017/04/24

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 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)

Full list of issues fixed and Dashboard for 9.3.

For Users

No changes!

Miscellaneous

  • Mail resending at startup: At startup, mails that weren't sent yet are now resent automatically.

  • 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!

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()

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:

@Component
@Named("myfilter")
@Singleton
public class MyQueryFilter implements QueryFilter
{
...
   @Override
   public Query filterQuery(Query query)
   {
       return new WrappingQuery(query)
           {
               @Override
               public String getStatement()
               {
                   return ... modified statement here...
               }
           };
   }
}

Link document to corresponding extensions


A new set of scripting APIs have been introduced to link documents from the database to the corresponding installed extension.

Content Menu UIXP


You are now able to contribute new content menu buttons, in addition to the existing Edit, Add, Admin and More Actions by implementing the org.xwiki.plaftorm.menu.content UI Extension Point and specifying the order.

Moved Modules

  • Blog Application has been moved from XWiki Platform to Contrib.

Upgrades

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

Translations

The following translations have been updated: 

  • Czech
  • Danish
  • German
  • Persian
  • French
  • Italian
  • Latvian
  • Dutch
  • Portuguese (Brazil)
  • Romanian
  • Russian
  • Slovak
  • Swedish

Tested Browsers & Databases

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

BrowserTest Result
Chrome30.pngGoogle ChromeNot Tested
Firefox30.pngMozilla Firefox 34Jira Tickets Marked as Fixed in the Release Notes + New and Noteworthy Features
IE30.pngInternet Explorer 10Not Tested
IE30.pngInternet Explorer 11Jira Tickets Marked as Fixed in the Release Notes

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

DatabaseTest Result
hypersql.pngHyperSQLJira Tickets Marked as Fixed in the Release Notes
mysql.pngMySQLNot Tested
oracle.pngOracleNot Tested
postgresql.pngPostgreSQL 9.6Jira Tickets Marked as Fixed in the Release Notes + New and Noteworthy Features

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
    • Violation type: java.generics.formalTypeParameterAdded
    • Old: method <T> T org.xwiki.extension.script.AbstractExtensionScriptService::safe(T)
    • New: method <S, T> S org.xwiki.extension.script.AbstractExtensionScriptService::safe(T)
  • Not a binary breakage and should not change anything at build either time most of the time
    • Violation type: java.generics.formalTypeParameterAdded
    • Old: method <T> T org.xwiki.extension.script.AbstractExtensionScriptService::safe(T) @ org.xwiki.extension.xar.script.XarExtensionScriptService
    • New: method <S, T> S org.xwiki.extension.script.AbstractExtensionScriptService::safe(T) @ org.xwiki.extension.xar.script.XarExtensionScriptService
  • Not a binary breakage and should not change anything at build either time most of the time
    • Violation type: java.generics.formalTypeParameterAdded
    • Old: method <T> T org.xwiki.extension.script.AbstractExtensionScriptService::safe(T) @ org.xwiki.platform.flavor.script.FlavorManagerScriptService
    • New: method <S, T> S org.xwiki.extension.script.AbstractExtensionScriptService::safe(T) @ org.xwiki.platform.flavor.script.FlavorManagerScriptService
  • Not a breakage
    • Violation type: java.field.serialVersionUIDUnchanged
    • Old: field org.xwiki.extension.xar.job.diff.DocumentVersionReference.serialVersionUID
    • New: field org.xwiki.extension.xar.job.diff.DocumentVersionReference.serialVersionUID

Credits

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

Ecaterina Moraru (Valica)
Eduard Moraru
Guillaume Delhumeau
Krzysztof PÅ‚achno
Marius Dumitru Florea
Thomas Mortagne
Vincent Massol

Tags:
Created by Vincent Massol on 2017/03/24
   

Get Connected