XWiki Enterprise 3.0 Milestone 2
Second milestone of the XWiki Enterprise 3.0 version (Roadmap).
New and Noteworthy (since XWiki Enterprise 3.0 Milestone 1)
General UI improvements
- We have redesigned the administration application providing a new layout and new icons for the administrator sections.
- Several XWiki forms have been modified in order to be consistent with our form standards: vertical and inline layout (added in this release).
WYSIWYG content editor improvements
- XWIKI-5849: Cannot create link to current page
- XWIKI-5895: Adding an image in the WYSIWYG editor and previewing it without saving the page first makes the XWiki page corrupt
- XWIKI-5929: Improve the display of "selected color" in WYSIWYG's color picker
PDF export improvements
- XWIKI-2555: PDF Export fonts are not picked up from WEB-INF/fonts
- XWIKI-5726: Image does not appear in pdf export
- XWIKI-5910: PDF export fails with an exception when there are duplicate IDs in the exported XML
- XWIKI-5921: Default fop.xsl breaks non-FO elements (for example SVG) during PDF export
Miscellaneous
- XWIKI-5915: Cannot log in using Safari
- XWIKI-5816: Lock on document lost when using "Save and continue"
- XWIKI-5897: Office Viewer Macro fails for ppt files on pages with dashes
- XWIKI-5905: Local admins are unable to import XARs on subwikis
- XWIKI-5902: Add support for relative links/images in included documents when they are generated by macros
- XE-820: Livetable actions should be allowed without 'admin right' constraint
- XAADMINISTRATION-201: Allow users with edit rights on a group's document to edit the group members
For developers
- XWIKI-4322: Add a "cache" macro
- XWIKI-5918: Impossible to override XSLT documents used in the PDF export process
- XWIKI-5923: Page names containing [ or ] break the REST search results
- XWIKI-4802: Add MetaData Block/Events to allow specifying meta data to XDOM/Listeners
- XWIKI-5942: Introduce new filesystem based attachment storage
- XSKINX-42: Deleting an SSX objects from a document prevents skin objects to be used on demand in that document
- XAADMINISTRATION-212: Move the ConfigurableClass macros in a macro document, so that they can be reused
- Various upgrades: JAXB 2.2.2, restlet 1.1.10, Groovy 1.7.7, Jython 2.5.2rc3
Translations
- The following translations have been updated: fr, sv, ca, cs, de, es, gl, lv, ro, ru, sk, uk, vi, zh_tw
Experimental Filesystem Attachment Storage
Storage isn't flashy and it isn't exciting, as a user you only have to think about it when it breaks.
Filesystem attachment storage provides you with a means to store large attachments. All data is streamed
from the upload to the filesystem without being held in memory on the way through.
This means that the only limit on the size of attachments which can be stored is the size of your hard disk.
Practically, this was tested using a 1GB attachment which uploaded with no problem. A 4GB attachment failed
but the exception message suggests the web browser is to blame.
Set up
To try this out for yourself, you will need a copy of XWiki 3.0M2.
Download the 5 parts of the filesystem storage:
Place these files in your xwiki/WEB-INF/lib directory.
Then make the following changes to your xwiki.cfg file:
Under the "Storage" section:
xwiki.store.attachment.hint=file
#-# The attachment versioning storage. Use 'void' to disable attachment versioning.
xwiki.store.attachment.versioning.hint=file
#-# Whether the attachment recycle bin feature is activated or not
storage.attachment.recyclebin=0
Then start your wiki and as Admin, open this page:
<your site>/xwiki/bin/edit/XWiki/XWikiPreferences?editor=object
Scroll down until you find:
Maximum Upload Size
and change that number to something huge like:
99999999999999999
Press save at the bottom of the page.
Now go on and upload your giant attachments.
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:
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: 7006: org.xwiki.rendering.macro.box.AbstractBoxMacro: Return type of method 'protected org.xwiki.rendering.internal.macro.box.MacroContentParser getMacroContentParser()' has been changed to org.xwiki.rendering.internal.macro.MacroContentParser
ERROR: 8001: org.xwiki.rendering.block.AbstractFatherBlock: Class org.xwiki.rendering.block.AbstractFatherBlock removed
ERROR: 7012: org.xwiki.rendering.block.Block: Method 'public java.lang.String getParameter(java.lang.String)' has been added to an interface
ERROR: 7012: org.xwiki.rendering.block.Block: Method 'public java.util.Map getParameters()' has been added to an interface
ERROR: 7012: org.xwiki.rendering.block.Block: Method 'public void setParameter(java.lang.String, java.lang.String)' has been added to an interface
ERROR: 7012: org.xwiki.rendering.block.Block: Method 'public void setParameters(java.util.Map)' has been added to an interface
ERROR: 4001: org.xwiki.rendering.block.BulletedListBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.BulletedListBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.DefinitionDescriptionBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.DefinitionDescriptionBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.DefinitionListBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.DefinitionListBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.DefinitionTermBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.DefinitionTermBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 8001: org.xwiki.rendering.block.FatherBlock: Class org.xwiki.rendering.block.FatherBlock removed
ERROR: 4001: org.xwiki.rendering.block.FormatBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.FormatBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.GroupBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.GroupBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.HeaderBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.HeaderBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.LinkBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.LinkBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.ListItemBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.ListItemBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.MacroMarkerBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.MacroMarkerBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.NumberedListBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.NumberedListBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.ParagraphBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.ParagraphBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.QuotationBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.QuotationBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.QuotationLineBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.QuotationLineBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.SectionBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.SectionBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.TableBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.TableBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.TableCellBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.TableCellBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.TableHeadCellBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.TableHeadCellBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.TableRowBlock: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.TableRowBlock: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 4001: org.xwiki.rendering.block.XDOM: Removed org.xwiki.rendering.block.FatherBlock from the set of implemented interfaces
ERROR: 5001: org.xwiki.rendering.block.XDOM: Removed org.xwiki.rendering.block.AbstractFatherBlock from the list of superclasses
ERROR: 7005: org.xwiki.rendering.block.XDOM: Parameter 2 of 'public XDOM(java.util.List, java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.CompositeListener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.CompositeListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.Listener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7012: org.xwiki.rendering.listener.Listener: Method 'public void beginMetaData(org.xwiki.rendering.listener.MetaData)' has been added to an interface
ERROR: 7005: org.xwiki.rendering.listener.Listener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7012: org.xwiki.rendering.listener.Listener: Method 'public void endMetaData(org.xwiki.rendering.listener.MetaData)' has been added to an interface
ERROR: 7005: org.xwiki.rendering.listener.QueueListener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.QueueListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.WrappingListener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.WrappingListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.AbstractChainingListener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.AbstractChainingListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.BlockStateChainingListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.ConsecutiveNewLineStateChainingListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.EmptyBlockChainingListener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.EmptyBlockChainingListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.LookaheadChainingListener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.LookaheadChainingListener: Parameter 1 of 'public void endDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7005: org.xwiki.rendering.listener.chaining.TextOnNewLineStateChainingListener: Parameter 1 of 'public void beginDocument(java.util.Map)' has changed its type to org.xwiki.rendering.listener.MetaData
ERROR: 7002: org.xwiki.rendering.syntax.SyntaxType: Method 'public java.lang.String toIdString()' has been removed
ERROR: 7012: org.xwiki.bridge.DocumentModelBridge: Method 'public org.xwiki.rendering.syntax.Syntax getSyntax()' has been added to an interface
ERROR: 7005: org.xwiki.properties.ConverterManager: Parameter 1 of 'public java.lang.Object convert(java.lang.Class, java.lang.Object)' has changed its type to java.lang.reflect.Type
ERROR: 7012: org.xwiki.properties.PropertyDescriptor: Method 'public java.lang.reflect.Type getPropertyType()' has been added to an interface
ERROR: 7005: org.xwiki.properties.converter.AbstractConverter: Parameter 1 of 'public java.lang.Object convert(java.lang.Class, java.lang.Object)' has changed its type to java.lang.reflect.Type
ERROR: 7005: org.xwiki.properties.converter.Converter: Parameter 1 of 'public java.lang.Object convert(java.lang.Class, java.lang.Object)' has changed its type to java.lang.reflect.Type
ERROR: 7012: org.xwiki.officeimporter.openoffice.OpenOfficeConverter: Method 'public boolean isMediaTypeSupported(java.lang.String)' has been added to an interface
The following XWiki GWT APIs were modified since XWiki Enterprise 2.7:
ERROR: 7002: org.xwiki.gwt.wysiwyg.client.RichTextEditorController: Method 'protected void initTextArea()' has been 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: 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: 6004: org.xwiki.gwt.dom.client.Style: Changed type of field BACKGROUND_COLOR from java.lang.String to org.xwiki.gwt.dom.client.Property