Wiki source code of Release Notes for XWiki 6.3

Version 2.2 by Thomas Mortagne on 2014/11/12

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 <insert description of release here>
8
9 = New and Noteworthy (since XWiki 6.2.4) =
10
11 [[Full list of issues fixed and Dashboard for 6.3>>http://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=12693]].
12
13 == Extension Manager and Repository improvements ==
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
17 * When importing an extension unknown but valid versions are not removed anymore
18 * The extension source URL and issue manager URL are now displayed in the extension description when available.
19 {{image reference="scmissuemanagement.png"/}}
20
21 == User Directory customized globally ==
22
23 The administrator of the wiki can customize the default columns to be displayed by the user directory.
24
25 {{image reference="userDirectoryGloballyConfigurableInAdministration.png"/}}
26
27 For more information, see the [[documentation>>extensions:Extension.User Directory Application]]
28
29 == Flamingo ==
30
31 {{info}}
32 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>>http://jira.xwiki.org/browse/XWIKI-11167]]. Thanks!
33 {{/info}}
34
35 * The 'Add' button has been moved back to the top bar and the search bar to the right:(((
36 {{image reference="ReleaseNotesXWiki622@flamingo-add.png" width="60%"/}}
37 )))
38 * 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:(((
39 {{image reference="ReleaseNotesXWiki622@flamingo-add-options.png"/}}
40 )))
41 * 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:(((
42 {{image reference="ReleaseNotesXWiki622@flamingo-menubar.png"/}}
43 )))
44 * To navigate to the current Wiki/Space/Page in the top bar, there is now a new "Go to..." item:(((
45 |=Wiki|=Space|=Page
46 |{{image reference="ReleaseNotesXWiki622@flamingo-goto-wiki.png"/}}|{{image reference="ReleaseNotesXWiki622@flamingo-goto-space.png"/}}|{{image reference="ReleaseNotesXWiki622@flamingo-goto-page.png"/}}
47 )))
48 * The languages selection is now located in the top bar. It is displayed only when the multilingual mode is enabled:(((
49 {{image reference="ReleaseNotesXWiki622@languages.png" width="60%"/}}
50 When there is no translation available:
51 {{image reference="ReleaseNotesXWiki622@languages-no-alternative.png"/}}
52 When there is some translations available:
53 {{image reference="ReleaseNotesXWiki622@languages-with-alternatives.png"/}}
54 )))
55 * The [[Livetable>>extensions:Extension.Livetable Macro]] is now responsive to the screen size, so you can use them with smartphones:(((
56 {{image reference="ReleaseNotesXWiki622@Livetable-Responsive.png"/}}
57 )))
58 * 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.(((
59 {{image reference="flamingo-add.png"/}}
60 )))
61 * The Flamingo Theme Application now uses a new Color Picker.(((
62 {{image reference="ReleaseNotesXWiki621@NewColorPicker.png"/}}
63 )))
64 * To sum up, this is the new look:(((
65 {{image reference="ReleaseNotesXWiki622@flamingo.png"/}}
66 )))
67
68 == Panels Application ==
69
70 It is now possible to select which applications are displayed in the App Bar, and which are not:
71
72 {{image reference="customizable-app-bar.png"/}}
73
74 == Miscellaneous ==
75
76 * The default color themes (DefaultColorTheme and FlamingoDefaultTheme) have been renamed Azure and Charcoal.
77 * In the select field of the 'color theme' property, in the administration, the color themes are now ordered by name.
78 * 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.
79 * Improved L&F when a template fails to render:(((
80 {{image reference="templateerror.png" width="650px"/}}
81 )))
82 * 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.(((
83 {{image reference="ColorThemeDisplayer.png"/}}
84 )))
85 * 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).
86 * 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>>platform:AdminGuide.Authentication||anchor="HGenericLDAPconfiguration"]].
87 * The "Empty is today" option on Date fields of classes created with Application Within Minutes is now working as expected. See [[XWIKI-10296>>http://jira.xwiki.org/browse/XWIKI-10296]]
88 * Office macro can now take a URL as input. See [[extensions:Extension.Office Macro]] for more details
89 * The standalone distribution now uses Jetty 9.2.3.v20140905 (was using version 8.1.15.v20140411 in XWiki 6.3-milestone-1). This should be transparent for the user since XWiki provides its own start/stop scripts around Jetty.
90 * The Delete Space feature now lists the documents inside the space you are going to delete. This should help people differentiate between the UI of Delete Page and the UI of Delete Space so that fewer mistakes occur when not paying much attention:(((
91 {{image reference="deleteSpaceListDocuments.png"/}}
92 )))
93
94 = For Developers =
95
96 == Velocity macros to display users and groups ==
97
98 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:
99
100 {{code language="none"}}
101 {{velocity}}
102 {{html wiki="true"}}
103 = Users =
104 == Just one ==
105 #displayUser('XWiki.Admin')
106
107 == List of users ==
108 #displayUser(['Admin', 'XWiki.mflorea'])
109
110 == A reference of a user ==
111 #displayUser($xcontext.userReference)
112
113 == A list of references of users ==
114 #displayUser([$xcontext.userReference, $otherUserReference])
115
116 = Groups =
117 == Just one ==
118 #displayGroup('XWiki.XWikiAdminGroup')
119
120 == List of groups ==
121 #displayGroup(['XWikiAdminGroup','XWiki.HRGroup'])
122
123 == A reference of a group ==
124 #set($adminGroupRef = $services.model.resolveDocument('XWiki.XWikiAdminGroup'))
125 #set($allGroupRef = $services.model.resolveDocument('XWiki.XWikiAllGroup'))
126 #displayGroup($adminGroupRef)
127
128 == A list of references of groups ==
129 #displayGroup([$adminGroupRef, $allGroupRef])
130
131 {{/html}}
132 {{/velocity}}
133 {{/code}}
134
135 == New Velocity Tools ==
136
137 * 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.
138 * New Exception Tool ##$exceptiontool##: A [[new tool>>extensions:Extension.Velocity Module||anchor="HVelocityTools"]] to manipulate Java Exceptions (get root cause, convert into String, etc).
139 * ##$stringtool## moved from ##org.apache.commons.lang3.StringUtils## to ##org.xwiki.text.StringUtils## which extends the first one and add new stuff
140
141 == Ability to catch Exceptions from Velocity ==
142
143 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.
144
145 For example:
146
147 {{code language="velocity"}}
148 #try()
149 #set($outputSyntax = $xwiki.getAvailableRendererSyntax($request.outputSyntax, $request.outputSyntaxVersion))
150 #if ($outputSyntax)
151 ## If the passed syntax is not an HTML-compatible syntax we need to HTML-escape it so that it can be
152 ## displayed fine in HTML (since at the point this vm file is called we're already inside an HTML page with
153 ## panels on the side, header, etc).
154 #set($syntaxType = $outputSyntax.type.toIdString())
155 #if (($syntaxType == "xhtml") || ($syntaxType == "html"))
156 #set ($renderedContent = $tdoc.getRenderedContent($outputSyntax))
157 #else
158 ## Make sure to print correctly the result when it's not HTML
159 #set ($renderedContent = "<pre>$escapetool.html($tdoc.getRenderedContent($outputSyntax))</pre>")
160 #end
161 #else
162 #set ($renderedContent = $tdoc.getRenderedContent())
163 #end
164 #end
165 ...
166 <div id="xwikicontent">
167 #if ("$!exception" != '')
168 #displayUnhandledException($exception)
169 #else
170 $renderedContent
171 #end
172 </div>
173 ...
174 {{/code}}
175
176 This generates the following in case of error rendering the page:
177
178 {{image reference="renderingerror.png"/}}
179
180 == New #displayException macro ==
181
182 Displays an error message with a title that can be clicked and expands to display an exception.
183
184 Example from a wiki page:
185
186 {{code language="none"}}
187 {{velocity}}
188 #set ($message = $services.mailsender.createMessage())
189 $message.send()
190
191 {{html}}
192 #displayException("hello world", $services.mailsender.lastError)
193 {{/html}}
194 {{/velocity}}
195 {{/code}}
196
197 == Component Disposal ==
198
199 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:
200
201 {{code language="java"}}
202 @Component
203 @Singleton
204 @DisposePriority(10000)
205 public class DefaultHibernateSessionFactory implements HibernateSessionFactory, Disposable
206 {
207 ...
208 @Override
209 public void dispose() throws ComponentLifecycleException
210 {
211 ... called after other components in order to shut down the database late...
212 }
213 ...
214 }
215 {{/code}}
216
217 See the [[Component Reference documentation>>extensions:Extension.Component Module]] for other details.
218
219 == New LiveTable Filtering Option ==
220
221 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:
222
223 {{code language="none"}}
224 #set ($columnsProperties = {
225 'doc.name': {'type': 'text', 'size': 10, 'link': 'view'},
226 ...
227 'myDatabaseList': {'type': 'text', 'size': 10, 'match': 'partial'},
228 ...
229 })
230 {{/code}}
231
232 Checkout the [[LiveTable Macro documentation>>extensions:Extension.Livetable Macro||anchor="HParameter24columnsProperties"]] for more details about the **match** option.
233
234 == Solr JSON Service ==
235
236 You can now make search requests from JavaScript using the Solr JSON service. The results include all the information that is indexed by Solr so you can display them as you wish. See the [[Solr Search Application>>extensions:Extension.Solr Search Application||anchor="HJSONService"]] documentation for more details.
237
238 == Document Meta Informations ==
239
240 * We have introduced a new JavaScript API to get informations about the current document. See: [[platform:DevGuide.JavaScriptAPI||anchor="HGetsomeinformationsaboutthecurrentdocument"]].
241
242 == Miscellaneous ==
243
244 * The wiki provisioning job has now the current user set in the context.
245 * 10 new icons have been mapped into [[Font Awesome Icon Theme>>extensions:Extension.Font Awesome Icon Theme]].
246 * 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.
247 * [[It's possible to get DEBUG information only for shutdown operations>>dev:Community.Debugging||anchor="HLoggingshutdownoperations"]] by editing ##logback.xml## and setting:(((
248 {{code language="xml"}}
249 <logger name="org.xwiki.shutdown" level="debug"/>
250 {{/code}}
251 )))
252 * When importing an extension unknown but valid versions are not removed anymore
253 * New ##outputOnlyHtml## option for the ##livetable## macro to output only the HTML, without the syntax specific wrappers. See the [[documentation>>extensions:Extension.Livetable Macro||anchor="HAllacceptedvalues"]].
254
255 == Upgrades ==
256
257 The following dependencies have been upgraded:
258
259 * [[JGroups 3.5.1>>http://jira.xwiki.org/browse/XWIKI-10987]]
260 * [[Tika 1.6>>http://jira.xwiki.org/browse/XWIKI-10956]]
261 * [[reflections 0.9.9>>http://jira.xwiki.org/browse/XCOMMONS-654]]
262 * [[Groovy 2.3.7>>http://jira.xwiki.org/browse/XCOMMONS-655]]
263 * [[jQuery 1.11.1>>http://jira.xwiki.org/browse/XWIKI-11094]]
264 * [[Doxia 1.6>>http://jira.xwiki.org/browse/XRENDERING-364]]
265 * [[Joda-Time 2.5>>http://jira.xwiki.org/browse/XRENDERING-365]]
266 * [[commons-compress 1.9>>http://jira.xwiki.org/browse/XCOMMONS-665]]
267
268 = Translations =
269
270 The following translations have been updated:
271
272 {{language codes="de, fr, lv"/}}
273
274 = Tested Browsers & Databases =
275
276 {{include reference="TestReports.ManualTestReportTemplateSummary"/}}
277
278 = Performances tests compared to <last super stable version> =
279
280 <a summary of the comparison with latest super stable version>
281
282 More details on <link to the test report>.
283
284 = Known issues =
285
286 * [[Bugs we know about>>http://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]]
287
288 = Backward Compatibility and Migration Notes =
289
290 == General Notes ==
291
292 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.
293
294 == Programming Rights disabled for TextArea Properties ==
295
296 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.
297
298 == API Breakages ==
299
300 The following APIs were modified since XWiki 6.2.4:
301
302 * Add scm informations to extensions descriptors. Should be safe enough since most repository handlers extend AbstractExtension instead of directly implement Extension(((
303 {{code language="none"}}
304 org.xwiki.extension.Extension: Method 'public org.xwiki.extension.ExtensionIssueManagement getIssueManagement()' has been added to an interface
305 {{/code}})))
306
307 * Add issue management informations to extensions descriptors. Should be safe enough since most repository handlers extend AbstractExtension instead of directly implement Extension(((
308 {{code language="none"}}
309 org.xwiki.extension.Extension: Method 'public org.xwiki.extension.ExtensionScm getScm()' has been added to an interface
310 {{/code}})))
311
312 * Never really been supposed to be exposed as an API.(((
313 {{code language="none"}}
314 com.xpn.xwiki.objects.BaseElement: Accessibility of field localEntityReferenceSerializer has been weakened from protected to private
315 com.xpn.xwiki.doc.XWikiDocument: Method 'public java.lang.String ajc$privMethod$com_xpn_xwiki_doc_XWikiDocumentCompatibilityAspect$com_xpn_xwiki_doc_XWikiDocument$serializeReference(org.xwiki.model.reference.DocumentReference, org.xwiki.model.reference.EntityReferenceSerializer, org.xwiki.model.reference.DocumentReference)' has been removed
316 {{/code}})))
317
318 * Changed the LESSCache interface and the LESS Script Service because the cache was poorly designed (see: [[XWIKI-10776>>http://jira.xwiki.org/browse/XWIKI-10776]]).(((
319 {{code language="none"}}
320 org.xwiki.lesscss.LessCompilerScriptService: Method 'public boolean clearCache(java.lang.String)' has been removed
321 org.xwiki.lesscss.LESSCache: Method 'public void clear(java.lang.String)' has been removed
322 org.xwiki.lesscss.LESSCache: Method 'public void clearFromColorTheme(java.lang.String)' has been added to an interface
323 org.xwiki.lesscss.LESSCache: Method 'public void clearFromFileSystemSkin(java.lang.String)' has been added to an interface
324 org.xwiki.lesscss.LESSCache: In method 'public java.lang.Object get(java.lang.String, java.lang.String, java.lang.String, java.lang.String)' the number of arguments has changed
325 org.xwiki.lesscss.LESSCache: In method 'public void set(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object)' the number of arguments has changed
326 {{/code}})))

Get Connected