XWiki Enterprise 3.0 Milestone 3
Third milestone of the XWiki Enterprise 3.0 version (Roadmap).
New and Noteworthy (since XWiki Enterprise 3.0 Milestone 2)
Dashboard Editing
Gallery macro and office presentation viewer based on it
The Gallery Macro helps you create a simple image gallery where images are displayed using a slide-show view. You can use images from any source, both internal (attached to a wiki page) and external. The gallery macro collects all the images it finds in the macro content. The Office Macro has been improved to use the gallery macro when displaying office presentations:
Instant search
- [XASEARCH-22] Support for multi-sources live suggestions when typing in the search box
- [XWIKI-6040] New suggest widget with support for multiple source of suggestions
User status
- [XWIKI-6047] New EventStream component
- [XAADMINISTRATION-233] Add the ability to "follow" users
- [XE-770] Friends and Status feature
XWiki Query Generator
- [XWIKI-1090] XWiki Query Generator
Programming Rights Status
- [XAADMINISTRATION-220] Provide a UI in the programming section that shows status of document that declare requiring rights (and when needed a way to fix missing rights)
- [XE-831] Provide a XClass that allow to mark pages that require to be saved by a user with certain rights
- [XE-832] Add XWiki.RequiredRightClass to XE documents that require to be saved with certain rights
Improved macro support in the WYSIWYG content editor
In order to fix XWIKI-5691 and a few related bugs we had to refactor the way macros are displayed inside the rich text area of the WYSIWYG content editor. Along with this we introduced a few improvements in the way users interact with macros. Here's a list of changes:
- Macros are displayed now 100% like in view mode. Previously we were using a button HTML element to protect the macro output which gave macro output an inherent box layout. This was noticeable especially for multi-line in-line macros. This is fixed now:
- Macros that have output are emphasized only when hovered or selected.
- You can navigate the macro output with the arrow keys. The macro output feels like the rest of the content except that you can't edit it in place.
- You can copy content from the macro output.
- Press Enter to edit macro.
- Press Space to toggle between collapsed and expanded state.
- Ctrl + Shift + R reloads the macros.
- Ctrl + Shift + E expands all/selected macros.
- Ctrl + Shift + C collapses all/selected macros.
- Ctrl + Shift + M to open the insert macro wizard.
Known issues that we'd like to fix for 3.0 final:
- You can cut text from macro output.
- You can drag text into/from macro output.
- Placing the caret before/after a macro is still tricky.
Rendering and Commons top level projects
- We have created a new top level project called XWiki Commons, which contains libraries that are generic enough to be reused outside of the XWiki project. New modules are now located under the org.xwiki.commons groupd id at http://maven.xwiki.org/releases/org/xwiki/commons/
- We have created a new top level project called XWiki Rendering, which contains a generic rendering engine. New modules are now located under the org.xwiki.rendering group Id, at http://maven.xwiki.org/releases/org/xwiki/rendering/
Miscellaneous
- UI improvements
- [XWIKI-5993] Align Copy Page UI on other action features
- [XWIKI-5990] Make User Account Activation form conform to the inline form standard
- [XWIKI-5993] Align Copy Page UI on other action features
- Object editor bug fixes
- [XWIKI-5832] Cannot create groups or add members to existing groups using the object editor
- More PDF export bug fixes
- [XWIKI-5112] Anchor in title breaks PDF export
- [XWIKI-6046] Wiki markup in document titles ends up as visible XML in exported PDFs
- WYSIWYG content editor bug fixes and improvements
- Proper rights check for copy page feature
- Include macro improvements
- [XWIKI-1776] Support Include of Section Content
- Improved syntax guide
- [XE-839] Add XWiki Syntax 2.1 link specifications to syntax guide
- Improved extension manager
- [XWIKI-5557] Add extension manager xar handler
- [XWIKI-5705] Add multiwiki support to extension
Translations
- The following translations have been updated: de, es, fr, nl, ru, sv.
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
You may also want to import the default wiki XAR in order to benefit from the improvements listed above.
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: 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
ERROR: 7002: org.xwiki.container.Request: Method 'public org.xwiki.url.XWikiURL getURL()' 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: 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.extension.CoreExtension: Method 'public boolean isGuessed()' has been added to an interface
ERROR: 7006: org.xwiki.extension.Extension: Return type of method 'public java.lang.String getId()' has been changed to org.xwiki.extension.ExtensionId
ERROR: 7002: org.xwiki.extension.Extension: Method 'public java.lang.String getVersion()' has been removed
ERROR: 7002: org.xwiki.extension.ExtensionManager: Method 'public int coundAvailableExtensions()' has been removed
ERROR: 7002: org.xwiki.extension.ExtensionManager: Method 'public int coundInstalledExtensions()' has been removed
ERROR: 7002: org.xwiki.extension.ExtensionManager: Method 'public java.util.List getAvailableExtensions(int, int)' has been removed
ERROR: 7002: org.xwiki.extension.ExtensionManager: Method 'public java.util.List getInstalledExtensions(int, int)' has been removed
ERROR: 7002: org.xwiki.extension.ExtensionManager: Method 'public org.xwiki.extension.LocalExtension installExtension(org.xwiki.extension.ExtensionId)' has been removed
ERROR: 7004: org.xwiki.extension.ExtensionManager: In method 'public org.xwiki.extension.Extension resolveExtension(org.xwiki.extension.ExtensionId)' the number of arguments has changed
ERROR: 7002: org.xwiki.extension.ExtensionManager: Method 'public void uninstallExtension(java.lang.String)' has been removed
ERROR: 7012: org.xwiki.extension.LocalExtension: Method 'public java.util.Collection getNamespaces()' has been added to an interface
ERROR: 7002: org.xwiki.extension.LocalExtension: Method 'public boolean isEnabled()' has been removed
ERROR: 7012: org.xwiki.extension.LocalExtension: Method 'public boolean isInstalled()' has been added to an interface
ERROR: 7012: org.xwiki.extension.LocalExtension: Method 'public boolean isInstalled(java.lang.String)' has been added to an interface
ERROR: 7004: org.xwiki.extension.handler.ExtensionHandler: In method 'public void install(org.xwiki.extension.LocalExtension)' the number of arguments has changed
ERROR: 7004: org.xwiki.extension.handler.ExtensionHandler: In method 'public void uninstall(org.xwiki.extension.LocalExtension)' the number of arguments has changed
ERROR: 7004: org.xwiki.extension.handler.ExtensionHandler: In method 'public void upgrade(org.xwiki.extension.LocalExtension, org.xwiki.extension.LocalExtension)' the number of arguments has changed
ERROR: 7004: org.xwiki.extension.handler.ExtensionHandlerManager: In method 'public void install(org.xwiki.extension.LocalExtension)' the number of arguments has changed
ERROR: 7004: org.xwiki.extension.handler.ExtensionHandlerManager: In method 'public void uninstall(org.xwiki.extension.LocalExtension)' the number of arguments has changed
ERROR: 7004: org.xwiki.extension.handler.ExtensionHandlerManager: In method 'public void upgrade(org.xwiki.extension.LocalExtension, org.xwiki.extension.LocalExtension)' the number of arguments has changed
ERROR: 7006: org.xwiki.extension.repository.CoreExtensionRepository: Return type of method 'public java.util.List getCoreExtensions()' has been changed to java.util.Collection
ERROR: 7006: org.xwiki.extension.repository.ExtensionRepository: Return type of method 'public java.util.List getExtensions(int, int)' has been changed to java.util.Collection
ERROR: 7004: org.xwiki.extension.repository.LocalExtensionRepository: In method 'public java.util.List getBackwardDependencies(java.lang.String)' the number of arguments has changed
ERROR: 7006: org.xwiki.extension.repository.LocalExtensionRepository: Return type of method 'public java.util.List getBackwardDependencies(java.lang.String)' has been changed to java.util.Collection
ERROR: 7012: org.xwiki.extension.repository.LocalExtensionRepository: Method 'public org.xwiki.extension.LocalExtension getInstalledExtension(java.lang.String, java.lang.String)' has been added to an interface
ERROR: 7012: org.xwiki.extension.repository.LocalExtensionRepository: Method 'public java.util.Collection getInstalledExtensions(java.lang.String)' has been added to an interface
ERROR: 7012: org.xwiki.extension.repository.LocalExtensionRepository: Method 'public java.util.Collection getInstalledExtensions()' has been added to an interface
ERROR: 7002: org.xwiki.extension.repository.LocalExtensionRepository: Method 'public org.xwiki.extension.LocalExtension getLocalExtension(java.lang.String)' has been removed
ERROR: 7006: org.xwiki.extension.repository.LocalExtensionRepository: Return type of method 'public java.util.List getLocalExtensions()' has been changed to java.util.Collection
ERROR: 7004: org.xwiki.extension.repository.LocalExtensionRepository: In method 'public org.xwiki.extension.LocalExtension installExtension(org.xwiki.extension.Extension, boolean)' the number of arguments has changed
ERROR: 7004: org.xwiki.extension.repository.LocalExtensionRepository: In method 'public void uninstallExtension(org.xwiki.extension.LocalExtension)' the number of arguments has changed
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 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: 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