Release Notes for XWiki 8.3-rc-1

Last modified by Vincent Massol on 2016/09/28

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 highlight of this release is the support of Recommended Extensions (both on extensions.xwiki.org and inside the Extension Manager UI in XWiki). Other changes consist in minor improvements and bug fixes.

New and Noteworthy (since XWiki 8.3 Milestone 2)

Full list of issues fixed and Dashboard for 8.3.

For Users

Extension Repository adds recommendations

 
The Extension Repository Application now supports the optional feature of being able to mark some Extensions as Recommended. This provides some form of curation and separate "good" Extensions from others. The need arises when there are lots of Extensions. 

The screenshots show:

  • The view when the Recommendation feature is turned on
  • How a Recommended Extension is displayed with a badge showing it's Recommended

Miscellaneous

  • New parameters for the Gallery Macro: The Gallery Macro has 3 new parameters. You can use the width and height parameters to control the amount of space reserved for the gallery. The class parameter can be used to add custom CSS class names in order to customize the appearance of a gallery. Here's an example where we use the Bootstrap Grid system:

    {{gallery class="col-xs-12 col-sm-6 col-md-4" width="" height="300px"}}
    image:[email protected]
    {{/gallery}}

For Admins

Display recommended extensions in the Extension Manager

 
Extension Manager is now displaying only recommended extension by default.

You can still switch to All Remote Extensions. If no recommended extension is can be found for the provided search, the result for All Remote Extensions is displayed.

Make most expensive steps more visible

 
The performance tree give interesting information but it was hard to see quickly which steps where causing performances issues.

More details

Miscellaneous

  • It's now possible to disable core extension update at startup. See property extension.core.resolve in xwiki.properties.

For Developers

Templates from JARs

 
TemplateManager component now also search for templates in current Thread classloader which mean you can put your templates inside your JAR in the /templates folder. This is the last step to any JAR extension can provide default template which can be overwritten in a skin on in /template/ WAR resources.

Author Executor

 
It's now easier to execute code with a different author. Author is used to check SCRIPT and PROGRAMMING right. Example:

this.authorExecutor.call(this.renderer::execute, getAuthorReference());

Miscellaneous

  • uid Reference serializers now supports Locales in DocumentReference. It's added at the end of the string representation, in the same way as for other parts of the reference (same as what XWikiDocument#getKey() was doing).

  • A new "instance" ScriptService has been introduced with an API to get the XWiki instance id. New methods will be added if needed. See Instance Module extension for more details.

  • It's now possible to directly create a pre-configured mail Session. See Mail Sender API.

  • "Recommended" concept has been added to Extension and Repository API

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:

BrowserTest Result
Chrome30.pngGoogle Chrome 54Jira Tickets Marked as Fixed in the Release Notes + New and Noteworthy Features
Firefox30.pngMozilla FirefoxNot Tested
IE30.pngInternet Explorer 10Not Tested
IE30.pngInternet Explorer 11Not Tested

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

DatabaseTest Result
hypersql.pngHyperSQL 2.3.4Jira Tickets Marked as Fixed in the Release Notes + New and Noteworthy Features
mysql.pngMySQLNot Tested
oracle.pngOracleNot Tested
postgresql.pngPostgreSQLNot Tested

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 8.3 Release Candidate 1

None!

API Breakages

The following APIs were modified since XWiki 8.2.1:

  • Align with ExtensionRepository API
    • Violation type:
      java.method.exception.checkedAdded
    • Code:
      ## Old:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.extension.repository.ExtensionRepositoryManager::search(java.lang.String, int, int)

      ## New:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.extension.repository.ExtensionRepositoryManager::search(java.lang.String, int, int) throws org.xwiki.extension.repository.search.SearchException
  • Align with ExtensionRepository API
    • Violation type:
      java.method.exception.checkedAdded
    • Code:
      ## Old:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.extension.repository.ExtensionRepositoryManager::search(org.xwiki.extension.repository.search.ExtensionQuery)

      ## New:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.extension.repository.ExtensionRepositoryManager::search(org.xwiki.extension.repository.search.ExtensionQuery) throws org.xwiki.extension.repository.search.SearchException
  • Young API. Remember the external name of the resource
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.skin.Resource<I extends org.xwiki.filter.input.InputSource>::getResourceName()
  • Young API. Add helpers
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method org.xwiki.rendering.block.XDOM org.xwiki.template.TemplateManager::execute(org.xwiki.template.Template) throws java.lang.Exception
  • Young API. Add helpers
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method org.xwiki.rendering.block.XDOM org.xwiki.template.TemplateManager::executeNoException(org.xwiki.template.Template)
  • Young API. Add helpers
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method org.xwiki.rendering.block.XDOM org.xwiki.template.TemplateManager::getXDOM(org.xwiki.template.Template) throws java.lang.Exception
  • Young API. Add helpers
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method org.xwiki.rendering.block.XDOM org.xwiki.template.TemplateManager::getXDOMNoException(org.xwiki.template.Template)
  • Young API. Add helpers
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method void org.xwiki.template.TemplateManager::renderNoException(org.xwiki.template.Template, java.io.Writer)
  • Align with ExtensionRepository API
    • Violation type:
      java.method.exception.checkedAdded
    • Code:
      ## Old:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.platform.flavor.FlavorManager::getFlavors(org.xwiki.platform.flavor.FlavorQuery)

      ## New:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.platform.flavor.FlavorManager::getFlavors(org.xwiki.platform.flavor.FlavorQuery) throws org.xwiki.extension.repository.search.SearchException
  • Align with ExtensionRepository API
    • Violation type:
      java.method.exception.checkedAdded
    • Code:
      ## Old:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.platform.flavor.FlavorManager::searchFlavors(org.xwiki.platform.flavor.FlavorQuery)

      ## New:
      method org.xwiki.extension.repository.result.IterableResult<org.xwiki.extension.Extension> org.xwiki.platform.flavor.FlavorManager::searchFlavors(org.xwiki.platform.flavor.FlavorQuery) throws org.xwiki.extension.repository.search.SearchException
  • Was publicly exposing internal class
    • Violation type:
      java.field.typeChanged
    • Code:
      ## Old:
      field org.xwiki.mail.script.AbstractMailScriptService.sessionFactory

      ## New:
      field org.xwiki.mail.script.AbstractMailScriptService.sessionFactory

Credits

The following people have contributed code to this release (sorted alphabetically):

Alexandru Cotiuga
Denis Gervalle
Eduard Moraru
Manuel Smeria
Marius Dumitru Florea
Thibault Clauzier
Thomas Mortagne
Vincent Massol

Tags:
   

Get Connected