Release Notes for XWiki 6.0 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 release is the first release for the 6.x cycle. It introduces the move to Java 7 as minimum version, a new experimental skin and various improvements on existing features.

New and Noteworthy (since XWiki 5.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.

Extension Manager UI Improvements

You can now choose to resolve all merge conflicts in the same way, when upgrading an extension. This means that whenever you get a merge conflict, you can choose to resolve the remaining merge conflicts by keeping the currently selected version. So for instance if you resolve the current merge conflict by keeping the new version then you can choose to resolve all the following merge conflicts by using the new version (whatever that may be).

EM-mergeConflict-action.png

Notice also that the upgrade log is collapsed when the upgrade is paused (waiting for your input). You can expand it by clicking on its label.

The Extension Manager is now asking for a confirmation before deleting unneeded wiki pages. This can happen for instance when you perform an upgrade and some wiki pages have been removed or renamed in the new version of the XAR extension, or if you uninstall a XAR extension. You can select which pages to keep and which pages to delete. The wiki pages that have modifications are not selected by default to prevent loosing those changes by mistake.

EM-cleanPagesAfterUninstall.png

See the Extension Manager Application documentation for more details.

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.

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.

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

  • The date search facets have a new option 'Older than 30 days':

    dateFacet.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
  • Add new Locale based API to manipulate current Locale:
      $xcontext.locale
      $xcontext.interfaceLocale
  • 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

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

For Developers

Solr

Advanced Search Suggest Sources

The Search Suggest feature retrieves live search results from various configurable sources. These sources specify the search engine to use and the search query. The search doesn't perform well, at least on Solr, if we use only the search query because each query is different (when the input text is different) so the cache is not used efficiently. Best is to rely on the filter cache but for this we need to be able to specify the filter query.

Starting with this release you are able to specify more advanced search parameters in the search query and they will be passed directly to the search engine. This currently works with Solr. As an example, the following statement from the 'query' property of a Search Suggest Source

type:DOCUMENT AND (title:(__INPUT__*) OR name:(__INPUT__*))

could be written as

fq=type:DOCUMENT
qf=title^2 name

Note that:

  • you would use the filter query which is the same for all search requests to this Search Suggest Source so it will be cached by Solr
  • you would be able to specify the boost for each field you want to search in
  • the query statement used is '__INPUT__' by default, if not specified.

In order to preserve backward compatibility with existing Solr Search Suggest Sources, we use the following convention:

 A line that doesn't start with 'xxx=' specifies the query statement; in other words, existing Solr Search Suggest Sources are specifying only the query statement.

For example:

foo __INPUT__* bar
fq=type:DOCUMENT
qf=title^2 name

means the query statement is 'foo __INPUT__* bar'. Which is equivalent to:

q=foo __INPUT__* bar
fq=type:DOCUMENT
qf=title^2 name

See the Solr common query parameters and the Extended DisMax query parser parameters documentation  for details on what parameters you can pass to the search engine.

Search UI Configuration

Application developers can now easily create a dedicated search page for their application, tailored for the application data. You can take a look at the FAQ application for example:

{{include reference="XWiki.SearchCode"/}}

{{velocity output="false"}}
#if ($searchEngine == 'solr')
  ## Customize the Solr Search UI for the FAQ application.
  #set ($solrConfig = {
    'queryFields': 'title^3 property.FAQCode.FAQClass.answer',
    'facetFields': ['creator', 'creationdate', 'author', 'date', 'mimetype', 'attauthor', 'attdate', 'attsize'],
    'filterQuery': [
      'type:DOCUMENT',
      "wiki:$xcontext.database",
      "space_exact:$doc.space",
      'class:FAQCode.FAQClass'
    ]
  })
#end
{{/velocity}}

{{velocity}}
{{include reference="$searchPage"/}}
{{/velocity}}

Faceting on Object Properties

In XWiki 5.3 we added support for faceting on object properties but the facets were not displayed nicely. We improved the facet display in this release so that the property type is taken into account: e.g. a facet on a date property will be displayed using the date facet (same as for the document creation date or the last modification date). Moreover, you can now configure the facet displayer to use and even create your own facet displayer. See the Solr Search Application for details.

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.

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.

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': '',
...

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.
  • We changed a bit the behaviour of Solr search with respect to the current language. We stopped using the (dynamically computed) 'locales' filter by default. We now rely only on the 'locale' facet, which has the current language preselected. See XWIKI-9977 for the full story.
  • $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.

Deprecated and Retired projects

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 33Not Tested
Firefox30.pngMozilla Firefox 28 Jira Tickets Marked as Fixed in the Release Notes
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.1 Jira 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

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.

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 on Java 6.

Crypto Modules moved to Commons

The crypto modules (except the script service) have been moved to xwiki-commons. Developers should be careful to update their dependencies.

Active Installs

The Active Installs feature now requires an ElasticSearch server version 1.0.0 or greater.

API Breakages

The following APIs were modified since XWiki 5.4.2:

  • 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 Window object:
    org.xwiki.gwt.dom.client.DOMUtils: Method 'public void stop(org.xwiki.gwt.dom.client.Window)' has been removed
Tags:
   

Get Connected