General Actions:
This release contains many important UI improvements of existing features (xar import, user registration, comments, etc.), and introduces the new Model API starting with a new EntityReference and related tools to remove all String manipulations around documents and attachment names.
The XAR import interface has been completely revamped. The new interface (see screenshots below) now provides:

While deleted documents and attachments have been stored in a trash instead of being completely deleted since XWiki 1.2, there was no general interface for viewing the contents of the trash. This has been remedied by the introduction of two new tabs in the wiki's Document Index, Deleted Documents and Deleted Attachments.

Both use the livetable, thus allowing filtering and ordering for easier browsing. A document from the trash can be viewed, permanently deleted, or restored if the location is still available.

The attachment trash contains only attachments deleted from a document, and not attachments that were deleted together with their owner document; in the latter case, the attachments are kept together with the document in the document trash. For attachments, there is no restore option yet, it will be implemented in a future release.

Complete overhaul of the Profile UI: better display of the user information, recent changes by the user are shown, different tabs for user details, user settings, and watchlist information:

Improved inline-based editing for modifying profile details:

Inclusion of the WatchList manager page into the Profile as a tab:

Added a tab in the Profile for managing user preferences, which is currently rather small, but will be improved later to include more settings:


User profiles have been converted to XWiki Syntax 2.0

The new features are:

The different edition modes that used to be in a separate Panel are now in a new edit menu (similarly to the menu you get in view mode).

The users have the possibility to preview their comment before submitting it. A current known limitation is that the preview does not work for unauthenticated users.


The users have the possibility to edit their comments. This only works for authenticated users, since there is no way of knowing which unauthenticated user created a guest comment.







Previously, wiki macros could only be defined by users with administrator rights, and only in the main wiki (when in a virtual wiki farm). It's now possible for any user to register wiki macros, and in any wiki. However, this follows some user rights restrictions, preventing a limited user to write dangerous scripts available to all other users. For example, if the user does not have the proper rights, only he will see and use the macro he registered. To make the macro available globally, an administrator must re-save it.
The goal is to provide APIs to remove all String manipulations around documents and attachment names. It also introduces the concept of Reference for any entity of the model and the parser/serializer associated. For now Wiki, Space, Document and attachment are supported; classes objects and properties should come in 2.3 branch.
From a user point of view this will result in supporting any character in document names for example. In addition, this is also a step in the direction of supporting nested spaces (the storage would also need to be changed to support that).
In practice the existing code has not yet been fully refactored to benefit from the new implementation. The work has been started in XWiki Enterprise 2.2 Milestone 1 and will continue in XWiki Enterprise 2.3 and beyond.
This means that the following script will generate a different result:
While previously the result would have been abc abc, now it is abc $s.
Special care must be taken care with constructs like the following:
Since null != '' in Velocity, now a different branch will be executed. The following rewrites work.
Works in both modes, with or without null allowed:
#set($var = '')
#set($var = $xwiki.methodThatMightReturnNull())
#if("$!var" != '')
The method succeeded
#else
The method failed
#end
Works only in the new mode, with null allowed, but is shorter, slightly faster, and more familiar for java developers:
#set($var = $xwiki.methodThatMightReturnNull())
#if($!var != $util.null)
The method succeeded
#else
The method failed
#end
Captcha related configuration changed in Struts configuration file. If you keep the old file it will fail silently so make sure to use the proper configuration you can find in the new file (or overwrite it if you don't have any local modification obviously).
You may also want to import the default wiki XAR in order to benefit from the improvements listed above.
This release includes the following modules in the specified versions since XWiki Enterprise 2.1.2 was released.
| Group Id | Artifact Id | New Version | Old Version | JIRA URL |
|---|---|---|---|---|
| com.xpn.xwiki.platform | xwiki-* | 2.2 | 2.1.2 | jira |
| org.xwiki.platform | xwiki-* | 2.2 | 2.1.2 | jira |
| Group Id | Artifact Id | New Version | Old Version | JIRA URL |
|---|---|---|---|---|
| com.xpn.xwiki.platform.applications | xwiki-application-administration | 1.26 | 1.21 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-blog | 1.20 | 1.18 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-officeimporter | 1.13 | 1.12 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-panels | 1.34 | 1.30 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-scheduler | 1.16 | 1.15 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-statistics | 1.6 | 1.5 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-tag | 1.10 | 1.8 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-watchlist | 1.26 | 1.23 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-webdav | 1.3 | 1.2 | jira |
| com.xpn.xwiki.platform.applications | xwiki-application-wiki-macro-bridge | 1.3 | 1.2 | jira |
| Group Id | Artifact Id | New Version | Old Version | JIRA URL |
|---|---|---|---|---|
| com.xpn.xwiki.platform.plugins | xwiki-plugin-activitystream | 1.6 | 1.5 | jira |
| com.xpn.xwiki.platform.plugins | xwiki-plugin-jodatime | 1.3 | 1.3 | jira |
| com.xpn.xwiki.platform.plugins | xwiki-plugin-lucene | 1.16 | 1.12 | jira |
| com.xpn.xwiki.platform.plugins | xwiki-plugin-mailsender | 1.13 | 1.13 | jira |
| com.xpn.xwiki.platform.plugins | xwiki-plugin-scheduler | 1.16 | 1.15 | jira |
| com.xpn.xwiki.platform.plugins | xwiki-plugin-skinx | 1.13 | 1.12 | jira |
| com.xpn.xwiki.platform.plugins | xwiki-plugin-tag | 1.10 | 1.8 | jira |
| com.xpn.xwiki.platform.plugins | xwiki-plugin-watchlist | 1.26 | 1.23 | jira |
| Group Id | Artifact Id | New Version | Old Version | JIRA URL |
|---|---|---|---|---|
| com.xpn.xwiki.platform.skins | xwiki-skin-albatross | 1.27 | 1.26 | jira |
| com.xpn.xwiki.platform.skins | xwiki-skin-colibri | 1.12.1 | 1.8 | jira |
| com.xpn.xwiki.platform.skins | xwiki-skin-toucan | 1.32 | 1.31 | jira |
| Group Id | Artifact Id | New Version | Old Version |
|---|---|---|---|
| com.xpn.xwiki.platform | xwiki | 29 | 29 |
| Group Id | Artifact Id | New Version | Old Version | JIRA URL |
|---|---|---|---|---|
| org.xwiki.platform.tools | xwiki-configuration-resources | 1.36 | 1.36 | jira |
| org.xwiki.platform.tools | xwiki-jetty-resources | 1.17 | 1.17 | jira |
| org.xwiki.platform.tools | xwiki-license-resources | 1.1 | 1.1 | jira |
| org.xwiki.platform.tools | xwiki-packager-plugin | 1.15 | 1.15 | jira |
| org.xwiki.platform.tools | xwiki-rootwebapp | 1.3 | 1.3 | jira |
| org.xwiki.platform.tools | standards-validator | 1.1 | 1.1 | jira |
| org.xwiki.platform.tools | xwiki-xar-handlers | 1.9 | 1.9 | jira |
| org.xwiki.platform.tools | xwiki-xar-plugin | 1.13 | 1.13 | jira |
| org.xwiki.platform.tools | xwiki-verification-resources | 1.15 | 1.14 | jira |