Release Notes for XWiki 5.3 Milestone 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 is more a developer oriented release with new Extension Manager APIs, an XWiki Enterprise Maven Archetype, XAR plugin improvements and fold observation events but it also has a number of bug fixes (36) and improvements (22) that the users will appreciate.

New and Noteworthy (since XWiki 5.2)

Full list of issues fixed and Dashboard for 5.3.

Miscellaneous

  • Some XSS fixes.
  • By default only results from XE instance pings and for non-snapshot versions are counted in Active Installs.
  • When a new wiki is created from the Add Wiki Wizard, its Activity Stream is now empty.

See the full list of JIRA issues fixed in this release.

For Developers

DocumentReference Locale now taken into account in XWiki#exists and XWiki#getDocument

You can now use XWiki#exist method to check for some translation existence too, before that the only way was to either load the XWikiDocument or write your own XWQL or HQL query.

XWiki#getDocument has been modified accordingly too to be consistent so you don't need to go through XWikiDocument#getTranslatedDocument anymore.

It also mean that you need to be careful of what Locale is in the DocumentReference with those APIs now.

New Extension Manager APIs

Extension sub script services

The extension service now expose an extension point for extension related script service so that it's used as entry point for all of them.

By default the following are provided:

  • $services.extension.core (for core extensions APIs)
  • $services.extension.local (for local extensions APIs)
  • $services.extension.installed (for installed extensions APIs)
  • $services.extension.xar (for XAR extension APIS)

Search for installed extension in a specific namespace

The following method has been added org.xwiki.extension.repository.InstalledExtensionRepository:

    /**
     * Search installed extensions based of the provided pattern and only in the passed namespace.
     * <p>
     * The pattern is a simple character chain.
     *
     * @param pattern the pattern to search
     * @param namespace the namespace where to search
     * @param offset the offset from where to start returning search results
     * @param nb the maximum number of search results to return
     * @return the found extensions descriptors, empty list if nothing could be found
     * @throws SearchException error when trying to search provided pattern
     * @since 5.3M1
     */

    IterableResult<Extension> searchInstalledExtensions(String pattern, String namespace, int offset, int nb) throws SearchException;

XWiki Enterprise Archetype

A new archetype is now available to easily create your own product based on XWiki Enterprise. To use:

mvn archetype:generate \
 -DarchetypeArtifactId=xwiki-enterprise-archetype \
 -DarchetypeGroupId=org.xwiki.enterprise \
 -DarchetypeVersion=5.3-milestone-1

XAR plugin improvements

The XAR plugin now provides the ability to change values in the XML pages. For example:

<plugin>
 <groupId>org.xwiki.commons</groupId>
 <artifactId>xwiki-commons-tool-xar-plugin</artifactId>
 <configuration>
   <transformations>
     <transformation>
       <file>Blog/WebHome.xml</file>
       <xpath>/xwikidoc/object/property/itemsPerPage</xpath>
       <value>100</value>
     </transformation>
     <transformation>
       <artifact>org.xwiki.platform:xwiki-platform-administration-ui</artifact>
       <file>XWiki/XWikiPreferences.xml</file>
       <xpath>/xwikidoc/object/property/colorTheme</xpath>
       <value>ColorThemes.Mint</value>
     </transformation>
   </transformations>
 </configuration>
</plugin>

Fold Events

A new kind of event is now available. An event tagged as "Fold" can be sent by a task that generates some events during its execution. Then, these generated events can be seen as children of the main task. In addition, the Activity Stream will not record these child events.

More documentation available on the Observation Module page.

Miscellaneous

Upgrades

The following dependencies have been upgraded:

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:

BrowserStatus
Chrome30.pngGoogle Chrome 30Jira Tickets Marked as Fixed in the Release Notes
Firefox30.pngMozilla Firefox 24Not Tested
IE30.pngInternet Explorer 8Not Tested
IE30.pngInternet Explorer 9Not Tested

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

DatabaseStatus
hypersql.pngHyperSQL 2.3.0Jira Tickets Marked as Fixed in the Release Notes
mysql.pngMySQL 5.6.10Not Tested
oracle.pngOracle 11.2Not Tested
postgresql.pngPostgreSQL 9.2.4Not Tested

Known issues

Backward Compatibility and Migration Notes

General 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 5.2:

  • Very young API. Never fully worked.
org.xwiki.xml.stax.SAXEventConsumer: Class org.xwiki.xml.stax.SAXEventConsumer removed
org.xwiki.xml.stax.SAXEventWriter: Removed org.xwiki.xml.stax.SAXEventConsumer from the list of superclasses
  • Requesting a dependency without indicating the namespace does not really make sense. This interface is not really supposed to be implemented anyway.
org.xwiki.extension.ExtensionManager: Method 'public org.xwiki.extension.Extension resolveExtension(org.xwiki.extension.ExtensionDependency, java.lang.String)' has been added to an interface
  • Needed to filter search by namespace. This interface is not really supposed to be implemented anyway.
org.xwiki.extension.repository.InstalledExtensionRepository: Method 'public org.xwiki.extension.repository.result.IterableResult searchInstalledExtensions(java.lang.String, java.lang.String, int, int)' has been added to an interface
  • Young API.
org.xwiki.filter.xml.serializer.XMLSerializerFactory: Method 'public java.lang.Object createSerializer(java.lang.Class[], javax.xml.transform.Result, org.xwiki.filter.xml.XMLConfiguration)' has been added to an interface
  • Young API that has been refactored to introduce the new Resource module.
org.xwiki.url.AbstractXWikiURL: Class org.xwiki.url.AbstractXWikiURL removed
org.xwiki.url.URLCreationException: Class org.xwiki.url.URLCreationException removed
org.xwiki.url.UnsupportedURLException: Class org.xwiki.url.UnsupportedURLException removed
org.xwiki.url.XWikiEntityURL: Class org.xwiki.url.XWikiEntityURL removed
org.xwiki.url.XWikiURL: Class org.xwiki.url.XWikiURL removed
org.xwiki.url.XWikiURLFactory: Class org.xwiki.url.XWikiURLFactory removed
org.xwiki.url.XWikiURLManager: Class org.xwiki.url.XWikiURLManager removed
org.xwiki.url.XWikiURLSerializer: Class org.xwiki.url.XWikiURLSerializer removed
org.xwiki.url.XWikiURLType: Class org.xwiki.url.XWikiURLType removed
  • XWikiURL (now Resource) should only be in the Execution Context and not in the Request.
org.xwiki.container.servlet.ServletRequest: Method 'public org.xwiki.url.XWikiURL getURL()' has been removed
org.xwiki.container.servlet.ServletRequest: Method 'public void setXWikiURL(org.xwiki.url.XWikiURL)' has been removed
org.xwiki.container.portlet.PortletRequest: Method 'public org.xwiki.url.XWikiURL getURL()' has been removed
org.xwiki.container.portlet.PortletRequest: Method 'public void setXWikiURL(org.xwiki.url.XWikiURL)' has been removed
org.xwiki.container.Request: Field XWIKI_URL has been removed, but it was previously a constant

Get Connected