Release Notes for XWiki 5.1 Release Candidate 1

Last modified by Thomas Mortagne on 2017/03/24

This is the release notes for XWiki Platform, XWiki Enterprise and XWiki Enterprise Manager. They share the same release notes as they are released together and have the same version.

This is mostly a stabilization release leading to XWiki 5.1 and it brings Sorl search improvements and bug fixes as we plan to make Solr the default search engine in 5.1 final. There is also a new Menu Application in platform (not bundled by default) to help you create navigation menus.

New and Noteworthy (since XWiki 5.1 Milestone 2)

Full list of issues fixed and Dashboard for 5.1.

Menu Application

We have rewritten the Navigation Menu Wiki Macro and the Navigation Menu Config Application into a single application that can help you create navigation menus to be displayed either horizontally as a top bar after the page header or vertically in a side panel. See the documentation page of the new Menu Application for details.

menuViewPage.png

Solr improvements

  • at each startup a synchronization background job is started to make sure solr index and database are in sync (only update what needs to be updated)
  • name_exact property has been added to document model in solr index to allow doing exact matching on a document (for example when search a specific document and several have similar names)
  • doclocale property is now stored in Solr index to indicate the technical locale of the document in database (locale contains the real locale after resolving default locale for default entry)

Miscellaneous

  • We changed the dashboard to display the gadget actions when hovering the gadget.

    gadgetActions.png

  • More documents marked as hidden by default: Blog.News, Blog.Other, Blog.Personal, Main.Activity, Main.MessageSenderMacro, Main.Tags, Sandbox.WebPreferences, XWiki.WebHome, XWiki.XWikiAdminGroup, XWiki.XWikiAllGroup, XWiki.SearchConfig

Full Issue List

For Developers

Merging WARs with Packager plugin

We added a contextPathMapping configuration parameter to the Packager Maven plugin to allow us to bind WAR artifact IDs to the context path where they should be extracted. Here's an example:

<plugin>
 <groupId>org.xwiki.platform</groupId>
 <artifactId>xwiki-platform-tool-packager-plugin</artifactId>
  ...
 <configuration>
   <contextPathMapping>
     <!-- Merge the WYSIWYG editor WAR with the platform web WAR. -->
     <xwiki-platform-wysiwyg-war>xwiki</xwiki-platform-wysiwyg-war>
   </contextPathMapping>
 </configuration>
</plugin>

The Packager plugin looks for WAR artifacts in the list of dependencies. If no WAR-type dependencies are found then the following WARs are used, with the corresponding default context path binding:

xwiki-platform-web: xwiki
xwiki-platform-tool-rootwebapp: root

If more WARs share the same context path then they are merged. Of course, in this case the order in the list of dependencies is important because the last WAR can overwrite files from the previous ones. When no mapping is defined for a WAR, its artifact id is used instead as context path.

Miscellaneous

  • A new UI extension point is available: org.xwiki.platform.template.header.after. See the list of available UIXs for more information.
  • Jobs don't share the same ExecutionContext anymore.
  • The WYSIWYG editor administration section has been moved from the Administration Application to its own module under xwiki-platform-wysiwyg.
  • A new Runnable wrapper to initialize and dispose ExecutionContext:
    Thread thread = new Thread(new ExecutionContextRunnable(runnable, componentManger));
    thread.start();
  • A new method to add a custom Job to the JobManager:
    Job myjob = new MyJob();
    this.jobManager.addJob(myjob);
  • It's now possible to write Rendering Integration tests using Mockito. For example:
    @RunWith(RenderingTestSuite.class)
    @RenderingTestSuite.Scope("wiki")
    @AllComponents
    public class WikiIntegrationTests
    {
       @RenderingTestSuite.Initialized
       public void initialize(MockitoComponentManager componentManager) throws Exception
       {
            componentManager.registerComponent(MockWikiModel.getComponentDescriptor());

           // Add InterWiki Definition for links28 test
           DefaultRenderingConfiguration renderingConfiguration =
               (DefaultRenderingConfiguration) componentManager.getInstance(RenderingConfiguration.class);
            renderingConfiguration.addInterWikiDefinition("knownalias", "http://server/common/url/");
       }
    }

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 27PartiallyJira Tickets Marked as Fixed in the Release Notes for XWiki 5.1 RC1; Migrations from 5.0.3 to 5.1RC1
Firefox30.pngMozilla Firefox 21Not Tested
IE30.pngInternet Explorer 8Not Tested
IE30.pngInternet Explorer 9Not Tested

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

DatabaseTestedDetails
hypersql.pngHyperSQL 2.2.9PartiallyJira Tickets Marked as Fixed in the Release Notes for XWiki 5.1 RC1; Migrations from 5.0.3 to 5.1RC1
mysql.pngMySQL 5.6.10Not Tested
oracle.pngOracle 11.2Not Tested
postgresql.pngPostgreSQL 9.1.3Not Tested

Known issues

Backward Compatibility and Migration Notes

General Notes

You may also want to import the default wiki XAR in order to benefit from all the improvements listed above.

Always make sure you compare your xwiki.cfg and xwiki.properties files with the newest version since some configuration parameters were 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.0.3:

  • Young API: New method to separate job setup from job start to put real jobs in queue.
    org.xwiki.job.Job: Method 'public void initialize(org.xwiki.job.Request)' has been added to an interface
  • Young API: New method to add a custom Job to the queue.
    org.xwiki.job.JobManager: Method 'public void addJob(org.xwiki.job.Job)' has been added to an interface
  • Needed to fix XWIKI-9251 and the IRC Bot API is still relatively new and not a mainstream API used by lots of people.
    org.xwiki.ircbot.IRCBot: Method 'public java.lang.String getWikiId()' has been added to an interface
  • Young API: The URL module has never been finished and we started working on it again.
    org.xwiki.url.InvalidURLException: Class org.xwiki.url.InvalidURLException removed
Tags:
   

Get Connected