XWiki Enterprise 2.4 Milestone 2

Last modified by Thomas Mortagne on 2023/10/13

Second milestone of the XWiki Enterprise 2.4 version (Roadmap).

The highlights of this release are: object and classes edition improvements and especially the possibility the remove classes properties, template based page creation, invitations and more security improvements.

New and Noteworthy (since XWiki Enterprise 2.4 Milestone 1)

Objects and classes editor improvements

The object and class editor are now fully panel-less, which among other things means that you have the full object/class editors UI even in an empty wiki without having to import the needed XE xar.


The class editor also adds better refactoring capabilities:

  • reorder class properties
  • delete a class property


There are also many other small ergonomics improvements to discover !

New Template-based page creation

Starting with this release users and applications can provide documents that can be used as template when creating new pages. The new document (content, objects and other metadata) will be replicated from the template.


  • "Wanted Links" also offers the choice to create the new document from the available templates ( "My Template" template in the image below):


Find more details about the template creation and administration on the documentation page.

New Invitation Manager application

The Invitation Manager application allows users to send emails, inviting friends and colleagues to join a wiki. You will be able to configure your wiki to send emails through an open mail relay on the server or through an email account of your choosing. 

An invitation may allow users to register in a wiki where registration is forbidden. Invitees may choose to accept or decline an invitation. Spam prevention measures ensure that email recipients will have a button to report that message as abuse.

Internationalized and configurable email templates generate rich HTML email content from user input.


Learn how you can configure this application by visiting the application page.

New search application improvements

  • The improvements facilitate search on the main wiki of a farm. They make it possible for you to select the wikis where to search in using the LuceneSearch page.


WYSIWYG Improvements

  • Added the ability to insert macros with a single click from the tool bar
  • Added a 'paste with filtered styles' button on the tool bar
  • Wysiwyg editor import from office feature now filter style by default

JMX Administration Console


Watchlist improvements

  • Allow to remove elements in the watchlist from the user profile
  • Add in virtual mode, add a wikis section in "elements in your watchlist"


Script improvements

  • Make the Query Manager use the Script Service to expose services to scripts. See Query Guide for more details.
  • Make possible to directly return the Block based result of a script macro. It's supported for all JSR 223 macro which means all script macro script Velocity macro for now. See Script Macro for more details.
  • Prevent nested script macros by default: It's now impossible for the output of a script macro to become another script macro for security reasons. See Script Macro for more details.

Javascript improvements

  • Start writing a Javascript mirror of the XWiki data model: Document.getURL
  • New "suggestDocuments" behavior for input fields


  • Allow to make document titles mandatory when editing
  • Confluence syntax parser bugfixes

Dependencies upgrade

  • Doxia 1.1.3
  • JODConverter 3.0 beta3
  • JBossCache 3.2.5.GA
  • Groovy 1.7.3
  • Script.aculo.us 1.8.3
  • Jython 2.5.2b1


  • All the translations have been updated

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 default execution order of syntax 1.0 renderers was changed, now groovy scripts are executed before velocity. You can change the order using xwiki.render.renderingorder configuration option in xwiki.cfg.
  • It's now impossible for the output of a script macro to become another script macro. If you need this functionality, you can get it by opening xwiki/WEB-INF/lib/xwiki-core-rendering-macro-script-2.4.jar and inside of the jar, editing /META-INF/components.txt and removing the line which says:

API Breakages

  • org.xwiki.rendering.listener.DefaultAttachement as been renamed to org.xwiki.rendering.listener.DefaultAttachment
  • jodconverter packages and some classes names has been modified in 3.0 beta3

The following APIs were modified since XWiki Enterprise 2.3:

[ERROR] org.xwiki.rendering.listener.DefaultAttachement: Class org.xwiki.rendering.listener.DefaultAttachement removed
[ERROR] org.xwiki.rendering.transformation.MacroTransformationContext: Method 'public org.xwiki.rendering.internal.transformation.MacroTransformation getMacroTransformation()' has been removed
[ERROR] org.xwiki.rendering.transformation.MacroTransformationContext: Method 'public void setMacroTransformation(org.xwiki.rendering.internal.transformation.MacroTransformation)' has been removed
[ERROR] org.xwiki.rendering.transformation.Transformation: Method 'public void transform(org.xwiki.rendering.block.Block, org.xwiki.rendering.transformation.TransformationContext)' has been added to an interface
[ERROR] org.xwiki.rendering.transformation.TransformationManager: Method 'public void performTransformations(org.xwiki.rendering.block.Block, org.xwiki.rendering.transformation.TransformationContext)' has been added to an interface
[ERROR] org.xwiki.officeimporter.openoffice.OpenOfficeManager: Return type of method 'public net.sf.jodconverter.OfficeDocumentConverter getDocumentConverter()' has been changed to org.artofsolving.jodconverter.OfficeDocumentConverter
[ERROR] org.xwiki.model.ModelContext: Method 'public void setCurrentEntityReference(org.xwiki.model.reference.EntityReference)' has been added to an interface
[ERROR] org.xwiki.bridge.DocumentAccessBridge: Method 'public void setCurrentUser(java.lang.String)' has been added to an interface
[ERROR] org.xwiki.velocity.VelocityEngine: Method 'public void clearMacroNamespace(java.lang.String)' has been added to an interface

Get Connected