Release Notes for XWiki 5.2 Milestone 2

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.

The support of XWiki Enterprise Manager is stopped. XWiki Enterprise now comes with the ability to create subwikis by default, see below.

The second milestone of the 5.2 release comes with multiwiki support enabled by default: users are able to create new wikis without the need to install additional extensions. This is possible because the Workspace Application has been integrated in XWiki Enterprise. Besides this, the new release brings a Solr-based live search (to replace the one based on Lucene) and the ability to track active XWiki installs. Developers will be interested by the new WikiStream framework. As with other releases this one has a lot of bug fixes (92) and improvements (33) which make it worth trying.

New and Noteworthy (since XWiki 5.2 Milestone 1)

Full list of issues fixed and Dashboard for 5.2.

Wiki Creation

XWiki Enterprise comes now with the ability for users to create their own wikis (a.k.a subwikis). This supersedes the notion of "workspace" and consist in the integration of the Workspace Application in the default XWiki distribution.

add-wiki.png

This new menu entry appears only if a wiki template is created first, see below.

Wiki Creation Right

The wiki creation is now possible for users who have the "createwiki" right. This right is only available for the main wiki users, exactly like the Programming Right.

Wikis Section in the Administration

A new section is available in the administration of the main wiki. In this section, you can enable the wiki creation feature by creating a wiki template. It also manages who has the right to create new wikis.

admin-wikis.png

New wiki creation wizard

A new wizard for the creation of a new wiki is now available from the "add" menu.

createwiki1.png

createwiki2.png

XWiki Top Menu

A new top menu has appeared, near the "Profile" menu. It provides a link to the main wiki and to the Wiki Directory (which used to be the "Workspace Directory" - the list of all created wikis except the main one).

It is only available when more than one wiki is created, to prevent the user who only want a single wiki to have too much elements in the UI.

new-xwiki-menu.png

The position of the new menu is still under discussion and may change in XWiki 5.2 final.

Solr-based search suggest

Starting with this version the search suggest feature takes into account the configured search engine. To achieve this we added a new property to SearchSuggestSourceClass that specifies the search engine used by the source. We also created a search suggest service based on Solr and we added search suggest sources that mimic the behaviour of the existing Lucene-based sources. As a result, the search suggest feature is now using Solr by default (as Solr is the default search engine starting with 5.1).

We also improved the search suggest administration section

searchSuggestAdminSection.png

and we simplified the source creation form.

searchSuggestSourceForm.png

Active Installs Tracking

It' very important for the open source committers to understand how well or how badly they're faring when developing the XWiki open source project. So far we didn't know if the number of people using XWiki was increasing, decreasing or staying stable. This module allows us to know who's using XWiki.

It does the following:

  • A client side JAR is bundled with XWiki and it sends a ping with data once per day
  • A server side Application is installed on xwiki.org, allowing us to query the data sent and to display a counter of Active Installs of XWiki (i.e. installs for which we've received a ping in the last N days, for example at least one ping in the past month).

The data sent is anonymous and consists of the following:

  • A unique id (UUID) representing the XWiki instance. Note that not even the IP is kept and there's no way to find who's having a give UUID (it's generated using Java's UUID implementation)
  • The date of the ping
  • The version of your XWiki distribution
  • The technical ids and versions of extensions you have installed.

This will allow us to present the following data:

  • Number of total installs of XWiki
  • Number of Active Installs
  • Most used extensions across versions of XWiki
  • How frequently the XWiki user base upgrades to newer versions of XWiki

stats.png

In the near future we'll offer a UI feature to opt-out (in the Administration pages) but at the moment if you wish to opt-out (please don't, we need your help, knowing who's using us and that it's growing is what keeps us motivated to continue developing XWiki!), then simply remove the WEB-INF/lib/xwiki-platform-activeinstalls* JAR and restart.

Reference documentation:

Miscellaneous

  • The line chart type has two parameters, hideShapes and hideLines, to hide the shapes used to display the data points or to hide the interpolation lines that connect the data points.

    lineWithoutShapes.png

  • When creating or editing a template provider the template name field is now mandatory.

    templateNameMandatory.png

  • New Instance Module used to compute a unique id for each XWiki instance (used by the Active Installs Client API

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

For Developers

New WikiStream framework

Wiki Stream goal is to provide generic API to make easier for different representations of a wiki instance to communicate with each other.

It's still in a very early stage and the API might change during 5.x but it's already pretty complete and usable and the following streams modules are provided:

  • XWiki instance input (send WikiStream events from various data of the XWiki instance like the documents in the database etc.)
  • XAR instance output (write a XAR package from WikiStream events)

Forcing IE Compatibility mode

Now, we force the Compatibility mode for Internet Explorer (IE) browsers to use the latest rendering mode.
Before, the IE browser displayed all intranet sites in compatibility mode by default. This means that even if the user was using IE9, he saw the content rendered with IE7 standards. Since we don't support IE6/7 anymore this lead in displaying broken layout, scrollbars, etc. See XWIKI-8907.

Choosing which types of attachments can be displayed inline (Security)

In order to prevent XSS via FileUpload, a new feature has been added: you can now specify in xwiki.properties which types of attachment can be displayed inline.
In the "Attachment" section of xwiki.properties, you can either precise a whitelist of mimetypes that can be displayed inline, or precise a blacklist of mimetypes that shouldn't be displayed inline (if you use this configuration, it is strongly advised to blacklist at least text/html and text/javascript mimetypes for security reasons).

Note that attachments provided by users having Programming Rights won't be affected by these restrictions.  

Miscellaneous

  • Added support for custom facets in Solr search API

Upgrades

The following dependencies have been upgraded:

Translations

The following translations have been updated: 

Tested Browsers & Databases

Here's the list of browsers we support and how they've been tested specifically for this release:

BrowserTestedDetails
Chrome30.pngGoogle Chrome 27PartiallyThe first test (Attach Two Files) from this page
Firefox30.pngMozilla Firefox 23PartiallyThe first 24 tests from this page
IE30.pngInternet Explorer 8PartiallyThese 81 tests
IE30.pngInternet Explorer 9PartiallyThe tests from here and here where the browser is Internet Explorer 9

Here's the list of databases we support and how they've been tested specifically for this release:

DatabaseTestedDetails
hypersql.pngHyperSQL 2.3.0FullyThe tests from these pages: first, second and third 
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

  • Bugs we know about
  • If you're migrating an XWiki instance using PostgreSQL or Oracle you may get this error (fixed in XWiki 5.2). The workaround is to remove the hibernate_sequence sequence prior to starting XWiki (for the main wiki and all subwikis).

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.

Issues specific to XWiki 5.2 Milestone 2

  • XWiki now creates a unique identifier in the database (this is used by the new Active Installs module and will be used in the future by the Extension Manager to identify your instance for example). You need to verify that your hibernate.cfg.xml file has the following mapping definition next to the existing mapping definitions:
    ...
       <mapping resource="instance.hbm.xml"/>
    ...
  • If you're upgrading from XWiki 4.5.x to this version you'll need to perform a full re-indexation when using the SOLR Search. This because in XWiki 4.5.x the SOLR search was experimental and we've completely changed the indexing
    format in XWiki 5.1.

API Breakages

The following APIs were modified since XWiki 5.1:

  • Moved to xwiki-commons-legacy-properties
org.xwiki.properties.converter.AbstractCollectionConverter: Class org.xwiki.properties.converter.AbstractCollectionConverter removed
  • This method should never have existed
org.xwiki.rendering.listener.reference.ResourceType: Method 'public void setScheme(java.lang.String)' has been removed
  • Moved from xwiki-rendering-api to xwiki-rendering-xml
org.xwiki.rendering.renderer.printer.XHTMLWikiPrinter: Class org.xwiki.rendering.renderer.printer.XHTMLWikiPrinter removed
org.xwiki.rendering.renderer.printer.XMLWikiPrinter: Class org.xwiki.rendering.renderer.printer.XMLWikiPrinter removed
  • This field is not meant to be be modified, the final was just forgotten.
com.xpn.xwiki.XWikiContext: Field TYPE_PROVIDER is now final
  • Has been moved to xwiki-platform-feed-api since it was the only module using it. We also dropped jTidy in favor of HTMLCleaner.
com.xpn.xwiki.util.TidyMessageLogger: Class com.xpn.xwiki.util.TidyMessageLogger removed
  • Google API plugin has been retired
com.xpn.xwiki.plugin.google.GooglePlugin: Class com.xpn.xwiki.plugin.google.GooglePlugin removed
com.xpn.xwiki.plugin.google.GooglePluginApi: Class com.xpn.xwiki.plugin.google.GooglePluginApi removed
  • Return the number of imported documents
com.xpn.xwiki.tool.backup.Importer: Return type of method 'public void importXAR(java.io.File, java.lang.String, com.xpn.xwiki.XWikiContext)' has been changed to int
  • The JPQLParser generates source code (that should be internal but it is not) and the grammar has changed a bit.
org.xwiki.query.jpql.analysis.Analysis: Method 'public void caseAFuncnumComparableItem(org.xwiki.query.jpql.node.AFuncnumComparableItem)' has been added to an interface
org.xwiki.query.jpql.analysis.Analysis: Method 'public void caseAFuncstrComparableItem(org.xwiki.query.jpql.node.AFuncstrComparableItem)' has been added to an interface
org.xwiki.query.jpql.analysis.Analysis: Method 'public void caseAFunctimeComparableItem(org.xwiki.query.jpql.node.AFunctimeComparableItem)' has been added to an interface
org.xwiki.query.jpql.analysis.Analysis: Method 'public void caseAPathComparableItem(org.xwiki.query.jpql.node.APathComparableItem)' has been added to an interface
org.xwiki.query.jpql.node.AGroupbyItem: Parameter 1 of 'public AGroupbyItem(org.xwiki.query.jpql.node.PPath)' has changed its type to org.xwiki.query.jpql.node.PComparableItem
org.xwiki.query.jpql.node.AGroupbyItem: Method 'public org.xwiki.query.jpql.node.PPath getPath()' has been removed
org.xwiki.query.jpql.node.AGroupbyItem: Method 'public void setPath(org.xwiki.query.jpql.node.PPath)' has been removed
org.xwiki.query.jpql.node.AOrderbyItem: Parameter 1 of 'public AOrderbyItem(org.xwiki.query.jpql.node.PPath, org.xwiki.query.jpql.node.TOrderbySpec)' has changed its type to org.xwiki.query.jpql.node.PComparableItem
org.xwiki.query.jpql.node.AOrderbyItem: Method 'public org.xwiki.query.jpql.node.PPath getPath()' has been removed
org.xwiki.query.jpql.node.AOrderbyItem: Method 'public void setPath(org.xwiki.query.jpql.node.PPath)' has been removed
Tags:
   

Get Connected