ReleaseNotesXWiki72M2

Version 22.1 by Thomas Mortagne on 2015/08/04

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.

<insert description of release here>

New and Noteworthy (since XWiki <version - 1>)

Full list of issues fixed and Dashboard for <version>.

Script Right

The Script Right is now set to DENY by default, meaning that if you do not have it explicitly, you will not be able to execute the scripts that you write with your user account.

However, for backwards compatibility reasons, the standard XWiki Enterprise distribution comes with the Script Right being allowed for all users at the main wiki level so that, unless you (as an admin) explicitly revoke the right for some users or explicitly deny it, they will be able to execute the scripts they wrote, just like before.

scriptRightsExplicitlyAllowedInXWikiPreferences.png

<feature N>

<description of feature N>

Miscellaneous

  • Import UI move to new standard tree
    import.png

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

For Developers

New Space/XWikiSpace table

A new tables dedicated to spaces has been introduced. See DatabaseSchema for more details.

Queries improvement

Allow executing complete SELECT queries

In HQL and XWQL it's now possible to execute complete SELECT queries without programming right as long as you follow some rules currently defined in com.xpn.xwiki.internal.store.hibernate.query.HqlQueryUtils which is a list of database field allowed in the SELECT clause:

  • Document/XWikiDocument table: fullName, name, space, language, defaultLanguage, translation, hidden
  • Space/XWikiSpace table: reference, name, parent, hidden

This is also true for the named queries located in queries.hbm.xml file.

New SecureQuery

The right to execute or not some query is now controlled by each org.xwiki.query.QueryExecutor.

Anyone can ask the executor to check or ignore right through the new org.xwiki.query.SecureQuery extending org.xwiki.query.Query:

  • checkCurrentAuthor: indicate if the current author right should be checked
  • checkCurrentUser: indicate if the result should be filtered based on current user right (only implemented by SOLR right now)

JS API Improvements

  • It's now possible to create a Nested Spaces Reference using XWik'is Javascript API. For example:
    // Construct a Nested Space reference
    var reference = new XWiki.SpaceReference('wiki', ['space1', 'space2']);
    expect(XWiki.Model.serialize(reference)).toEqual('wiki:space1.space2');
    reference = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
    expect(XWiki.Model.serialize(reference)).toEqual('wiki:space1.space2.page');
    // Construct a non-Nested Space reference
    reference = new XWiki.SpaceReference('wiki', 'space');
    expect(XWiki.Model.serialize(reference)).toEqual('wiki:space');
    // Try passing non-valid space parameters
    expect(function() {new XWiki.SpaceReference('wiki', [])}).toThrow('Missing mandatory space name or invalid type for: []');
    expect(function() {new XWiki.SpaceReference('wiki', 12)}).toThrow('Missing mandatory space name or invalid type for: [12]');
  • A new XWiki.EntityReference.equals() method has been added. For example:
    var reference1 = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
    var reference2 = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
    var reference3 = new XWiki.DocumentReference('wiki2', ['space1', 'space2'], 'page');
    expect(reference1.equals(reference2)).toBe(true);
    expect(reference1.equals(reference3)).toBe(false);
  • A new XWiki.EntityReference.fromJSONObject(obejct) has been added to create a Javascript XWiki.EntityReference from a Java EntityReference directly serialized as JSON:
    var reference = XWiki.EntityReference.fromJSONObject(jsonText.evalJSON());
  • A new XWiki.EntityReferenceTree class which partially mimic Java EntityReferenceTree on Javascript side. There is not much yet, it was mostly introduced to make easier to manipulate a serailized Java EntityReferenceTree

Deprecated and Retired projects

Upgrades

The following dependencies have been upgraded:

Miscellaneous

  • Custom displayers are now executed with the rights of the user who wrote them (i.e. author of the class document or content author of the displayer document), and not the rights of the user who wrote the script that uses them (i.e. current context document's content author). See XWIKI-12306 for more details.
  • In the Active Install Extension, a new Velocity Macro has been introduced to compute the number of Active Installs having a specific Extension. Example usage:
    {{include reference="ActiveInstalls.ExtensionCount"/}}

    {{velocity}}
      #set ($extensionIds = [
        'org.xwiki.contrib:xwiki-totem-application',
        'jsimard:event-reporter-application',
        'mouhb:likeapplication'
      ])
      |=Extension Id|=Count
      #foreach($extensionId in $extensionIds)
        #countActiveInstallsUsingExtension($extensionId $count)
        |$extensionId|$count
      #end
    {{/velocity}}
  • Better support of non-DOCUMENT EntityReferences in DocumentReferenceConverter. It now behaves like XWiki#getDocument(EntityReference)

Translations

The following translations have been updated: 

Tested Browsers & Databases

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 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 <version>

<issues specific to the project>

API Breakages

The following APIs were modified since <project> <version - 1>:

<clirr output here>

Get Connected