Last modified by Thomas Mortagne on 2023/10/13

Hide last authors
Vincent Massol 1.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 This is the release notes for [[XWiki Commons>>http://commons.xwiki.org]], [[XWiki Rendering>>http://rendering.xwiki.org]], [[XWiki Platform>>http://platform.xwiki.org]] and [[XWiki Enterprise>>http://enterprise.xwiki.org]]. They share the same release notes as they are released together and have the same version.
6
Ecaterina Moraru (Valica) 48.2 7 This is the first milestone release of the 8.x cycle. With this occasion we deprecated and retired multiple projects like Colibri Skin, Color Themes, old XWiki 1.0 syntax, etc. We also continued to polish our Nested Pages feature introduced in 7.2, by adding improvements such as: asynchronous copy and rename page actions, improved location picker for simple users and the ability to omit "WebHome" in wiki links syntax.
Vincent Massol 1.1 8
Vincent Massol 34.2 9 = New and Noteworthy (since XWiki 7.4) =
Vincent Massol 1.1 10
Thomas Mortagne 57.1 11 [[Full list of issues fixed and Dashboard for 8.0>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=13593]].
Vincent Massol 1.1 12
Marius Dumitru Florea 29.1 13 == Asynchronous Copy and Rename Page ==
14
15 The copy and rename page operations are now performed asynchronously, in a background thread, when triggered from the UI. Clicking on the Copy/Rename button takes you to a status page where you can see the options that have been selected and the progress of the operation. The advanced users have access to the operation log.
16
Thomas Mortagne 32.1 17 {{image reference="copyProgress.png" width="600"/}}
Marius Dumitru Florea 29.1 18
19 The progress bar is replaced with the operation status at the end in order to let you know if the operation succeeded or failed. You can use the breadcrumbs to navigate to the new page or the old one.
20
Thomas Mortagne 32.1 21 {{image reference="renameStatus.png" width="600"/}}
Marius Dumitru Florea 29.1 22
Thomas Mortagne 58.1 23 See the [[Page Lifecycle documentation>>Documentation.UserGuide.Features.DocumentLifecycle]] for more information.
Marius Dumitru Florea 31.2 24
Marius Dumitru Florea 34.1 25 == Improved Location Picker ==
26
27 The location picker used on the Create, Copy and Rename page UI is now hiding the advanced edit fields (wiki, parent and name) for simple users. Simple users will have to use the tree picker to select the target location. As a consequence the form validation is now performed on the fields that are visible to the current user.
28
Guillaume Delhumeau 37.1 29 {{image reference="simpleLocationPickerValidation.png" width="600"/}}
Marius Dumitru Florea 34.1 30
Eduard Moraru 26.2 31 == Link syntax improvements for Nested Pages ==
32
Marius Dumitru Florea 27.1 33 With the addition of Nested Pages, a discrepancy appeared between the UI and the wiki syntax. The UI always talks about (nested) pages and never about spaces, but in the wiki syntax you would still have to specify both the space and the name of a page when linking to it (e.g. writing ##~[~[Some.Nested.Page.WebHome]]## if you want to create a link to the nested page ##Some.Nested.Page##). The same applies to ##image~:## or ##attach~:## syntax. The technical reason for this was that, at the wiki syntax level, untyped links were always being resolved to ##doc:## type links.
Eduard Moraru 26.2 34
35 To improve this, we have added a new ##space:## type link which allows you to simply write ##~[~[space:Some.Nested.Page]]## and have made this the new default type that untyped links resolve to.
36
37 The outcome is that you can now simply type ##~[~[Some.Nested.Page]]## and you will create a link to the nested page ##Some.Nested.Page##.
38
39 For backwards compatibility with the existing untyped links, we have implemented the same mechanism we have applied for URLs, which is to:
Marius Dumitru Florea 27.1 40
Eduard Moraru 51.2 41 * first try to link to an existing terminal page (i.e. if ##Some.Nested.Page## is actually a terminal page inside the ##Some.Nested## space; this was the previous default behavior)
Eduard Moraru 26.3 42 * if no such terminal page exists, then link to the non-terminal page (i.e. ##Some.Nested.Page.WebHome##) for both when the non-terminal page exists or when it does not (and should be a wanted link)
Eduard Moraru 26.2 43
Marius Dumitru Florea 27.1 44 The same thing applies for ##image~:## (e.g. ##image~:Page@file.jpg## translates technically to ##image~:Page.WebHome@file.jpg##) and for ##attach~:## syntax (e.g. ##attach~:Page@file.ext## translates technically to ##attach~:Page.WebHome@file.ext##).
Eduard Moraru 26.2 45
Eduard Moraru 51.5 46 More details and examples can be found in the XWiki link syntax documentation page on your XWiki instance.
47
Eduard Moraru 51.3 48 === Relative links to sibling Nested Pages ===
Eduard Moraru 51.2 49
Eduard Moraru 51.4 50 To better support backwards compatibility with the pre-Nested-Pages behavior when the current document is a non-terminal document and an untyped relative link (e.g ##~[~[Page]]##) has not been resolved using the above mentioned algorithm (i.e. as a terminal or non-terminal child of the current page), we perform 2 additional checks:
Eduard Moraru 51.2 51
Eduard Moraru 51.4 52 * we try to link to an existing terminal page that is a sibling of the current page (i.e. ##~[~[Page]]## is resolved to the equivalent of ##~[~[doc:currentPageParent.Page]]##)
53 * if no such terminal page exists, then link to the non-terminal page that is a sibling of the current page (i.e. ##~[~[Page]]## is resolved to the equivalent of ##~[~[doc:currentPageParent.Page.WebHome]]##) for both when the non-terminal page exists or when it does not (and should be a wanted link)
Eduard Moraru 51.2 54
Guillaume Delhumeau 37.1 55 == Color Theme Displayer ==
56
57 In the administration, an error message is displayed if the configured color theme is invalid. It could happen after an upgrade if you were using an old Colibri Theme.
58
59 {{image reference="ColorThemeDisplayer.png"/}}
60
Thomas Mortagne 50.1 61 == Disable header and footer in PDF export ==
62
63 It's now possible to disabled the display of header and footer (usually the page name and date) when exporting a PDF.
64
65 {{image reference="pdfExportOptions.png"/}}
66
Vincent Massol 1.1 67 == Miscellaneous ==
68
Vincent Massol 41.1 69 * The WebDAV feature is [[now configured using Servlet 3.0 annotations>>||anchor="HIssuesspecifictoXWiki8.0Milestone1"]] and is [[not bundled by default anymore>>||anchor="HIssuesspecifictoXWiki8.0Milestone1"]].
Vincent Massol 14.1 70 * The [[Statistics Application>>extensions:Extension.Statistics Application]] is no longer installed by default. The same applied for the [[Charting Plugin>>extensions:Extension.Charting Plugin]].
Vincent Massol 1.1 71
Thomas Mortagne 57.1 72 See the [[full list of JIRA issues>>https://jira.xwiki.org/sr/jira.issueviews:searchrequest-printable/temp/SearchRequest.html?jqlQuery=project+in+%28XCOMMONS%2C+XRENDERING%2C+XWIKI%2C+XE%29+and+status+%3D+Closed+and+resolution+%3D+Fixed+and+fixVersion+%3D+%228.0-milestone-1%22&tempMax=1000]] fixed in this release.
Vincent Massol 1.1 73
74 = For Developers =
75
Thomas Mortagne 8.1 76 == Extension Manager improvements ==
Vincent Massol 1.1 77
Thomas Mortagne 8.1 78 === Feature version ===
Vincent Massol 1.1 79
Thomas Mortagne 8.1 80 Each extension feature now have its own version. See [[extensions:Extension.Extension Module Virtual Extensions]] for more details.
81
82 === Namespace constraint ===
83
Thomas Mortagne 32.1 84 It's now possible to indicate a constraint on where an extension can be installed (only root namespace, etc.).
Thomas Mortagne 8.1 85
Thomas Mortagne 32.1 86 In Maven you can do that using ##<xwiki.extension.namespaces>## custom property. See [[Maven Connector>>extensions:Extension.XWiki Commons - Extension - Repository - Maven||anchor="HCustomproperties"]] for more details.
Thomas Mortagne 8.1 87
Thomas Mortagne 10.1 88 === Compare Extensions ===
89
Thomas Mortagne 32.1 90 ##org.xwiki.extension.Extension## and ##org.xwiki.extension.ExtensionId## now implement ##Comparable## to make easier manipulate them (order lists, find out if we are doing an upgrade or a downgrade, etc.).
Thomas Mortagne 10.1 91
Marius Dumitru Florea 27.1 92 == Edit Action Events ==
93
94 Two new JavaScript events are available in edit mode:
95
96 * **##xwiki:actions:beforePreview##**
97 This event is fired after the user clicks on the "Preview" button from an edit mode, but before the edit form is validated. You can use this event to update the form fields before they are submitted to the preview action.
98 * **##xwiki:actions:beforeSave##**
99 This event is fired after the user clicks on the "Save" or "Save & Continue" button from an edit mode, but before the edit form is validated. You can use this event to update the form fields before they are submitted to the save action.
100
Thomas Mortagne 58.1 101 See the [[JavaScript API documentation>>Documentation.DevGuide.JavaScriptAPI]] for more information.
Marius Dumitru Florea 27.1 102
Vincent Massol 43.1 103 == New SVG Rasterizing API ==
104
105 New [[API>>extensions:Extension.SVG Rasterizing API]] to convert a vector-based SVG content into some binary format that can be displayed in browser (i.e. rasterizing).
106
Vincent Massol 1.1 107 == Deprecated and Retired projects ==
108
Thomas Mortagne 4.1 109 * Colibri skin moved to https://github.com/xwiki-contrib/skin-colibri
Thomas Mortagne 16.1 110 * Color Theme application moved to https://github.com/xwiki-contrib/skin-colibri
Thomas Mortagne 6.1 111 * Old XWiki 1.0 syntax rendering framework moved to https://github.com/xwiki-contrib/xwiki-platform-oldrendering
Thomas Mortagne 11.1 112 * XWiki 1.0 rendering parser moved to https://github.com/xwiki-contrib/xwiki10-parser
Thomas Mortagne 17.1 113 * XWiki 1.0 chart macro moved to https://github.com/xwiki-contrib/xwiki-platform-chart-macro10
Vincent Massol 1.1 114
115 == Upgrades ==
116
117 The following dependencies have been upgraded:
118
Thomas Mortagne 57.1 119 * [[Bouncy Castle 1.54>>https://jira.xwiki.org/browse/XCOMMONS-897]]
120 * [[HTMLCleaner 2.16>>https://jira.xwiki.org/browse/XCOMMONS-825]]
121 * [[Jackson 2.7.1>>https://jira.xwiki.org/browse/XCOMMONS-875]]
122 * [[JGroups 3.6.7>>https://jira.xwiki.org/browse/XWIKI-13003]]
123 * [[FOP 2.1>>https://jira.xwiki.org/browse/XWIKI-13026]]
124 * [[Slf4j 1.7.14>>https://jira.xwiki.org/browse/XCOMMONS-909]]
125 * [[CSS4J 0.20>>https://jira.xwiki.org/browse/XWIKI-8706]]
Thomas Mortagne 39.1 126 * [[Joda-Time 2.9.2>>https://jira.xwiki.org/browse/XWIKI-13062]]
Vincent Massol 1.1 127
128 == Miscellaneous ==
129
Guillaume Delhumeau 15.1 130 * Generated URLs for document-based skin extensions (SSX and JSX) now contain the version of the document, so when a change is made to the extension the browser don't use an outdated version from its cache.
Vincent Massol 47.1 131 * Support for chaining uberspectors, first introduced in XWiki as an enhancement of Velocity 1.5, has been part of the official library since Velocity 1.6. As such, we're deprecating our custom classes that provide this functionality. See the [[upgrade instructions>>||anchor="HIssuesspecifictoXWiki8.0Milestone1"]]
Thomas Mortagne 58.1 132 * the [[XWiki Select Widget>>Documentation.DevGuide.XWikiSelect]] now offers a javascript API in the form of a jQuery plugin, to get the current value or clear the selection.
Marius Dumitru Florea 28.2 133 * the [[WYSIWYG editor>>extensions:Extension.WYSIWYG Editor Module]] script service has a new method to render a document as a full HTML page. You can use it like this:(((
Marius Dumitru Florea 28.1 134 {{code language="none"}}<textarea class="wysiwyg">$escapetool.xml($services.wysiwyg.render('Some.Content.Template'))</textarea>{{/code}}
135 The main difference between this API and the existing ##$doc.getRenderedContent()## is that it replaces [[the skin extension hooks>>extensions:Extension.Skin Extension Plugin]] with the corresponding resource includes (e.g. style sheets includes), allowing us to define a WYSIWYG editor content template in a wiki page.
136 )))
Vincent Massol 42.1 137 * Replaced a few String-based APIs by Locale-based equivalents
138 * All Document Events are now Cancelable and it's now possible for an ##EventListener## implementation to cancel saving a Document.
Vincent Massol 1.1 139
140 = Translations =
141
142 The following translations have been updated:
143
Ecaterina Moraru (Valica) 52.1 144 {{language codes="fr, nl, pt_BR, ru"/}}
Vincent Massol 1.1 145
146 = Tested Browsers & Databases =
147
Silvia Macovei 53.2 148 {{include reference="TestReports.ManualTestReportSummaryXWiki80M1"/}}
Vincent Massol 1.1 149
150 {{comment}}
151 = Performances tests compared to <last super stable version> =
152
153 <a summary of the comparison with latest super stable version>
154
155 More details on <link to the test report>.
Ecaterina Moraru (Valica) 46.2 156 {{/comment}}
Vincent Massol 1.1 157
158 = Known issues =
159
Thomas Mortagne 57.1 160 * [[Bugs we know about>>https://jira.xwiki.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=category+%3D+%22Top+Level+Projects%22+AND+issuetype+%3D+Bug+AND+resolution+%3D+Unresolved+ORDER+BY+updated+DESC]]
Vincent Massol 1.1 161
162 = Backward Compatibility and Migration Notes =
163
164 == General Notes ==
165
166 When upgrading make sure you compare your ##xwiki.cfg##, ##xwiki.properties## and ##web.xml## files with the newest version since some configuration parameters may have been modified or added. Note that 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.
167
Vincent Massol 2.1 168 == Issues specific to XWiki 8.0 Milestone 1 ==
Vincent Massol 1.1 169
Vincent Massol 41.1 170 * The WebDAV feature is now configured using Servlet 3.0 annotations and is not bundled by default anymore.
171 ** If you were using this feature, you should check the [[Instructions to install it manually>>extensions:Extension.WebDAV Server||anchor="HPrerequisites26InstallationInstructions"]].
172 ** If you were not using it, you should make sure to edit your ##web.xml## to remove all the Servlet and Filter definitions for WebDAV (search for ##dav## in ##web.xml##).
Vincent Massol 47.1 173 * If you have custom Velocity Uberspectors that implement ##org.xwiki.velocity.introspection.ChainableUberspector## or extend ##org.xwiki.velocity.introspection.AbstractChainableUberspector##, update them to ##org.apache.velocity.util.introspection.ChainableUberspector## and ##org.apache.velocity.util.introspection.AbstractChainableUberspector##. If you have a custom list of uberspectors specified under ##runtime.introspector.uberspect.chainClasses##, just use the ##runtime.introspector.uberspect## property for defining the list. Otherwise your custom configuration will be ignored!
Vincent Massol 1.1 174
Eduard Moraru 51.8 175 == Mail API Unique Message Identifier ==
176
Thomas Mortagne 57.1 177 In order to solve [[XWIKI-12165>>https://jira.xwiki.org/browse/XWIKI-12165]], the unique identifier of each mime message sent has been changed to a SHA1 based on the ##Message-ID## header and the list of recipients of the mails, ensuring uniqueness during a newsletter or mailing sending. To introduce this change, the ##MailContentStore## and the ##MailListener API## has been broken, and now use a new ExtendedMimeMessage instead of the simple ##MimeMessage## for all arguments. The values ##messageId## returned or used as argument in the API is no more equivalent to the ##Message-ID## header, but is now the unique identifier returned by ##ExtendedMimeMessage#getUniqueMessageId()##. Finally, the ##MessageMimeMessageFactory## now returns cloned ##MimeMessage## without changing the ##Message-ID##.
Eduard Moraru 51.8 178
Eduard Moraru 51.7 179 == New Space prefix for wiki links ==
180
181 We've introduced the possibility to explicitly create a link to a Space in XWiki Syntax 2.1, e.g. ##~[~[space:Space1.Space2]]##. However if you had a subwiki named ##space## the new notation will conflict with the syntax for referencing that wiki. Thus you'll need to edit existing links such as ##~[~[space:something]]## to ##~[~[doc:space:something]]##. And if you wish to reference a given space in the ##space## subwiki, you'd write ##~[~[space:space:something]]##.
182
Vincent Massol 1.1 183 == API Breakages ==
184
Vincent Massol 35.1 185 The following APIs were modified since XWiki 7.4:
Vincent Massol 1.1 186
Ecaterina Moraru (Valica) 52.2 187 * We can get the job status in a generic way using the job script service. This method is part of an unstable (young) API and it wasn't working anyway, as it was throwing a ClassCastException:(((
Vincent Massol 1.1 188 {{code language="none"}}
Ecaterina Moraru (Valica) 52.2 189 org.xwiki.refactoring.script.RefactoringScriptService: Method 'public org.xwiki.refactoring.job.EntityJobStatus getCopyAsJobStatus(java.lang.String)' has been removed
190 org.xwiki.refactoring.script.RefactoringScriptService: Method 'public org.xwiki.refactoring.job.EntityJobStatus getCopyJobStatus(java.lang.String)' has been removed
191 org.xwiki.refactoring.script.RefactoringScriptService: Method 'public org.xwiki.refactoring.job.EntityJobStatus getDeleteJobStatus(java.lang.String)' has been removed
192 org.xwiki.refactoring.script.RefactoringScriptService: Method 'public org.xwiki.refactoring.job.EntityJobStatus getMoveJobStatus(java.lang.String)' has been removed
193 org.xwiki.refactoring.script.RefactoringScriptService: Method 'public org.xwiki.refactoring.job.EntityJobStatus getRenameJobStatus(java.lang.String)' has been removed
Vincent Massol 1.1 194 {{/code}}
Ecaterina Moraru (Valica) 52.2 195 )))
196
197 * New method that is useful for any WYSIWYG editor that accepts as input a full HTML page (with style sheets includes).(((
198 {{code language="none"}}
199 org.xwiki.wysiwyg.server.WysiwygEditorScriptService: Method 'public java.lang.String render(org.xwiki.model.reference.DocumentReference)' has been added to an interface
200 {{/code}}
201 )))
202
203 * Young API, see [[Mail API Unique Message Identifier>>||anchor="HMailAPIUniqueMessageIdentifier"]](((
204 {{code language="none"}}
205 org.xwiki.mail.MailContentStore: Return type of method 'public javax.mail.internet.MimeMessage load(javax.mail.Session, java.lang.String, java.lang.String)' has been changed to org.xwiki.mail.ExtendedMimeMessage
206 org.xwiki.mail.MailContentStore: Parameter 2 of 'public void save(java.lang.String, javax.mail.internet.MimeMessage)' has changed its type to org.xwiki.mail.ExtendedMimeMessage
207 org.xwiki.mail.MailListener: Parameter 1 of 'public void onPrepareMessageError(javax.mail.internet.MimeMessage, java.lang.Exception, java.util.Map)' has changed its type to org.xwiki.mail.ExtendedMimeMessage
208 org.xwiki.mail.MailListener: Parameter 1 of 'public void onPrepareMessageSuccess(javax.mail.internet.MimeMessage, java.util.Map)' has changed its type to org.xwiki.mail.ExtendedMimeMessage
209 org.xwiki.mail.MailListener: Parameter 1 of 'public void onSendMessageError(javax.mail.internet.MimeMessage, java.lang.Exception, java.util.Map)' has changed its type to org.xwiki.mail.ExtendedMimeMessage
210 org.xwiki.mail.MailListener: Parameter 1 of 'public void onSendMessageSuccess(javax.mail.internet.MimeMessage, java.util.Map)' has changed its type to org.xwiki.mail.ExtendedMimeMessage
211 org.xwiki.mail.MailStatus: Parameter 2 of 'public MailStatus(java.lang.String, javax.mail.internet.MimeMessage, org.xwiki.mail.MailState)' has changed its type to org.xwiki.mail.ExtendedMimeMessage
212 org.xwiki.mail.script.ScriptMimeMessage: Removed org.xwiki.mail.internal.ExtendedMimeMessage from the list of superclasses
213 {{/code}}
214 )))
Ecaterina Moraru (Valica) 52.3 215
Ecaterina Moraru (Valica) 52.5 216 * Allow associating a version different from the extension version to the features(((
217 {{code language="none"}}
218 org.xwiki.extension.Extension: Method 'public java.util.Collection getAllowedNamespaces()' has been added to an interface
219 org.xwiki.extension.Extension: Method 'public org.xwiki.extension.ExtensionId getExtensionFeature(java.lang.String)' has been added to an interface
220 org.xwiki.extension.Extension: Method 'public java.util.Collection getExtensionFeatures()' has been added to an interface
221 {{/code}}
222 )))
223
224 * Deprecating this class in favor of the standard library class with the same name(((
225 {{code language="none"}}
226 org.xwiki.velocity.introspection.AbstractChainableUberspector: Removed field inner
227 org.xwiki.velocity.introspection.DeprecatedCheckUberspector: Removed org.xwiki.velocity.introspection.ChainableUberspector from the set of implemented interface
228 org.xwiki.velocity.introspection.DeprecatedCheckUberspector: Removed org.xwiki.velocity.introspection.AbstractChainableUberspector from the list of superclasse
229 org.xwiki.velocity.introspection.MethodArgumentsUberspector: Removed org.xwiki.velocity.introspection.ChainableUberspector from the set of implemented interface
230 org.xwiki.velocity.introspection.MethodArgumentsUberspector: Removed org.xwiki.velocity.introspection.AbstractChainableUberspector from the list of superclasse
231 {{/code}}
232 )))
233
Ecaterina Moraru (Valica) 52.3 234 * Other:
235 ** Not really a breakage. Just moved to its own module.(((
236 {{code language="none"}}
237 com.xpn.xwiki.plugin.diff.DiffPlugin
238 com.xpn.xwiki.plugin.diff.DiffPluginApi
239 {{/code}}
240 )))
241 ** Impossible to implement it without dependeing on XMLRPC module(((
242 {{code language="none"}}
243 com.xpn.xwiki.XWikiContextCompatibilityAspect
244 com.xpn.xwiki.XWikiContext
245 {{/code}}
246 )))
247 ** Was wrongly extending internal class(((
248 {{code language="none"}}
249 org.xwiki.refactoring.job.EntityJobStatus
250 org.xwiki.extension.xar.job.diff.DiffXarJobStatus
251 {{/code}}
252 )))

Get Connected