Release Notes for XWiki 7.3
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 is a stabilisation release focusing on the Nested Pages feature which was introduced in XWiki 7.2.
Lots of polishing has been done for the Nested Pages feature integration, targeting the consequences on the UI redesign and the changes at applications level. The release includes a couple of bug fixes, a few dependency upgrades and new UI extension points available for extension developers.
New and Noteworthy (since XWiki 7.2)
Full list of issues fixed and Dashboard for 7.3.
Flamingo
Navigation bar
The user's avatar is now displayed between the search icon and the drawer icon:
Also, the search bar at the top of the screen has been improved a bit. When the user clicks on the search button, the search bar is opened and gets the focus. Then, when the users clicks in some other place, the search bar is closed, slowly.
- Closed:
- Open:
Menus
The "More Options" menu has been split and a new "Page Administration" menu has been introduced:
Delete
- The delele UI now uses the 'title' and 'location' columns to list the children that may be affected by the delete action:
Drawer
- In the Drawer (top right menu), the pages for which the user doesn't have permissions to access are not displayed anymore.
Breadcrumb
When the hierarchy of a Nested Pages is long, we do not display it entirely any more. Instead, we display a limited version, that the user can expand by clicking on the "ellipsis" character ('...'):
- limited:
- full:
Note that this behavior have also been added to all hierarchy breadcrumbs, including location of search results, etc...
The breadcrumb has now support for tree navigation. Each breadcrumb element has a drop down tree that shows the siblings and the children, helping you navigate easily around the wiki.
The breadcrumb tree navigation doesn't show the document translations any more when multilingual is disabled, because navigating to a document translation when multilingual is off doesn't have any effect: the default translation is displayed instead. You can still see the translations in the Page Index Tree though.
Flamingo Theme Editor
The Flamingo Theme Application now handles the @lessCode field. It means that you can add any code, written with LESS, to your theme and see the result live!
Page Index
Since we have introduced the concept of Nested Spaces we needed to replace the Space column in the LiveTable with a more generic solution. Thus, the Index Application has now merged the previous Page + Space columns into a single Location column and we've introduced a new Title column but which now displays the title of pages, as can be seen on the following screenshot:
The same strategy is implemented for the children and the siblings viewers.
Note that you can filter at several path levels in the Location column. For example:
New Panels
- A Children Panel has been added to display the list of Children pages of the current Page.
- A Siblings Panel has been added to display the list of Sibling pages of the current Page.
- The SpaceDocs Panel has been deprecated and the Children Panel or Siblings Panel should be used instead. A warning message has been added (visible only to Admins) to explain this:
App Within Minutes
Up until this version, the applications created with App Within Minutes were always located in a top level space. For instance, if you wanted to create a "Meeting" application, the application data space was "Meeting". Starting with this version you can also create an application in a nested space. In the first step of the wizard you can select the location where you want the application to be created. In the following image I have create an application with path "Marius / Apps / Meeting".
The App Within Minutes wizard is now generating all the application pages in a single location, as nested pages. The code pages are grouped under the Code page and are marked as hidden (so your users don't see them by default). The application entries are created under the Data page. Backward compatibility is preserved so you should still be able to edit existing applications that don't have the new page organization.
The application wizard has also been modified to support any characters in the application name. The only remaining requirement for the application name is to not be empty.
Office Importer
The Office Importer Application has been redesigned visually and now supports importing into Nested Spaces:
Template Providers Administration
The template provider UI has been adapted to Nested Pages and it now supports:
- Creating template providers deeper than the first level (as it was restricted before), reusing the location picker widget
- Setting allowed locations (i.e. spaces) using the tree widget
For more details, see the XWIKI-12275 issue and the documentation.
- Template providers can now specify if they create terminal or non-terminal documents. See the documentation for more information.
- The Template Type option ("type" class property) of a template provider was removed since it was not used from the start and any existing values have been migrated to use the new "terminal" property. See the documentation for more information on the "terminal" property.
XClass Application
The XClass Application has been modified to support classes defined in nested documents. The default class sheet has been improved to use the new location picker when creating a new class entry, and the list of existing entries is now displayed using a live table. The 'Data types' page has been improved to use the new location picker when creating a new class, and the list of existing classes (data types) is now displayed using a live table.
Miscellaneous
- The Extension Diff view has been improved to display the page (translation) language both in the summary and the detail sections. The page name (heading) from the detail section is now a link to the local version of the page.
- Added the Actions column for the FAQ Application:
- Pages with Slovak and Brazilian Portuguese language are now indexed by Solr and thus they are included in the search results. See the Migration Notes below in case you are performing an upgrade and you want support for these languages.
- Clicking on the Logo (top-left of the screen) will now take you to the page that you have configured as wiki homepage by using the "Wiki Administration > Wikis > Descriptor" section. See the related documentation section.
- The template providers edition has been rewritten to be more consistent with other edit forms:
- Removed the 'Edit' button when editing a template provider document. See XWIKI-12675
- The Invitation Application now has an entry point in the App Bar (only visible to Admins).
- The Active Installs Client module had a bug leading to the sinceDays field not being set correctly (was almost always set to 0).
- New xpage parameter: outputTitle. If true then also display the title in addition to the content. Defaults to false if not specified.
- The XWiki Syntax help now no longer shows help for syntaxes that are not available in the wiki.
- Added support for list properties in LDAP user synchronization
See the full list of JIRA issues fixed in this release.
For Developers
Extension Manager
Custom repositories
Extensions and dependencies can now provide custom repositories. For now only dependencies repositories are directly used when resolving it before trying registered repositories.
In practice it means that Maven custom repositories are now supported properly (at least to resolve artifacts dependencies). On Extension Manager side it means you get the same custom repositories duplicated in the Extension and in each ExtensionDependency.
Support also been added to Extension Repository API. It's also imported in XWiki based Extension Repository implementation but not yet exposed as REST resource.
Resolve dependencies in extension repository first
The extension repository is checked first when searching for extension dependencies.
Extensions Repository
- New Extensions are now created in their own space by default (as the space home page). It will make it easier to organize documentation for large Extensions.
- Custom Extension repositories are now sent by the Extension Repository REST service
- Issue management information are now imported, displayed and exposed by the Extension Repository REST service
REST API
It's now possible to get a page with everything but attachment content. For this you can enable various part of the document using the following URL parameters:
- objects: enable returning document objects
- class: enable returning document class properties
- attachments: enable returning document attachments
They are all disabled by default.
Page objects support has also been added to the Page PUT API.
REST supports hidden
You can now set and/or get information from the status hidden of a page with REST service. For example, you may create a hidden page using the following file and the following request.
<title>Test of hidden</title>
<hidden>true</hidden>
<content/>
</page>
--verbose \
--user Admin:admin \
--request PUT \
--header "Content-type: application/xml" \
--data-binary "@page.xml" \
"http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/SomeSpace/pages/SomePage"
And then check the status of this hidden status with a GET HTTP request
--verbose \
--user Admin:admin \
--request GET \
--header "Accept: application/xml" \
"http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/SomeSpace/pages/SomePage"
You may also use the application/x-www-form-urlencoded to set this hidden field.
--verbose \
--user Admin:admin \
--request PUT \
--header "Content-type: application/x-www-form-urlencoded" \
--data "title=Test of hidden&hidden=true&content=" \
"http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/SomeSpace/pages/SomePage"
See The XWiki RESTful API for more details.
Flamingo
The Drawer menu, the content menus and the top menus are now implemented with UI extensions. The new Extension Points are:
org.xwiki.plaftorm.drawer | org.xwiki.plaftorm.drawer.header | org.xwiki.plaftorm.editactions | org.xwiki.plaftorm.adminactions | org.xwiki.plaftorm.moreoptions |
---|---|---|---|---|
org.xwiki.platform.topmenu.left | org.xwiki.platform.topmenu.right |
---|---|
The extension point DrawerItem has now a parameter separator to add a line separator before the drawer item.
Miscellaneous
- New getReference() API public scripting Element (Object, Class, etc.) to get the EntityReference of the element
- New functional tests for the Office Importer Application have been added to xwiki-platform. To enable them, you need to enable the new profile office-tests.
- For testing purpose, an environment variable XWIKI_OFFICE_HOME can bet set to configure where the Office server is installed on the system.
- New Time Zone XProperty type to represent Time Zones.
- The XAR plugin now verifies that Technical Pages are set as hidden and the Format Mojo sets them as hidden.
- A new XAR Integration testing framework has been introduced. It can be used to write integration tests for wiki pages.
- A displayTitle option has been added to the hierarchy macros. By default, it is set to true. When disabled, the names of the references are displayed in the breadcrumb, instead of the document titles.
- The documentTree macro has been moved to its own module, under the Index application, so that it can be used as a dependency in other modules without pulling the entire Index application.
- XAR plugin's Verify Mojo can now verify that defined pages have matching titles and now verifies titles of WebPreferences pages.
- log4j 1.2.17 and commons-logging 1.2 are now identified as core extension by the Extension Manager (which prevents them being installed as dependencies)
Deprecated and Retired projects
- The XML-RPC Integration has been retired. It had been deprecated several years ago in favor of the REST API and it wasn't actively supported.
- Old query plugin finally been moved to https://github.com/xwiki-contrib/xwiki-platform-queryplugin
Upgrades
The following dependencies have been upgraded:
- JSqlParser 0.9.4
- Jackson 2.6.2
- Jackson 2.6.3
- httpclient 4.5.1
- Groovy 2.4.5
- Restlet 2.3.5 and JAX-RS 2
- Lucene and Solr 5.3.1
- LessJs 2.5.3
- Jetty 9.2.13.v20150730. Note that this dependency is used only in the Jetty distribution.
- LiveValidation 1.4
- bootswatch 3.3.5+4
- less4j 1.15.2
- Joda-Time 2.9
- Tika 1.11
- cssparser 0.9.18
- ASM 5.0.4
- Bouncy Castle 1.53
- httpcore 4.4.4
- jQuery 1.11.3
- jQuery UI 1.11.4
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:
Browser | Test Result | |
---|---|---|
Google Chrome 46 | Not Tested | |
Mozilla Firefox 42 | Not Tested | |
Internet Explorer 10 | Not Tested | |
Internet Explorer 11 | Jira Tickets Marked as Fixed in the Release Notes |
Here is the list of databases we support and how they have been tested for this release:
Database | Test Result | |
---|---|---|
HyperSQL 2.3.3 | Not Tested | |
MySQL 5.7.8 | Jira Tickets Marked as Fixed in the Release Notes | |
Oracle 11.2 | Not Tested | |
PostgreSQL 9.3.10 | Not Tested |
Performances tests compared to 6.4.6
Like in 7.2 there hasn't really been much performance work on this version which was dedicated to improvement on nested spaces support that was added in 7.2 so we get mostly the same results than in 7.2.
Summary
"similar": difference is lower than 10%
"slightly": difference is lower than 20%
Note that most of the speed related values are an average of very moving results, a lot of things is happening during a HTTP request and it's far from stable duration (that's why 10% may sounds a lot for something called "similar" but the variable can go up and down around 5% sometimes so 10% average is really not that much of a clear win). Dumbbench based tests are executed several times and the lowest result is selected.
Speed
Actions | Difference | |
---|---|---|
Jetty startup | similar | |
First access | not existing page without UI | similar |
not existing page with UI | similar | |
Reload | not existing page without UI | similar |
not existing page with UI | similar | |
Main.WebHome with UI | 25% faster | |
Main.WebHome without UI | 45% faster | |
SOLR | Full SOLR reindex | slightly slower |
SOLR sync when index is empty | similar | |
SOLR sync when there is nothing to do | similar | |
Result of search finding lots of results | 30% faster | |
Result of search finding one result | 20% faster | |
Rendering | Page with 1000 macros without UI | /25 |
Page with 1000 html macros without UI | /5 |
Memory
Actions | Difference |
---|---|
Heap Memory after jetty startup | similar |
Heap Memory after full SOLR index | +50MB |
More details on performance comparison on single wiki between 7.3 and 6.4.6.
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 7.3
- If you had modified the custom displayer for Time Zones in either XWiki.XWikiUsers or XWiki.XWikiPreferences then when upgrading to 7.3M1 your change will be removed. This is because we've introduced a Time Zone XProperty type which is replacing the String type used before for storing the Time Zones. If you wish to put back your change you can define a custom displayer on the new Time Zone XProperty in XWiki.XWikiUsers or XWiki.XWikiPreferences.
- In order to add support for Slovak and Brazilian Portuguese languages to the Solr search we had to modify the Solr schema and unfortunately we don't have support for automatic Solr search index migration at this point. If you want to support these languages you have to delete the 'solr' folder from the configured permanent directory of your XWiki instance. The Solr index will be recreated automatically and the entire wiki/farm (including the pages in the Slovak and Brazilian Portuguese language) will be re-indexed after a server restart.
- Old query plugin is not provided by default anymore. See https://github.com/xwiki-contrib/xwiki-platform-queryplugin.
- The values of the removed template "type" property of TemplateProviderClass have been migrated to the new "terminal" property.
API Breakages
The following APIs were modified since XWiki 7.2:
- Add support for custom repositories in extensions:org.xwiki.extension.Extension: Method 'public java.util.Collection getRepositories()' has been added to an interface
org.xwiki.extension.ExtensionDependency: Method 'public java.util.Collection getRepositories()' has been added to an interface - New URL parameters:org.xwiki.rest.resources.pages.PageResource: In method 'public org.xwiki.rest.model.jaxb.Page getPage(java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean)' the number of arguments has changed