Release Notes for XWiki 9.0-rc-1

Last modified by Thomas Mortagne on 2017/03/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 version opens the new 9.x cycle. It contains all improvements introduced in versions 8.4.1 to 8.4.4, and brings admin and developer features mostly. Among other things, XWiki deals better with big attachments now.

New and Noteworthy (since XWiki 8.4.4)

Full list of issues fixed and Dashboard for 9.0.

For Users

No changes!

For Admins

  • 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
  • Added support for attachments bigger than 2GB: Attachment sized used to be limited by the size of a Java integer (2,147,483,647), the size is now a long (9,223,372,036,854,775).

  • The Active Installs pings are now sent over HTTP using a User Agent of XWikiActiveInstalls. This is important since some servers (such as CloudFlare) consider requests that don't have a User Agent set as being "spammy" request and blocks them. This makes the Active Installs ping module a better citizen.

  • Features of extensions are now sent by active install. These are the various extension ids under which a given extension is known. Usually used to relocate extensions under a new extension id.

For Developers

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

XAR export/import changes

 

  • The XML produced in XAR files is now following the XML 1.1 specification (instead of 1.0). Since it's mostly about supporting thing that were simply not working before there should not be any retro compatibility issues.
  • All from/toXML methods located in classes like XWikiDocument, BaseObject, BaseClass, etc. are now based on Filter modules which became the only way to produce XAR XML format. The only difference remaining when using xwiki.action.export.xar.usefilter and xwiki.action.import.xar.usefilter properties in xwiki.cfg configuration file is the handling of the XAR packaging.

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.

Mandatory documents improvements

 

  • AbstractMandatoryDocumentInitializer have been made public (and improved a bit). It's very useful to initialize documents/classes required by an extension and there is no reason to forbid contrib extensions to use it.
  • An AbstractMandatoryClassInitializer base class have also been added to help class related mandatory initializers to concentrate on how they want the class to look like and not deal with how to migrate it anymore. Just need to implement createClass.

Option to use custom temporary file name for download

 
The temp action supports a new parameter (force-filename) to indicate the file to pass to the browser when force-download is enabled. See Standard URL Format for more.

Solr search without programming right

 
It's now possible to do Solr request without programming right. In such a case the result will be filtered based on current script author right.

Miscellaneous

  • Localization Script service allow passing the Locale to search for (instead of current Locale).

  • New Namespace class: A new org.xwiki.component.namespace.Namespace has been introduced to help manipulate namespace in components and extensions world. It's mostly a helper for now but will probably be used more and more in APIs.

  • DefaultReaderInputSource and DefaultWriterOutputTarget now support closing the wrapped Reader/Writer.

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: 

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 FirefoxNot Tested
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.pngHyperSQLNot Tested
mysql.pngMySQL 5.7.13Jira Tickets Marked as Fixed in the Release Notes
oracle.pngOracleNot Tested
postgresql.pngPostgreSQLNot Tested

All tests have passed except which has been reopened as and which has been reopened as .

Performances tests compared to <last super stable version>

<a summary of the comparison with latest super stable version>

More details on <link to the test report>.

Known issues

Backward Compatibility and Migration Notes

General Notes

When upgrading make sure you compare your 

Issues specific to XWiki 9.0RC1

Attachment size column

In order to support attachment bigger than 2GB a new long based column has been added in the database. The filesize column is still working as it always did but it's now deprecated and and longSize should be used instead to be sure to deal with the real size of the attachment in case it's bigger than 2GB.

Filesystem templates rights

All filesystem templates now have programming right by default. They used to be executed with the right of the current document.

API Breakages

No APIs were modified since XWiki 8.4.

Credits

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

Alex Henrie
Ecaterina Moraru (Valica)
Eduard Moraru
Guillaume Delhumeau
Marius Dumitru Florea
Pascal Bastien
Sergiu Dumitriu
Thomas Mortagne
Veronika Koltunova
Vincent Massol

Get Connected