Last modified by Thomas Mortagne on 2023/10/13

Hide last authors
Thomas Mortagne 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
Thomas Mortagne 57.1 7 This milestone is mostly about improvements but it also introduce new Velocity tools and macros and also add support for catching and display nicely exceptions in Velocity.
Thomas Mortagne 1.1 8
9 = New and Noteworthy (since XWiki 6.2) =
10
Thomas Mortagne 59.1 11 [[Full list of issues fixed and Dashboard for 6.3>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=12693]].
Thomas Mortagne 1.1 12
Thomas Mortagne 3.1 13 == Extension Manager and Repository improvements ==
Thomas Mortagne 1.1 14
15 * ##<scm>## element from Maven ##pom.xml## is now supported and has been added to the standard in the API
16 * ##<issueManagement>## element from Maven ##pom.xml## is now supported and has been added to the standard in the API
Thomas Mortagne 50.1 17 * When importing an extension unknown but valid versions are not removed anymore
Thomas Mortagne 1.1 18
Eduard Moraru 46.4 19 == User Directory customized globally ==
Eduard Moraru 46.3 20
21 The administrator of the wiki can customize the default columns to be displayed by the user directory.
22
Thomas Mortagne 48.1 23 {{image reference="userDirectoryGloballyConfigurableInAdministration.png"/}}
Eduard Moraru 46.3 24
25 For more information, see the [[documentation>>extensions:Extension.User Directory Application]]
26
Guillaume Delhumeau 6.1 27 == Flamingo ==
28
Guillaume Delhumeau 40.1 29 {{info}}
Thomas Mortagne 59.1 30 The Flamingo skin was introduced as experimental in XWiki 6.0 & 6.1 and has been deemed usable in XWiki 6.2. However we're still tuning details. It happens that we did not all agree on the location of the "Add" button (some wanted it inside the content, next to the "Edit" buttons and others wanted it back at the top - You can [[follow the discussion here>>http://markmail.org/message/jqbcj4p4ryc56sms]] if you're interested ;)). Thus we've decided for the moment to put it back at the top where it was in the Colibri skin in order to not force our users to learn a new location for the moment. This is still a discussion in progress and if you have inputs and preferences please do not hesitate to let us know on the [[XWiki Users Mailing List>>dev:Community.MailingLists]] or on the [[related Issue>>https://jira.xwiki.org/browse/XWIKI-11167]]. Thanks!
Guillaume Delhumeau 40.1 31 {{/info}}
32
33 * The 'Add' button has been moved back to the top bar and the search bar to the right:(((
34 {{image reference="[email protected]" width="60%"/}}
35 )))
36 * When you click on the 'add' button, the order of the choices have been inverted, to propose to create a page first, then a space, and finally a wiki:(((
37 {{image reference="[email protected]"/}}
38 )))
39 * The Wiki/Space/Page buttons in the top bar have been changed and are no longer split into two parts. You do not need to click the arrow specifically any more to open the contextual menu:(((
40 {{image reference="[email protected]"/}}
41 )))
42 * To navigate to the current Wiki/Space/Page in the top bar, there is now a new "Go to..." item:(((
43 |=Wiki|=Space|=Page
44 |{{image reference="[email protected]"/}}|{{image reference="[email protected]"/}}|{{image reference="[email protected]"/}}
45 )))
46 * The languages selection is now located in the top bar. It is displayed only when the multilingual mode is enabled:(((
47 {{image reference="[email protected]" width="60%"/}}
48 When there is no translation available:
49 {{image reference="[email protected]"/}}
50 When there is some translations available:
51 {{image reference="[email protected]"/}}
52 )))
53 * The [[Livetable>>extensions:Extension.Livetable Macro]] is now responsive to the screen size, so you can use them with smartphones:(((
54 {{image reference="[email protected]"/}}
55 )))
Guillaume Delhumeau 6.1 56 * The "Add" button has now a default action to create a new page. You can still create other kind of contents (Wiki, Space) by using the arrow, just like we do with the different "edit" actions.(((
57 {{image reference="flamingo-add.png"/}}
58 )))
Vincent Massol 31.1 59 * The Flamingo Theme Application now uses a new Color Picker.(((
60 {{image reference="[email protected]"/}}
61 )))
Guillaume Delhumeau 40.1 62 * To sum up, this is the new look:(((
63 {{image reference="[email protected]"/}}
64 )))
Guillaume Delhumeau 6.1 65
Thomas Mortagne 1.1 66 == Miscellaneous ==
67
Guillaume Delhumeau 33.1 68 * The default color themes (DefaultColorTheme and FlamingoDefaultTheme) have been renamed Azure and Charcoal.
Vincent Massol 52.1 69 * In the select field of the 'color theme' property, in the administration, the color themes are now ordered by name.
Vincent Massol 31.1 70 * In the administration, clicking the "Customize" button for customizing a Skin or a Color Theme now opens the page it leads to in edit mode.
Vincent Massol 10.1 71 * Improved L&F when a template fails to render:(((
Guillaume Delhumeau 14.1 72 {{image reference="templateerror.png" width="650px"/}}
Vincent Massol 10.1 73 )))
Guillaume Delhumeau 14.1 74 * We have created dedicated groups for Colibri and Flamingo Themes inside the Administration. Every themes can be used with both skins but they looks better when they are used with the corresponding theme.(((
75 {{image reference="ColorThemeDisplayer.png"/}}
76 )))
Thomas Mortagne 24.1 77 * The start/stop shell scripts provided with the Standalone Distribution have been improved to display usage information when an invalid parameter is passed or when the ##-h## or ##~-~-help## parameters are passed. Also note that the start script doesn't stop anymore a running XWiki instance if the ##-k## or ##~-~-kill## parameter is passed (this parameter has been removed).
Thomas Mortagne 60.1 78 * It's now possible to configure the maximum number of search results to be returned from a search operation using ##xwiki.authentication.ldap.maxresults## property in ##xwiki.cfg## file. See [[LDAP documentation>>Documentation.AdminGuide.Authentication||anchor="HGenericLDAPconfiguration"]].
Thomas Mortagne 59.1 79 * The "Empty is today" option on Date fields of classes created with Application Within Minutes is now working as expected. See [[XWIKI-10296>>https://jira.xwiki.org/browse/XWIKI-10296]]
Thomas Mortagne 35.1 80 * Office macro can now take a URL as input. See [[extensions:Extension.Office Macro]] for more details
Thomas Mortagne 1.1 81
Thomas Mortagne 59.1 82 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+%226.3-milestone-1%22&tempMax=1000]] fixed in this release.
Thomas Mortagne 1.1 83
84 = For Developers =
85
Marius Dumitru Florea 7.2 86 == Velocity macros to display users and groups ==
Thomas Mortagne 1.1 87
Marius Dumitru Florea 7.1 88 We extracted the code that displays in view mode a property of type 'List of Users' and 'List of Groups' from the corresponding custom displayers (found in ##displayer_users.vm## and ##displayer_groups.vm##) into two Velocity macros that can be used to display arbitrary users and groups, even when you don't have an object. Here's how you can use them:
Thomas Mortagne 1.1 89
Marius Dumitru Florea 7.1 90 {{code language="none"}}
91 {{velocity}}
92 {{html wiki="true"}}
93 = Users =
94 == Just one ==
95 #displayUser('XWiki.Admin')
96
97 == List of users ==
98 #displayUser(['Admin', 'XWiki.mflorea'])
99
100 == A reference of a user ==
101 #displayUser($xcontext.userReference)
102
103 == A list of references of users ==
104 #displayUser([$xcontext.userReference, $otherUserReference])
105
106 = Groups =
107 == Just one ==
108 #displayGroup('XWiki.XWikiAdminGroup')
109
110 == List of groups ==
111 #displayGroup(['XWikiAdminGroup','XWiki.HRGroup'])
112
113 == A reference of a group ==
114 #set($adminGroupRef = $services.model.resolveDocument('XWiki.XWikiAdminGroup'))
115 #set($allGroupRef = $services.model.resolveDocument('XWiki.XWikiAllGroup'))
116 #displayGroup($adminGroupRef)
117
118 == A list of references of groups ==
119 #displayGroup([$adminGroupRef, $allGroupRef])
120
121 {{/html}}
122 {{/velocity}}
123 {{/code}}
124
Thomas Mortagne 20.1 125 == New Velocity Tools ==
Clemens Robbenhaar 12.1 126
Vincent Massol 15.1 127 * New URL Tool ##$urltool##: A [[new tool>>extensions:Extension.Velocity Module||anchor="HVelocityTools"]] has been added with one method to parse query string from the URL ##$urltool.parseQuery(String)##. The value returned by this is method is a ##Map<String, List<String>>## which maps parameter names to (possibly multiple) values, and can be passed e.g. directly into ##$escapetool.url(Map<String, ?>)## to convert it back to a string. This is useful e.g. in cases where one want to pass a complete query string around between requests, as it happend for the PDF export; the ##$urltool## allows for a sane deserialization of the value passed around.
128 * New Exception Tool ##$exceptiontool##: A [[new tool>>extensions:Extension.Velocity Module||anchor="HVelocityTools"]] to manipulate Java Exceptions (get root cause, convert into String, etc).
Thomas Mortagne 55.1 129 * ##$stringtool## moved from ##org.apache.commons.lang3.StringUtils## to ##org.xwiki.text.StringUtils## which extends the first one and add new stuff
Clemens Robbenhaar 12.1 130
Vincent Massol 16.1 131 == Ability to catch Exceptions from Velocity ==
132
Eduard Moraru 55.2 133 A new Velocity Directive has been added to catch Exceptions from Velocity. In addition a new ###displayUnhandledException()## velocity macro has also been added to nicely display an exception to the user.
Vincent Massol 16.1 134
135 For example:
136
137 {{code language="velocity"}}
138 #try()
139 #set($outputSyntax = $xwiki.getAvailableRendererSyntax($request.outputSyntax, $request.outputSyntaxVersion))
140 #if ($outputSyntax)
141 ## If the passed syntax is not an HTML-compatible syntax we need to HTML-escape it so that it can be
142 ## displayed fine in HTML (since at the point this vm file is called we're already inside an HTML page with
143 ## panels on the side, header, etc).
144 #set($syntaxType = $outputSyntax.type.toIdString())
145 #if (($syntaxType == "xhtml") || ($syntaxType == "html"))
146 #set ($renderedContent = $tdoc.getRenderedContent($outputSyntax))
147 #else
148 ## Make sure to print correctly the result when it's not HTML
149 #set ($renderedContent = "<pre>$escapetool.html($tdoc.getRenderedContent($outputSyntax))</pre>")
150 #end
151 #else
152 #set ($renderedContent = $tdoc.getRenderedContent())
153 #end
154 #end
155 ...
156 <div id="xwikicontent">
157 #if ("$!exception" != '')
Eduard Moraru 55.2 158 #displayUnhandledException($exception)
Vincent Massol 16.1 159 #else
160 $renderedContent
161 #end
162 </div>
163 ...
164 {{/code}}
165
166 This generates the following in case of error rendering the page:
167
168 {{image reference="renderingerror.png"/}}
169
Vincent Massol 27.1 170 == New #displayException macro ==
171
172 Displays an error message with a title that can be clicked and expands to display an exception.
173
174 Example from a wiki page:
175
176 {{code language="none"}}
177 {{velocity}}
178 #set ($message = $services.mailsender.createMessage())
179 $message.send()
180
181 {{html}}
182 #displayException("hello world", $services.mailsender.lastError)
183 {{/html}}
184 {{/velocity}}
185 {{/code}}
186
Vincent Massol 23.1 187 == Component Disposal ==
188
189 The order used by the ComponentManager to dispose its components is computed based on declared dependencies. However there might be cases when you wish a Component's ##dispose()## method to be called before or after all other components. In this case you can use the ##DisposePriority## annotation. The default priority is 1000. A higher value will mean disposing before all other components not having this annotation. For example:
190
191 {{code language="java"}}
192 @Component
193 @Singleton
194 @DisposePriority(10000)
195 public class DefaultHibernateSessionFactory implements HibernateSessionFactory, Disposable
196 {
197 ...
198 @Override
199 public void dispose() throws ComponentLifecycleException
200 {
201 ... called after other components in order to shut down the database late...
202 }
203 ...
204 }
205 {{/code}}
206
207 See the [[Component Reference documentation>>extensions:Extension.Component Module]] for other details.
208
Marius Dumitru Florea 46.2 209 == New LiveTable Filtering Option ==
Marius Dumitru Florea 46.1 210
211 You can now specify how the filter value should be matched against the stored value. One use case when this is useful is when you have a live table for an XClass that has a Database List property and you want to use a text input filter instead of the default drop down list filter. Currently the user has to enter the full value in the text input in order to filter. Would be good if partial matching would work. This is possible starting with this version:
212
213 {{code language="none"}}
214 #set ($columnsProperties = {
215 'doc.name': {'type': 'text', 'size': 10, 'link': 'view'},
216 ...
217 'myDatabaseList': {'type': 'text', 'size': 10, 'match': 'partial'},
218 ...
219 })
220 {{/code}}
221
Marius Dumitru Florea 46.2 222 Checkout the [[LiveTable Macro documentation>>extensions:Extension.Livetable Macro||anchor="HParameter24columnsProperties"]] for more details about the **match** option.
Marius Dumitru Florea 46.1 223
Vincent Massol 47.4 224 == Miscellaneous ==
225
226 * The wiki provisioning job has now the current user set in the context.
227 * 10 new icons have been mapped into [[Font Awesome Icon Theme>>extensions:Extension.Font Awesome Icon Theme]].
228 * It's now possible to overwrite the id of a Java bean property using an annotation. See [[extensions:Extension.Properties Module||anchor="HPopulateaJavaBean"]] for more.
229 * [[It's possible to get DEBUG information only for shutdown operations>>dev:Community.Debugging||anchor="HLoggingshutdownoperations"]] by editing ##logback.xml## and setting:(((
230 {{code language="xml"}}
231 <logger name="org.xwiki.shutdown" level="debug"/>
232 {{/code}}
233 )))
Vincent Massol 53.1 234 * When importing an extension unknown but valid versions are not removed anymore
Vincent Massol 47.4 235
Thomas Mortagne 1.1 236 == Upgrades ==
237
238 The following dependencies have been upgraded:
239
Thomas Mortagne 59.1 240 * [[JGroups 3.5.1>>https://jira.xwiki.org/browse/XWIKI-10987]]
241 * [[Tika 1.6>>https://jira.xwiki.org/browse/XWIKI-10956]]
242 * [[reflections 0.9.9>>https://jira.xwiki.org/browse/XCOMMONS-654]]
243 * [[Groovy 2.3.7>>https://jira.xwiki.org/browse/XCOMMONS-655]]
244 * [[jQuery 1.11.1>>https://jira.xwiki.org/browse/XWIKI-11094]]
245 * [[Doxia 1.6>>https://jira.xwiki.org/browse/XRENDERING-364]]
246 * [[Joda-Time 2.5>>https://jira.xwiki.org/browse/XRENDERING-365]]
247 * [[commons-compress 1.9>>https://jira.xwiki.org/browse/XCOMMONS-665]]
Thomas Mortagne 1.1 248
249 = Tested Browsers & Databases =
250
Manuel Smeria 32.1 251 {{include reference="TestReports.ManualTestReportXWiki63M1Summary"/}}
Thomas Mortagne 1.1 252
253 = Known issues =
254
Thomas Mortagne 59.1 255 * [[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]]
Thomas Mortagne 1.1 256
257 = Backward Compatibility and Migration Notes =
258
259 == General Notes ==
260
261 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.
262
Marius Dumitru Florea 54.1 263 == Programming Rights disabled for TextArea Properties ==
264
265 If you have a class with a TextArea property and in your sheet you use ##$doc.display()## to display this property then you must know that starting with this version the content of the TextArea is rendered without programming rights, even if the last author or content author of the document that has the object with the TextArea property has programming rights. In other words, if you use wiki syntax in the TextArea content and you use script macros inside, the code that requires programming rights won't be executed even if you have the necessary rights. The reason for this change is because we can't know for sure who is the last author of the TextArea's content. We may remove this limitation in the future if we add a way to know the author. A solution we are currently investigating is the usage of signed scripts in TextArea's content. Until then, if you really want to execute the content of your TextArea properties using programming rights then you can use ##$doc.getRenderedContent()## in your sheet, passing the content of the TextArea property.
266
Thomas Mortagne 1.1 267 == API Breakages ==
268
Thomas Mortagne 51.1 269 The following APIs were modified since XWiki 6.2:
Thomas Mortagne 1.1 270
271 {{code language="none"}}
Thomas Mortagne 55.3 272 org.xwiki.extension.Extension: Method 'public org.xwiki.extension.ExtensionIssueManagement getIssueManagement()' has been added to an interface
273 org.xwiki.extension.Extension: Method 'public org.xwiki.extension.ExtensionScm getScm()' has been added to an interface
Thomas Mortagne 56.1 274 com.xpn.xwiki.store.XWikiHibernateBaseStore: In method 'protected void createHibernateSequenceIfRequired(java.lang.String, org.hibernate.Session)' the number of arguments has changed
Thomas Mortagne 1.1 275 {{/code}}

Get Connected