XWiki Enterprise 2.5 Milestone 1

Last modified by Thomas Mortagne on 2023/10/13

First milestone of the XWiki Enterprise 2.5 version (Roadmap).

The highlights of this release are: improvements to action menus, a mechanism for inserting custom links in the header, the introduction of cancelable events and better external search engine indexing support.

New and Noteworthy (since XWiki Enterprise 2.4)

Improvements to Action Menus

  • New Add menu: Use the "Add" menu to create new spaces, pages, add attachments and comments.


  • Improved Wiki and Space menus: You may now access the document index straight from the wiki & space menus.

    WikiMenu.png        SpaceMenu.png

  • New Page menu: Integrates the Watch, Copy, Rename and Delete actions.


  • The Edit, Export, More actions and Profile menus also benefited from a refresh.

Mechanism for inserting custom links in the header

As a new part of the UI extensions mechanism, similar to skin extensions, applications can now insert custom <link> elements in the HTML header of the page, which allows to insert, for example:

  • custom navigational links (universal edit, paged navigation, index, author...)
  • custom RSS feed links
  • custom metadata links (DOAP, FOAF, generic RDF...)

Usage example:

$xwiki.linkx.use($xwiki.getURL('Blog.BlogRss', 'view', "xpage=plain&blog=${blogDoc.fullName}"),
  {'rel' : 'alternate', 'type' : 'application/rss+xml', 'title' : $title})

Introduced cancelable events

This allows to cancel document saving, better security with script execution and canceling an event that has errors on initialization.

Better external search engine indexing support

Google search results now always point to canonical view of pages.

Visible content menu when scrolling down


When scrolling down on a document, the content menu will follow, so the user will not have to scroll up on top of the page in order to access it.

Introduced XWiki Cryptographic Module

This module exposes high level api, allowing developers to bolster their security using cryptography for both integrity and confidentiality.
You can find more information about the cryptographic module including examples at the code zone page for the XWiki Cryptographic Module.

Known issues

Backward Compatibility and Migration Notes

General Notes

If you're running in a multiwiki setup you'll also need to define the property xwiki.store.migration.databases=all to your xwiki.cfg file or explicitly name all databases to be migrated as in xwiki.store.migration.databases=db1,db2,....

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

Always make sure you compare your xwiki.cfg file with the newest version since some configuration parameters were added. Note 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.

Migration Notes

The main entry point for the search UI is now the Main.Search page that will use the configured search engine (Lucene by default). If you want to refer to Lucene or Database search explicitly you can use the Main.LuceneSearch and Main.DatabaseSearch pages. Note that nothing is broken here (Main.WebSearch page is still there and internally it includes the Main.DatabaseSearch page), it's just the new clean way of targeting the search page.

Removed deprecated flickr plugin

The old flickr plugin was outdated and the API was broken, so, as a consequence, it has been removed. A new plugin will be available in the future. Meanwhile you can still find it in the contrib-retired repository.

Update your web.xml

Some servlet filters (SetCharacterEncodingFilter, used to handle character encoding and SavedRequestRestorerFilter, used to restore requests on login) were refactored and moved to another package. Make sure you update your WEB-INF/web.xml to the current version, otherwise XWiki server will fail to start.

API Breakages

The following APIs were modified since XWiki Enterprise 2.4:

[ERROR] org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro: Method 'protected boolean canExecuteScript()' has been removed
[ERROR] org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro: Method 'public java.util.List execute(org.xwiki.rendering.macro.script.JSR223ScriptMacroParameters, java.lang.String, org.xwiki.rendering.transformation.MacroTransformationContext)' has been removed
[ERROR] org.xwiki.rendering.macro.script.AbstractScriptMacro: Method 'protected boolean canHaveJarsParameters()' has been removed
[ERROR] org.xwiki.rendering.macro.script.AbstractScriptMacro: Method 'protected java.lang.ClassLoader getClassLoader(java.lang.String, java.lang.ClassLoader)' has been removed
[ERROR] org.xwiki.bridge.DocumentAccessBridge: Method 'public java.lang.String getDocumentURL(org.xwiki.model.reference.DocumentReference, java.lang.String, java.lang.String, java.lang.String, boolean)' has been added to an interface

Get Connected