XWiki Enterprise 3.0 Release Candidate 1

Last modified by Thomas Mortagne on 2023/10/13

First and hopefully last release candidate of the XWiki Enterprise 3.0 version (Roadmap).

New and Noteworthy (since XWiki Enterprise 3.0 Milestone 3)

Administration section for the WYSIWYG editor

The WYSIWYG content editor can now be easily configured from the wiki administration. Look for the WYSIWYG Editor section under Applications menu. You may still need to scan the list of available plugins and features in order to know what to enable. In the future we're hoping to integrate this information in the administration section.

WysiwygConfig.png

Attachment Selector Macro

Attachment Selector Macro is now bundled with XWiki Enterprise.

choosefile.png

The UI for changing the user's avatar has been modified to use the attachment selector macro:

changeAvatar.png

Message Stream Improvements

  • XE-870: New UI for choosing the target of a message

    messageTarget.png

  • XE-865: Add the ability to delete a message

    deleteMessage.png

  • XSCOLIBRI-278: Add a Network submenu in the top-right dropdown
  • XE-862: Add an administration section allowing to disable the message stream functionality
  • XE-869: Filter messages based on the context
  • XE-853: Any user can update the status of another user
  • XPAS-40: Deleting messages from the stream always fails

Dashboard Improvements

  • XWIKI-6085: Allow to add a new column in the dashboard
  • XWIKI-6092: Allow to edit the parameters of a gadget in the dashboard
  • XWIKI-6084: Adding a gadget to an empty dashboard fails with a JavaScript error
  • XWIKI-6152: Change the name of the panels-like style for the dashboard from colortheme to panels
  • XWIKI-6141: Cannot edit content of the container macro in the WYSIWYG macro wizard

Gallery Macro Improvements

  • XWIKI-6154: Gallery macro doesn't work on IE6
  • XWIKI-6143: Right clicking on an image displayed using the gallery macro doesn't always trigger the image context menu
  • XWIKI-6093: Keyboard events are stopped when gallery macro has focus

Search Suggest Improvements

  • XWIKI-6120: When typing ENTER in search box while suggestions are displayed, user is not taken to search results page
  • XWIKI-6099: JavaScript error and no highlighting when hovering a search suggest item

Extension Manager Improvements

  • XWIKI-6139: After upgrading an extension the previous version is still listed as installed
  • XWIKI-6144: Local repository should not load invalid extensions
  • XWIKI-6108: Improve core extensions scanning
  • XWIKI-6125: Set proper error when trying to install/uninstall extension without programming right
  • XWIKI-6101: Add extension events
  • XAEXTENSION-8: Hide wiki related fields and informations in a non-virtual wiki
  • XAEXTENSION-9: Use form standards for application manager forms
  • XAEXTENSION-10: Add the XWiki.RequiredRightClass object to XWiki.ExtensionManager because it needs PR

Administration Application Improvements

Miscellaneous

  • XE-854: Add XWiki Syntax 2.0/2.1 Images specifications to Syntax Guide
  • XWIKI-4997: Attachment names should not be trimmed
  • XWIKI-5336: RSS feed uses creation date instead of edit date
  • XWIKI-6134: Changes in the document title don't appear in the version comparison
  • XWIKI-6110: Allow direct control of livetable actions display
  • XWIKI-6095: Re-enable the "custom display" class meta property in the class editor
  • XWIKI-6104: Display the number of annotations in the extra information tabs
  • XAANNOTATIONS-15: Can't access the annotations tab by adding "#Annotations" in the page URL
  • XAANNOTATIONS-44: Selecting a piece of text that contains special character > doesn't work properly

Translations

  • The following translations have been updated: ca, cs, de, es, fr, gl, hi, hr, it, lv, nl, no, pl, pt, ro, ru, sk, sv, uk, vi, zh, zh_TW

Known issues

Test Report

You can check the manual test report to learn about what was tested and the results on various browsers.

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.

XWiki Enterprise 3.0 Release Candidate 1 specific notes

  • Due to the package rename done for XWIKI-6158 when upgrading from 2.x to 3.0 you must edit your web.xml file and replace all occurrences of com.xpn.xwiki.wysiwyg with org.xwiki.wysiwyg.

API Breakages

The following xwiki-core APIs were modified since XWiki Enterprise 2.7 (API breakages in modules that were moved to Rendering or Commons top level projects are not included):

ERROR: 8001: org.xwiki.officeimporter.OfficeImporter: Class org.xwiki.officeimporter.OfficeImporter removed
ERROR: 8001: org.xwiki.officeimporter.OfficeImporterFilter: Class org.xwiki.officeimporter.OfficeImporterFilter removed
ERROR: 7002: org.xwiki.officeimporter.OfficeImporterVelocityBridge: Method 'public java.lang.String getLastErrorMessage()' has been removed
ERROR: 7002: org.xwiki.officeimporter.OfficeImporterVelocityBridge: Method 'public boolean importDocument(byte[], java.lang.String, java.lang.String, java.util.Map)' has been removed
ERROR: 7002: org.xwiki.officeimporter.builder.PresentationBuilder: Method 'public org.xwiki.officeimporter.document.XDOMOfficeDocument build(java.io.InputStream, java.lang.String)' has been removed
ERROR: 7002: org.xwiki.officeimporter.builder.PresentationBuilder: Method 'public org.xwiki.officeimporter.document.XDOMOfficeDocument build(byte[])' has been removed
ERROR: 7002: org.xwiki.officeimporter.builder.XDOMOfficeDocumentBuilder: Method 'public org.xwiki.officeimporter.document.XDOMOfficeDocument build(byte[], org.xwiki.bridge.DocumentName, boolean)' has been removed
ERROR: 7002: org.xwiki.officeimporter.builder.XHTMLOfficeDocumentBuilder: Method 'public org.xwiki.officeimporter.document.XHTMLOfficeDocument build(byte[], org.xwiki.bridge.DocumentName, boolean)' has been removed
ERROR: 7012: org.xwiki.officeimporter.openoffice.OpenOfficeConverter: Method 'public boolean isMediaTypeSupported(java.lang.String)' has been added to an interface
ERROR: 8001: org.xwiki.officeimporter.openoffice.OpenOfficeDocumentConverter: Class org.xwiki.officeimporter.openoffice.OpenOfficeDocumentConverter removed
ERROR: 7002: org.xwiki.officeimporter.openoffice.OpenOfficeManager: Method 'public org.artofsolving.jodconverter.OfficeDocumentConverter getDocumentConverter()' has been removed
ERROR: 7002: org.xwiki.officeimporter.splitter.XDOMOfficeDocumentSplitter: Method 'public java.util.Map split(org.xwiki.officeimporter.document.XDOMOfficeDocument, int[], java.lang.String, org.xwiki.bridge.DocumentName)' has been removed
ERROR: 7012: org.xwiki.bridge.DocumentModelBridge: Method 'public org.xwiki.rendering.syntax.Syntax getSyntax()' has been added to an interface
ERROR: 7012: org.xwiki.bridge.DocumentModelBridge: Method 'public org.xwiki.rendering.block.XDOM getXDOM()' has been added to an interface
ERROR: 7002: org.xwiki.container.Request: Method 'public org.xwiki.url.XWikiURL getURL()' has been removed
ERROR: 7002: org.xwiki.rendering.macro.script.AbstractScriptMacro: Method 'protected org.xwiki.rendering.parser.Parser getSyntaxParser(org.xwiki.rendering.transformation.MacroTransformationContext)' has been removed
ERROR: 7006: org.xwiki.rendering.macro.script.AbstractScriptMacro: Return type of method 'protected org.xwiki.rendering.block.XDOM parseSourceSyntax(java.lang.String, org.xwiki.rendering.transformation.MacroTransformationContext)' has been changed to java.util.List
ERROR: 7002: com.xpn.xwiki.api.XWiki: Method 'public java.lang.Object getExoPortalService(java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.api.XWiki: Method 'public java.lang.Object getExoService(java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.api.XWiki: Method 'public java.lang.Object getPortalService(java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.api.XWiki: Method 'public java.lang.Object getService(java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.api.XWikiCompatibilityAspect: Method 'public java.lang.Object ajc$interMethod$com_xpn_xwiki_api_XWikiCompatibilityAspect$com_xpn_xwiki_api_XWiki$getPortalService(com.xpn.xwiki.api.XWiki, java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.api.XWikiCompatibilityAspect: Method 'public java.lang.Object ajc$interMethod$com_xpn_xwiki_api_XWikiCompatibilityAspect$com_xpn_xwiki_api_XWiki$getService(com.xpn.xwiki.api.XWiki, java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.api.XWikiCompatibilityAspect: Method 'public java.lang.Object ajc$interMethodDispatch1$com_xpn_xwiki_api_XWikiCompatibilityAspect$com_xpn_xwiki_api_XWiki$getPortalService(com.xpn.xwiki.api.XWiki, java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.api.XWikiCompatibilityAspect: Method 'public java.lang.Object ajc$interMethodDispatch1$com_xpn_xwiki_api_XWikiCompatibilityAspect$com_xpn_xwiki_api_XWiki$getService(com.xpn.xwiki.api.XWiki, java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.pdf.api.PdfExport: Method 'public byte[] convertToStrictXHtml(byte[], com.xpn.xwiki.XWikiContext)' has been removed
ERROR: 7002: com.xpn.xwiki.pdf.api.PdfExport: Method 'public java.lang.String convertToStrictXHtml(java.lang.String)' has been removed
ERROR: 7002: com.xpn.xwiki.pdf.api.PdfExport: Method 'public byte[] convertXHtmlToXMLFO(byte[], com.xpn.xwiki.XWikiContext)' has been removed
ERROR: 7002: com.xpn.xwiki.pdf.api.PdfExport: Method 'public java.lang.String convertXHtmlToXMLFO(java.lang.String, com.xpn.xwiki.XWikiContext)' has been removed
ERROR: 7005: com.xpn.xwiki.pdf.api.PdfExport: Parameter 3 of 'public void export(com.xpn.xwiki.doc.XWikiDocument, java.io.OutputStream, int, com.xpn.xwiki.XWikiContext)' has changed its type to com.xpn.xwiki.pdf.api.PdfExport$ExportType
ERROR: 7005: com.xpn.xwiki.pdf.api.PdfExport: Parameter 3 of 'public void exportHtml(java.lang.String, java.io.OutputStream, int, com.xpn.xwiki.XWikiContext)' has changed its type to com.xpn.xwiki.pdf.api.PdfExport$ExportType
ERROR: 7002: com.xpn.xwiki.pdf.api.PdfExport: Method 'public void exportXHtml(byte[], java.io.OutputStream, int, com.xpn.xwiki.XWikiContext)' has been removed

The following XWiki GWT APIs were modified since XWiki Enterprise 2.7:

ERROR: 6011: org.xwiki.gwt.user.client.ui.rta.RichTextArea: Field DISABLED has been removed, but it was previously a constant
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.RichTextEditorController: Method 'protected void initTextArea()' has been removed
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadget()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadgetEditDialogCaption()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadgetInsertActionLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadgetInsertDialogCaption()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadgetInsertDialogTitle()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadgetNoGadgetSelected()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadgetTitleDescription()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String gadgetTitleLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String macroCollapseAllShortcutKeyLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String macroCollapseShortcutKeyLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String macroEditShortcutKeyLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String macroExpandAllShortcutKeyLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String macroExpandShortcutKeyLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String macroInsertShortcutKeyLabel()' has been added to an interface
ERROR: 7012: org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String macroRefreshShortcutKeyLabel()' has been added to an interface
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.Plugin: Class org.xwiki.gwt.wysiwyg.client.plugin.Plugin removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.PluginFactory: Class org.xwiki.gwt.wysiwyg.client.plugin.PluginFactory removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.PluginFactoryManager: Class org.xwiki.gwt.wysiwyg.client.plugin.PluginFactoryManager removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.PluginManager: Class org.xwiki.gwt.wysiwyg.client.plugin.PluginManager removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.UIExtension: Class org.xwiki.gwt.wysiwyg.client.plugin.UIExtension removed
ERROR: 6011: org.xwiki.gwt.wysiwyg.client.plugin.color.ColorCell: Field SELECTED_STYLE_NAME has been removed, but it was previously a constant
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.plugin.color.ColorPicker: Method 'public java.lang.String convertToHex(java.lang.String)' has been removed
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.plugin.color.ColorPlugin: Method 'protected org.xwiki.gwt.user.client.ui.rta.cmd.Executable getBackColorExecutable()' has been removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.color.MozillaColorPlugin: Class org.xwiki.gwt.wysiwyg.client.plugin.color.MozillaColorPlugin removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.color.exec.BackColorExecutable: Class org.xwiki.gwt.wysiwyg.client.plugin.color.exec.BackColorExecutable removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.color.exec.HiliteColorExecutable: Class org.xwiki.gwt.wysiwyg.client.plugin.color.exec.HiliteColorExecutable removed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroDisplayer: In method 'public MacroDisplayer()' the number of arguments has changed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroDisplayer: In method 'protected org.xwiki.gwt.dom.client.Element createReadOnlyBox()' the number of arguments has changed
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroDisplayer: Method 'protected java.lang.String getMacroContainerTagName()' has been removed
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroDisplayer: Method 'public void setTextArea(org.xwiki.gwt.user.client.ui.rta.RichTextArea)' has been removed
ERROR: 4001: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroPlugin: Removed com.google.gwt.event.dom.client.DoubleClickHandler from the set of implemented interfaces
ERROR: 4001: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroPlugin: Removed com.google.gwt.event.shared.EventHandler from the set of implemented interfaces
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroPlugin: Method 'public void onDoubleClick(com.google.gwt.event.dom.client.DoubleClickEvent)' has been removed
ERROR: 4001: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroSelector: Removed com.google.gwt.event.dom.client.MouseDownHandler from the set of implemented interfaces
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroSelector: Method 'public void onMouseDown(com.google.gwt.event.dom.client.MouseDownEvent)' has been removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.submit.exec.EnableExecutable: Class org.xwiki.gwt.wysiwyg.client.plugin.submit.exec.EnableExecutable removed
ERROR: 8001: org.xwiki.gwt.wysiwyg.client.plugin.submit.exec.ResetExecutable: Class org.xwiki.gwt.wysiwyg.client.plugin.submit.exec.ResetExecutable removed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.wiki.WikiService: In method 'public java.util.List getMatchingPages(java.lang.String, int, int)' the number of arguments has changed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.wiki.WikiService: In method 'public java.util.List getRecentlyModifiedPages(int, int)' the number of arguments has changed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.wiki.WikiServiceAsync: In method 'public void getMatchingPages(java.lang.String, int, int, com.google.gwt.user.client.rpc.AsyncCallback)' the number of arguments has changed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.wiki.WikiServiceAsync: In method 'public void getRecentlyModifiedPages(int, int, com.google.gwt.user.client.rpc.AsyncCallback)' the number of arguments has changed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.wiki.WikiServiceAsyncCacheProxy: In method 'public void getMatchingPages(java.lang.String, int, int, com.google.gwt.user.client.rpc.AsyncCallback)' the number of arguments has changed
ERROR: 7004: org.xwiki.gwt.wysiwyg.client.wiki.WikiServiceAsyncCacheProxy: In method 'public void getRecentlyModifiedPages(int, int, com.google.gwt.user.client.rpc.AsyncCallback)' the number of arguments has changed
ERROR: 6004: org.xwiki.gwt.dom.client.Style: Changed type of field BACKGROUND_COLOR from java.lang.String to org.xwiki.gwt.dom.client.Property

Get Connected