Last modified by Thomas Mortagne on 2023/10/13

Show last authors
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
7 The version is mostly about stabilization before 7.0 final. It contains diff UI improvements, Extension Repository improvements, a new component based watchlist module, a new application to edit wiki skins. XWiki also moved to Servlet 3.0.1 which means various old application servers versions are not supported anymore.
8
9 {{error}}This release introduce a new internal group cache in the security module. This group cache is affected by a serious issue. In certain situations, it causes group members not to be recognized as such, leading to incorrect access decisions. If you follow the XWiki best practices for setting rights (which recommends to minimize use of denies), this issue will result mostly in unexpected access denials, which obviously does not seriously compromise the security but cause real annoyance to legitimate users. See {{jira url="https://jira.xwiki.org" style="enum"}}XWIKI-12016{{/jira}} for more technical detail about this issue.{{/error}}
10
11 = New and Noteworthy (since XWiki 7.0 Milestone 2) =
12
13 [[Full list of issues fixed and Dashboard for 7.0>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=13092]].
14
15 == Improved Document Diff View ==
16
17 The document history view that shows the differences between two versions of a document has been improved:
18
19 * The new summary gives you an overview of the changes and provides fast navigation.
20 * The changes made to the short text properties (e.g. title, which has only one line of text) are more readable now.
21 * You can see the changes that have been made to a text attachment. For non-text attachments you can see the difference in the file size.
22 * You can see detailed changes to a class definition (e.g. which meta properties, like 'Custom Display', have been modified).
23
24 {{image reference="history-compareDocumentVersions.png"/}}
25
26 See the [[Version Control feature documentation>>Documentation.UserGuide.Features.VersionControl]] for more details.
27
28 == Extension Diff View ==
29
30 You can now view the changes that have been made to the wiki pages of an installed extension. This can help you review your customizations to a XAR extension before doing an upgrade. The wiki pages of the transitive dependencies are also taken into account.
31
32 {{image reference="extension-changes.png"/}}
33
34 See more on the [[Extension Manager Application documentation>>extensions:Extension.Extension Manager Application||anchor="HChanges"]] page.
35
36 == Experimental Realtime Watchlist Notification ==
37
38 We have added a new notification option for WatchList that notifies users of changes on their watched documents in real time (i.e. as soon as they happen).
39
40 {{image reference="watchlistRealtime.png"/}}
41
42 This feature is currently **experimental and disabled by default**. Fore more information on it and how to enable it, please see [[the documentation>>extensions:Extension.Watchlist Application||anchor="HSince7.0RC1"]].
43
44 == Miscellaneous ==
45
46 * Rendering page performances have been improved when using the Flamingo skin (thanks to the usage of [[Less4j>>https://github.com/SomMeri/less4j]] for the integration of the LESS language).
47 * When deploying XWiki as ROOT [[you must now set the ##xwiki.webapppath## property to empty>>Documentation.AdminGuide.ShortURLs||anchor="HDeployingasROOT"]] as in:(((
48 {{code language="none"}}
49 xwiki.webapppath=
50 {{/code}}
51
52 The reason is that XWiki cannot guess the webapp context from the URL in this case. This seemed to work on previous versions but it was actually leading to errors from time to time, depending on what URL was used when doing the first request on the XWiki instance.
53 )))
54 * Debian packages based on Tomcat 8 have been added.
55 * Distribution Wizard should not ask to login when installing from scratch anymore
56 * Renamed the WatchList notification options to something simpler and clearer:(((
57 {{image reference="watchlistNotifiers.png"/}}
58 )))
59
60 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+%227.0-rc-1%22&tempMax=1000]] fixed in this release.
61
62 = For Developers =
63
64 == Access Extension fields by name ==
65
66 Added a method in Extension to access a field (name, summary, version, etc.) value by name.
67
68 {{code language="java"}}
69 /**
70 * Get an extension field (name, summary, id, etc.) by name. Fallback on properties.
71 *
72 * @param <T> type of the field value
73 * @param fieldName the field name;
74 * @return the field value or null if none could be found
75 * @since 7.0RC1
76 */
77 @Unstable
78 <T> T get(String fieldName);
79 {{/code}}
80
81 == Skin Edition ==
82
83 * We have added a new [[extensions:Extension.Skin Application]] to easily edit a skin document.(((
84  {{image reference="skin-edit1.png" width="45%"/}} {{image reference="skin-edit2.png" width="45%"/}}
85 )))
86 * This application provides a new way to override a template. You do not need to edit the ##XWikiSkins## class anymore.
87 * It also provides the ability to override a file stored in a subdirectory.
88 * It is now possible to override the LESS templates.
89
90 == Extensions Repository improvements ==
91
92 * The new advanced extension search introduced in 7.0 Milestone 2 has been implemented on server side
93 * Source URL is now taken into account when importing an extension
94 * Search and advanced search are now implemented based on Solr which among other things make the search ordered by score by default and boost configuration has been associated to each extension element (high score for extension name and id, etc.)
95 * Extensions Repository REST service now return scm informations
96
97 == Solr index changes ==
98
99 All String based object properties raw values are now stored in the Solr index with _string suffix (exactly like for static lists properties) in DOCUMENT types. This mean that when upgrading to 7.0 you should recreate the Solr index so that they are added.
100
101 == WebJars Caching ==
102
103 The WebJar resources are now permanently cached by the browser. The browser won't request them again unless you clear the browser cache or you force reload the page. See more on the [[WebJars Integration>>extensions:Extension.WebJars Integration||anchor="HCaching"]] documentation.
104
105 == Deprecated and Retired projects ==
106
107 * The [[WatchList plugin>>extensions:Extension.Watchlist Plugin]] has been moved to legacy and was replaced by a component-based implementation. The legacy module still provides a plugin API for compatibility, but clients should move to the new script service instead.
108
109 == Miscellaneous ==
110
111 * XAR Mojos now also format and verify attachment authors.
112 * ##MandatoryDocumentInitializer## components can now use a ##@Priority## annotation to specify the order in which they should be executed. See [[XWIKI-11905>>https://jira.xwiki.org/browse/XWIKI-11905]].
113 * A new ##isMainWikiOnly()## method is available in ##AbstractMandatoryDocumentInitializer## for overriding to specify that the document should be initialized on the main wiki only.
114 * A new ##setDocumentFields()## method is available in ##AbstractMandatoryDocumentInitializer## to be called when initializing a regular document (which is not a class).
115 * A new component based implementation of the watchlist module is now available (replacing the plugin one). See [[the documentation>>extensions:Extension.Watchlist API]] for more information.
116 * The XWiki pages for the [[XClass Application>>extensions:Extension.XClass Application]] (a.k.a Class Wizard or Class Editor Wizard) which were located in the ##xwiki-enterprise## GitHub repository have been moved into a ##xwiki-platform-xclass## Maven module in the ##xwiki-platform## GitHub repository.
117 * Added access to the document XDOM in ##com.xpn.xwiki.api.Document##. That means you can now do {{code language="velocity"}}$doc.getXDOM(){{/code}} and {{code language="velocity"}}$doc.setContent($xdom){{/code}}.
118 * The default preferences (the ##XWikiPreferences## document) has been moved from ##xwiki-enterprise-ui-admin-user## to ##xwiki-enterprise-ui-mainwikipreferences##.
119
120 == Upgrades ==
121
122 The following dependencies have been upgraded:
123
124 * [[Groovy 2.4.2>>https://jira.xwiki.org/browse/XCOMMONS-771]]
125
126 = Translations =
127
128 The following translations have been updated:
129
130 {{language codes="ca, cs, da, de, es, fr, gl, it, ko, lv, pt_BR, ro, ru, sk, sv, tr, vi, zh, zh_TW"/}}
131
132 = Tested Browsers & Databases =
133
134 {{include reference="TestReports.ManualTestReportSummaryXWiki70RC1"/}}
135
136 = Known issues =
137
138 * [[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]]
139
140 = Backward Compatibility and Migration Notes =
141
142 == General Notes ==
143
144 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.
145
146 == Issues specific to XWiki 7.0 RC 1 ==
147
148 * The [[WatchList plugin>>extensions:Extension.Watchlist Plugin]] has been moved to legacy and was replaced by a component-based implementation. The legacy module still provides a plugin API for compatibility, but clients should move to the new script service instead.
149 * The Solr index changed so it needs to be recreated in case some new feature would expect to find the new fields
150 * Debian packages based on Tomcat 5 and 6 has been removed since they are not supported by XWiki itself anymore
151 * [[XWiki now requires to be deployed in a Servlet Container support Servlet 3.0.1>>Documentation.AdminGuide.Installation||anchor="HPrerequisites"]]. For example:
152 ** Jetty 8.x
153 ** [[Tomcat 7.x>>http://tomcat.apache.org/whichversion.html]]
154 ** Glassfish 3.x
155 ** WebSphere 8.x
156 ** WebLogic 12.x
157 ** JBoss AS 6.x/7.x
158 ** Resin 4.0.1
159
160 == API Breakages ==
161
162 The following APIs were modified since XWiki 6.4.3:
163
164 * In Velocity $jsontool.serialize($object) method return null when failing to serialize the passed object (it used to return whatever it was able to write before failing to serialize an element). This should not cause much issue since expecting to get a partial invalid JSON content is most probably a very rare use case.
165
166 * The Watchlist plugin has been moved to legacy and a component-based implementation has replaced it. Major refactoring has been performed.
167
168 {{code language="none"}}
169 com.xpn.xwiki.plugin.watchlist.AutomaticWatchMode: Class com.xpn.xwiki.plugin.watchlist.AutomaticWatchMode removed
170 com.xpn.xwiki.plugin.watchlist.AutomaticWatchModeListener: Class com.xpn.xwiki.plugin.watchlist.AutomaticWatchModeListener removed
171 com.xpn.xwiki.plugin.watchlist.WatchListEvent: Class com.xpn.xwiki.plugin.watchlist.WatchListEvent removed
172 com.xpn.xwiki.plugin.watchlist.WatchListEventFeedManager: Class com.xpn.xwiki.plugin.watchlist.WatchListEventFeedManager removed
173 com.xpn.xwiki.plugin.watchlist.WatchListEventMatcher: Class com.xpn.xwiki.plugin.watchlist.WatchListEventMatcher removed
174 com.xpn.xwiki.plugin.watchlist.WatchListEventType: Class com.xpn.xwiki.plugin.watchlist.WatchListEventType removed
175 com.xpn.xwiki.plugin.watchlist.WatchListJob: Class com.xpn.xwiki.plugin.watchlist.WatchListJob removed
176 com.xpn.xwiki.plugin.watchlist.WatchListJobManager: Class com.xpn.xwiki.plugin.watchlist.WatchListJobManager removed
177 com.xpn.xwiki.plugin.watchlist.WatchListNotifier: Class com.xpn.xwiki.plugin.watchlist.WatchListNotifier removed
178 com.xpn.xwiki.plugin.watchlist.WatchListPlugin: Class com.xpn.xwiki.plugin.watchlist.WatchListPlugin removed
179 com.xpn.xwiki.plugin.watchlist.WatchListPluginApi: Class com.xpn.xwiki.plugin.watchlist.WatchListPluginApi removed
180 com.xpn.xwiki.plugin.watchlist.WatchListStore: Class com.xpn.xwiki.plugin.watchlist.WatchListStore removed
181 com.xpn.xwiki.plugin.watchlist.WatchListStore$ElementType: Class com.xpn.xwiki.plugin.watchlist.WatchListStore$ElementType removed
182 {{/code}}
183
184 * Add support for categories to extension. It should not be an issue for most Extension implementations which are supposed to extend ##AbstractExtension##
185
186 {{code language="none"}}
187 org.xwiki.extension.Extension: Method 'public java.lang.String getCategory()' has been added to an interface
188 {{/code}}
189
190 * Helper to access extension fields by name
191
192 {{code language="none"}}
193 org.xwiki.extension.Extension: Method 'public java.lang.Object get(java.lang.String)' has been added to an interface
194 {{/code}}
195
196 * Added a method to get the date when an extension was installed.
197
198 {{code language="none"}}
199 org.xwiki.extension.InstalledExtension: Method 'public java.util.Date getInstallDate(java.lang.String)' has been added to an interface
200 {{/code}}
201
202 * Added support for associating custom install properties (e.g. the user that triggers the install) to the namespace where the extension is installed.
203
204 {{code language="none"}}
205 org.xwiki.extension.InstalledExtension: Method 'public java.lang.Object getNamespaceProperty(java.lang.String, java.lang.String)' has been added to an interface
206 org.xwiki.extension.repository.InstalledExtensionRepository: Method 'public org.xwiki.extension.InstalledExtension installExtension(org.xwiki.extension.LocalExtension, java.lang.String, boolean, java.util.Map)' has been added to an interface
207 {{/code}}
208
209 * Added support for advanced installed extensions search.
210
211 {{code language="none"}}
212 org.xwiki.extension.repository.InstalledExtensionRepository: Method 'public org.xwiki.extension.repository.result.IterableResult searchInstalledExtensions(java.lang.String, org.xwiki.extension.repository.search.ExtensionQuery)' has been added to an interface
213 {{/code}}
214
215 * Using String instead of JRCS Version for better flexibility. Probably should not have been public from the start.
216
217 {{code language="none"}}
218 com.xpn.xwiki.web.DeleteVersionsForm: Return type of method 'public org.suigeneris.jrcs.rcs.Version getRev()' has been changed to java.lang.String
219 com.xpn.xwiki.web.DeleteVersionsForm: Return type of method 'public org.suigeneris.jrcs.rcs.Version getRev1()' has been changed to java.lang.String
220 com.xpn.xwiki.web.DeleteVersionsForm: Return type of method 'public org.suigeneris.jrcs.rcs.Version getRev2()' has been changed to java.lang.String
221 {{/code}}
222
223 * Move to Servlet 3.0.1
224
225 {{code language="none"}}
226 com.xpn.xwiki.plugin.scheduler.XWikiServletRequestStub: Class com.xpn.xwiki.plugin.scheduler.XWikiServletRequestStub removed
227 com.xpn.xwiki.plugin.scheduler.XWikiServletResponseStub: Class com.xpn.xwiki.plugin.scheduler.XWikiServletResponseStub removed
228 {{/code}}
229
230 * Refactoring the LESS API. Make internal all the classes and interfaces that should never have been public
231
232 {{code language="none"}}
233 org.xwiki.lesscss.cache.ColorThemeCache: Class org.xwiki.lesscss.cache.ColorThemeCache removed
234 org.xwiki.lesscss.cache.LESSCache: Class org.xwiki.lesscss.cache.LESSCache removed
235 org.xwiki.lesscss.cache.LESSResourcesCache: Class org.xwiki.lesscss.cache.LESSResourcesCache removed
236 org.xwiki.lesscss.colortheme.ColorTheme: Class org.xwiki.lesscss.colortheme.ColorTheme removed
237 org.xwiki.lesscss.colortheme.ColorThemeReference: Class org.xwiki.lesscss.colortheme.ColorThemeReference removed
238 org.xwiki.lesscss.colortheme.ColorThemeReferenceFactory: Class org.xwiki.lesscss.colortheme.ColorThemeReferenceFactory removed
239 org.xwiki.lesscss.colortheme.ColorThemeReferenceSerializer: Class org.xwiki.lesscss.colortheme.ColorThemeReferenceSerializer removed
240 org.xwiki.lesscss.colortheme.DocumentColorThemeReference: Class org.xwiki.lesscss.colortheme.DocumentColorThemeReference removed
241 org.xwiki.lesscss.colortheme.LESSColorThemeConverter: Class org.xwiki.lesscss.colortheme.LESSColorThemeConverter removed
242 org.xwiki.lesscss.colortheme.NamedColorThemeReference: Class org.xwiki.lesscss.colortheme.NamedColorThemeReference removed
243 org.xwiki.lesscss.compiler.IntegratedLESSCompiler: Class org.xwiki.lesscss.compiler.IntegratedLESSCompiler removed
244 org.xwiki.lesscss.compiler.LESSCompiler: In method 'public java.lang.String compile(java.lang.String, java.nio.file.Path[])' the number of arguments has changed
245 org.xwiki.lesscss.compiler.LESSCompiler: In method 'public java.lang.String compile(java.lang.String)' the number of arguments has changed
246 org.xwiki.lesscss.compiler.LESSSkinFileCompiler: Class org.xwiki.lesscss.compiler.LESSSkinFileCompiler removed
247 org.xwiki.lesscss.resources.LESSObjectPropertyResourceReference: Class org.xwiki.lesscss.resources.LESSObjectPropertyResourceReference removed
248 org.xwiki.lesscss.resources.LESSResourceReader: Class org.xwiki.lesscss.resources.LESSResourceReader removed
249 org.xwiki.lesscss.resources.LESSResourceReference: Method 'public java.lang.String getContent(java.lang.String)' has been added to an interface
250 org.xwiki.lesscss.resources.LESSResourceReference: Method 'public java.lang.String serialize()' has been added to an interface
251 org.xwiki.lesscss.resources.LESSResourceReferenceSerializer: Class org.xwiki.lesscss.resources.LESSResourceReferenceSerializer removed
252 org.xwiki.lesscss.resources.LESSSkinFileResourceReference: Class org.xwiki.lesscss.resources.LESSSkinFileResourceReference removed
253 org.xwiki.lesscss.skin.DocumentSkinReference: Class org.xwiki.lesscss.skin.DocumentSkinReference removed
254 org.xwiki.lesscss.skin.FSSkinReference: Class org.xwiki.lesscss.skin.FSSkinReference removed
255 org.xwiki.lesscss.skin.SkinReference: Class org.xwiki.lesscss.skin.SkinReference removed
256 org.xwiki.lesscss.skin.SkinReferenceFactory: Class org.xwiki.lesscss.skin.SkinReferenceFactory removed
257 org.xwiki.lesscss.skin.SkinReferenceSerializer: Class org.xwiki.lesscss.skin.SkinReferenceSerializer removed
258 org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.colortheme.ColorTheme getColorThemeFromSkinFile(java.lang.String)' has been changed to org.xwiki.lesscss.internal.colortheme.ColorTheme
259 org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.colortheme.ColorTheme getColorThemeFromSkinFile(java.lang.String, java.lang.String)' has been changed to org.xwiki.lesscss.internal.colortheme.ColorTheme
260 {{/code}}

Get Connected