Release Notes for XWiki 6.0

Last modified by Thomas Mortagne on 2014/09/19

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.

First version of the 6.x cycle having for main theme performances. This version marks the move to Java 7 as minimum version and comes with a new experimental Flamingo skin, new chart renderers, WebJars support and many other improvements.

A packaging issue was found that lead to the wrong inclusion of the Servlet JAR in XWiki's WEB-INF/lib directory. Some containers (like Tomcat) will refuse to start if this JAR is present. To fix this, simply remove it. This issue is fixed in 6.0.1 and 6.1-milestone-1 (not released yet at this time of writing).

New and Noteworthy (since XWiki 5.4.4)

Full list of issues fixed and Dashboard for 6.0.

Moved to Java 7 as minimum version

The minimum required Java version to run XWiki is now Java 7. It's not just the minimum officially supported version, XWiki won't work anymore on Java 6.

Wiki Application Improvements

  • In the Wiki Index, all the wikis that the user can not access are not displayed anymore.
  • Now, by default, guest users can see a subwiki depending if they can see the main one. But of course, it is still possible to manually give view right to guest users in the subwiki's administration.

New Chart Renderers

The stackedbar and stackedbar3D plot renderers were added in the Chart Macro:

stackedbar.png

stackedbar3D.png

Panels Application Improvements

  • The Panels Application is now available from the Applications Panel:

    panels-application.png

  • The Panels Application's home page now uses a LiveTable to display the list of available Panels:

    panels-home.png

Standard XAR import scalability

The standard XAR import (in administration) is now based on WikiStream by default. This means that you should (at last) be able to import a XAR of any size (as long as you can attach it to the import page since that's how import UI is working right now).

You can put back old system if any issue using xwiki.action.import.xar.usewikistream property in xwiki.cfg file.

New experimental Flamingo skin

A new skin is now bundled in XWiki: Flamingo. The skin use the well-known Bootstrap framework framework which gives us a modern look-and-feel and makes the UI responsive and thus working on mobile devices.

The skin is currently an alpha version and should not be used in production. In addition, only the view and edit modes are currently implemented (no administration, might have problems with applications...).

flamingo.png

flamingo-edit.png

To active the skin (for testing purpose only at the moment), edit XWiki.DefaultSkin and put "flamingo" in the "base skin" field or add ?skin=flamingo to your URLs.

We have made some progress in the flamingo skin.

  • The administration is now implemented:

     flamingo-admin.png

  • The user profile too:

     flamingo-profile.png

  • The "advanced" edit modes are better (object, class, rights):

     flamingo-edit-objects.png

  • The "page export" action is now handled via a modal popup:

    flamingo-export.png

  • Create/rename/delete actions are now handled by Flamingo:

    flamingo-create-page.png

Miscellaneous

  • The document references are displayed as wiki >> Space >> Page path in the extension install log.

    docRefInExtensionLog.png

  • The "membership type" options are more clear

    membershipType.png

  • Added built in support for Apple's open directory groups in LDAP authenticator
  • Generate extension event in Wikistream XAR input module when the XAR contains extension informations
  • The Container Macro is now responsive. So if there is not enough place to display several columns side by side, they are displayed instead one after the other in a vertical alignment.

    responsive.png

  • The Windows Installer (EXE) now also work on Windows 8 and Windows 8.1.
  • By default the Total Installs and Active Installs figures displayed by the Active Installs Application now counts non-SNAPSHOT XWiki Enterprise instances (it used to count everything: SNAPSHOTs installs and even non-XE instances).
  • Authenticators can be installed as extensions. Note that they still require to modify xwiki.cfg to indicate the selected authenticator.
  • A new macro {{watchlist/}} can be used to embed the watchlist of the current user on any page. This is especially useful for a dashboard:

    watchlist.png

  • Debian installer allow XWiki to create new wikis by default in MySQL
  • When authenticating over a HTTPS connection, the authentication will not be preserved when switching to HTTP, for improved security

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

For Developers

WebJars Integration

The WebJars integration solves the issue of packaging JavaScript frameworks by bundling them as JARs. This allows XWiki Extensions to depend on JavaScript frameworks an be installable by the Extension Manager Application.

Action API

This Action API module is the entry point for all UIs and in charge of calling the correct backend code to display what the user has asked for (it's the Controller in MVC terminology).

Note that right now most Actions are still implemented the old way in the oldcore module without Components and using Struts. The goal is to progressively rewrite them using this new Action API.

LiveTable Query Filters

It's now possible to specify which Query filters to apply when retrieving LiveTable data.

For example if you want to show always hidden docs, then you would use:

...
  'queryFilters': 'currentLanguage',
...

And if you wish to show all docs for all languages and hidden docs you would use:

...
  'queryFilters': '',
...

New Rendering Context

See the Rendering Architecture for more details.

It's now possible to access the context of the rendering in progress from any components. The information initially provided by the org.xwiki.rendering.transformation.TransformationContext and org.xwiki.rendering.transformation.MacroTransformationContext (by arguments only to transformations and macro) are now available to any component using the org.xwiki.rendering.transformation.RenderingContext role.

For this context to be properly actuated, any process that initiate a transformation without using the default implementation of org.xwiki.rendering.transformation.TransformationManager role (or implement it) should take care of it. At the moment, there is no public API for this (internally we use org.xwiki.rendering.internal.transformation.MutableRenderingContext for this purpose), so it is highly recommended to use the transformation manager when possible.

Deprecated and Retired projects

Upgrades

The following dependencies have been upgraded:

Miscellaneous

  • The XAR plugins's format mojo now handles properly the defaultLanguage element: if a document has translation we assume it means the document is not a technical document and thus we set the default language to be English. This allows the XWiki SOLR Search to return results when the English language is selected in language facet.
  • The XAR plugin's verify mojo now also handles the defaultLanguage check accordingly.
  • The XAR plugin's verify mojo now checks for missing license headers (if the formatLicense configuration property is set to true).
  • The XAR plugin's format and verify mojos now support including/excluding files.
  • You can bind a list or an array to a XWQL or HQL parameter:
    {{velocity}}
    #set ($query = $services.query.xwql('where doc.name in (:myList)'))
    $query.bindValue('myList', ['Activity', 'BlogPostClass', 'Welcome']).execute()
    {{/velocity}}
  • Add new Locale based API to manipulate current Locale:
      $xcontext.locale
      $xcontext.interfaceLocale
  • $services.wiki.getAll() makes a better use of its internal cache, so the performances are better.
  • New API to test if logs of specific level exist in LogQueue.
  • Added support for several sets of properties for the same reference in org.xwiki.model.reference.EntityReferenceSet.
  • The Wiki module does not handle the application descriptors of the deprecated Application Manager anymore.

Translations

The following translations have been updated: 

  • German
  • French
  • Italian
  • Latvian
  • Swedish
  • Portuguese (Brazil)
  • Dutch
  • Spanish
  • Turkish

Tested Browsers & Databases

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

BrowserStatus
Chrome30.pngGoogle Chrome 34Smoke Tests
Firefox30.pngMozilla Firefox 29 Jira Tickets Marked as Fixed in the Release Notes, Smoke Tests
IE30.pngInternet Explorer 8Not Tested
IE30.pngInternet Explorer 9Smoke tests

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

DatabaseStatus
hypersql.pngHyperSQL 2.3.2 Jira Tickets Marked as Fixed in the Release Notes, Smoke Tests
mysql.pngMySQL 5.6.17Not Tested
oracle.pngOracle 11.2Not Tested
postgresql.pngPostgreSQL 9.3.4Not Tested
For the full list of tests see this page.

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 5.4.4:

  • Moved some method from EntityResource to Resource and changed EntityResource constructor:
    org.xwiki.resource.EntityResource: In method 'public EntityResource(org.xwiki.model.reference.EntityReference)' the number of arguments has changed
    org.xwiki.resource.EntityResource: Method 'public java.lang.String getAction()' has been removed
    org.xwiki.resource.EntityResource: Method 'public void setAction(java.lang.String)' has been removed
    org.xwiki.resource.Resource: Method 'public org.xwiki.resource.ActionId getActionId()' has been added to an interface
  • This method is available on the standard JavaScript Window object:
    org.xwiki.gwt.dom.client.DOMUtils: Method 'public void stop(org.xwiki.gwt.dom.client.Window)' has been removed
  • This method did not make any sense and was unusable:
    org.xwiki.model.reference.LocalDocumentReference: Method 'public org.xwiki.model.reference.WikiReference getWikiReference()' has been removed
Tags:
Created by Marius Dumitru Florea on 2014/04/16
    

Get Connected