Release Notes for XWiki 9.0-rc-1

Version 15.1 by Guillaume Delhumeau on 2017/01/26
Warning: For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

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-rc-1.

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

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

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

For Developers

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.

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.

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.

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.

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

The QA Tests are executed after the release has been done. Thus, they are being prepared now and will be published soon.

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

The following APIs were modified since XWiki 8.4:

Failed to execute the [groovy] macro. Cause: [startup failed: Script1793.groovy: 9: unable to resolve class XmlSlurper  @ line 9, column 12.      result = new XmlSlurper().parseText(xml)                ^  1 error ]. Click on this message for details.

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