Wiki source code of Release Notes for XWiki 6.1

Last modified by Thomas Mortagne on 2017/03/24

Hide last authors
Guillaume Delhumeau 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 30.1 7 A lot of work has been done for the new Flamingo skin and we hope to make it the default in 6.2. This version also comes with many improvements but also introduce many new APIs and tool for developers like the integration of LESS preprocessor, a new authorization API taking care of the context and its associated script service, a new experimental Mail API, the support of grouped and asynchronous jobs in default job module executor, the possibility to log from any script, a new converter to make easier to manipulate XDOM in Velocity, and many others.
Guillaume Delhumeau 1.1 8
Thomas Mortagne 16.4 9 = New and Noteworthy (since XWiki 6.0.1) =
Guillaume Delhumeau 1.1 10
Thomas Mortagne 33.1 11 [[Full list of issues fixed and Dashboard for 6.1>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=12290]].
Guillaume Delhumeau 1.1 12
Thomas Mortagne 16.4 13 == Flamingo Skin improvements ==
14
15 * Flamingo skin CSS is now computed at the runtime, using the [[LESS Module>>extensions:Extension.LESS Module]].
16 * Thanks to this, we have introduced a compatibility between this skin and the old color themes:
Thomas Mortagne 17.1 17 [[[[image:ReleaseNotesXWiki61M2@flamingo-default.png||width="32%"]]>>attach:ReleaseNotesXWiki61M2@flamingo-default.png]] [[[[image:ReleaseNotesXWiki61M2@flamingo-dusk.png||width="32%"]]>>attach:ReleaseNotesXWiki61M2@flamingo-dusk.png]] [[[[image:ReleaseNotesXWiki61M2@flamingo-mint.png||width="32%"]]>>attach:ReleaseNotesXWiki61M2@flamingo-mint.png]] [[[[image:ReleaseNotesXWiki61M2@flamingo-ruby.png||width="32%"]]>>attach:ReleaseNotesXWiki61M2@flamingo-ruby.png]] [[[[image:ReleaseNotesXWiki61M2@flamingo-nocolortheme.png||width="32%"]]>>attach:ReleaseNotesXWiki61M2@flamingo-nocolortheme.png]]
Thomas Mortagne 16.4 18 * Flamingo has a simplified Add menu
Thomas Mortagne 17.1 19 [[[[image:ReleaseNotesXWiki61M2@flamingo-menu.png]]>>attach:ReleaseNotesXWiki61M2@flamingo-menu.png]]
Guillaume Delhumeau 22.1 20 * Annotations are back!(((
Guillaume Delhumeau 26.1 21 {{image reference="flamingo-annotations.png" width="60%"/}}
Guillaume Delhumeau 22.1 22 )))
Guillaume Delhumeau 3.1 23 * The Annotations enabler is now located in the "More Actions" menu:(((
Guillaume Delhumeau 26.1 24 {{image reference="flamingo-annotations-menu.png"/}}
Guillaume Delhumeau 3.1 25 )))
Ecaterina Moraru (Valica) 5.1 26 * The global menu entries have now double functionality (navigation, menu) again :(((
Thomas Mortagne 19.1 27 {{image reference="flamingo-separation.png"/}}
Ecaterina Moraru (Valica) 5.1 28 )))
Guillaume Delhumeau 9.1 29 * The log-in form has been improved:(((
Thomas Mortagne 19.1 30 {{image reference="login-flamingo.png" width="60%"/}}
Guillaume Delhumeau 9.1 31 )))
Guillaume Delhumeau 12.1 32 * The skin can now be seen on a smartphone, but it is only a first step to have a fully-usable wiki on mobile phones:(((
Thomas Mortagne 19.1 33 {{image reference="flamingo-phone.png"/}}
Guillaume Delhumeau 12.1 34 )))
Guillaume Delhumeau 14.1 35 * Still for mobiles, we have improved the annotation settings panel:(((
Thomas Mortagne 19.1 36 {{image reference="annotations-phone.png"/}}
Guillaume Delhumeau 14.1 37 )))
Thomas Mortagne 16.4 38 * The preview action has been implemented:(((
39 {{image reference="ReleaseNotesXWiki61RC1@preview.png" width="60%"/}}
40 )))
41 * The user's avatar is now displayed in the main menu:(((
42 {{image reference="ReleaseNotesXWiki61RC1@navbar.png" width="60%"/}}
43 )))
44 * 'Share by email' menu entry is moved from 'Page' submenu to 'More actions' submenu:(((
45 {{image reference="ReleaseNotesXWiki61RC1@moreActions.png"/}}
46 )))
47 * Buttons have now gradients:(((
48 {{image reference="ReleaseNotesXWiki61RC1@gradients.png"/}}
49 )))
Thomas Mortagne 19.2 50 * To ensure the compatibility with Internet Explorer 8, the Flamingo skin uses [[Respond.js>>https://github.com/scottjehl/Respond]] and [[HTML5Shiv>>https://github.com/aFarkas/html5shiv/]]. It enables CSS3 media queries and HTML5 tags.
Thomas Mortagne 16.4 51 * A lot of polishing have been made too, in order to have a skin usable in production.
Guillaume Delhumeau 1.1 52
Thomas Mortagne 17.1 53 == Applications Panel improvements ==
Thomas Mortagne 16.4 54
Thomas Mortagne 18.1 55 * It is now possible to change the width of the panel columns:
56
57 {{image reference="ReleaseNotesXWiki61M1@panelWizard.png" width="65%"/}}
58
59 * Inside a panel, you can know the current width with the ##$xwikiPanelWidth## variable.
60
61 * The applications panel has been modified to adapt itself to the panel column width. The design is different when the size is small, to look closer to a "dock" bar:
Thomas Mortagne 17.1 62 [[[[image:ReleaseNotesXWiki61M2@appbar.png||width="32%"]]>>attach:ReleaseNotesXWiki61M2@appbar.png]] (on this screenshot you can see the small version on the left, and the normal version on the right).
Thomas Mortagne 16.4 63
64 == Extension Manager improvements ==
65
Thomas Mortagne 19.2 66 * Extension-related jobs (install, uninstall, install plan calculation, etc.) which are not executing on the same namespace can now be run concurrently. You won't be stuck anymore, trying to install an extension when someone else is doing the same thing somewhere else on a farm.
67 * XWiki now support resolving a Maven extension with a parent from a different Maven repository
Thomas Mortagne 16.4 68
Thomas Mortagne 26.3 69 == Active Installs improvements ==
70
71 The [[Active Installs feature>>extensions:Extension.Active Installs Server Application]] has been improved a lot and a new data format has been set up in order to be able to provide more information, namely:
72
73 * Graphing of Active Installs counter over time
74 * Display pie charts of XWiki versions, Java versions, Servlet Containers and Databases used for Active Installs
75
76 {{image reference="ReleaseNotesXWiki61M1@as-dashboard" width="650px"/}}
77
78 In addition it's now registered in the Applications Panel:
79
80 {{image reference="ReleaseNotesXWiki61M1@activeinstallsentry.png"/}}
81
Guillaume Delhumeau 1.1 82 == Miscellaneous ==
83
Thomas Mortagne 16.4 84 * The [[user directory>>extensions:Extension.User Directory Application]] is now displaying the user id (alias) instead of the full user document reference which is too technical:(((
Thomas Mortagne 16.5 85 {{image reference="ReleaseNotesXWiki61M1@userDirectory.png" width="400px"/}}
Thomas Mortagne 16.4 86 )))
87 * Added [[ability to configure Pie Chart labels>>extensions:Extension.Chart Macro]] using the ##pie_label_format## property. For example using ##pie_label_format:{0} - {2}## would give:(((
Thomas Mortagne 16.5 88 {{image reference="ReleaseNotesXWiki61M1@pielabel.png"/}}
Thomas Mortagne 16.4 89 )))
90 * More HTTP cache settings, configurable using ##xwiki.httpheaders.cache## in ##xwiki.cfg## or ##headers_nocache## in ##XWiki.XWikiPreferences##:
91 ** ##0##: **no Cache-Control header** sent, use the browser's defaults. RFC 2616 only specifies optional behavior in this case
92 ** ##1## (default): **no-cache**; caches must not serve this response in a subsequent response, but the page is stored for the bf-cache
93 ** ##2##: **no-store, no-cache and max-age=0**; the response will never be reused, not even for bf-cache; note that unsaved changes may be lost
94 ** ##3##: **private**; the response will be cached by personal caches, such as a browser cache
95 ** ##4##: **public**; the response may be cached by both personal and shared caches
Thomas Mortagne 16.5 96 * "Human" requests like ##view## or ##edit## are not waiting XWiki initialization forever and display a waiting page with initialization progress instead: {{image reference="ReleaseNotesXWiki61M1@init.png"/}}
Thomas Mortagne 16.4 97 * [[extensions:Extension.SpaceIndex Macro]] has now a new parameter to sort the document by creation date, modification date, or by name.
98 * User Profile page display email hyperlink (if the email is not obfuscated) on view and preview mode.
99 * The SOLR index synchronization which is automatically run at XWiki startup can now be disabled using ##solr.synchronizeAtStartup## property in ##xwiki.properties## file
Guillaume Delhumeau 1.1 100
Thomas Mortagne 33.1 101 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.1%22&tempMax=1000]] fixed in this release.
Guillaume Delhumeau 1.1 102
103 = For Developers =
104
Thomas Mortagne 16.4 105 == LESS integration ==
Guillaume Delhumeau 1.1 106
Thomas Mortagne 16.4 107 * We are happy to propose the ability of using the [[LESS preprocessor>>http://lesscss.org/]] directly in XWiki. Right now, it is only able to compile some files located in the skin directory in the WAR. See [[extensions:Extension.LESS Module]].
Thomas Mortagne 19.2 108 * The LESS Compiler compress the generated CSS.
Thomas Mortagne 16.4 109 * A new component has been added to compute a Color Theme compatible with [[extensions:Extension.Color Theme Application]] from a LESS file.
Guillaume Delhumeau 1.1 110
Thomas Mortagne 16.4 111 == New Mail module (Experimental) ==
Guillaume Delhumeau 1.1 112
Thomas Mortagne 16.4 113 Allows to send mails in Java and from wiki pages.
114
Vincent Massol 32.2 115 See [[Mail Sender API>>extensions:Extension.Action API]] for all details (it's not installed by default and you'll need to install it through the Extension Manager for example if you wish to try it out. Its extension id is ##org.xwiki.platform:xwiki-platform-mail-send-default##).
Thomas Mortagne 16.4 116
117 Example to send an email from a wiki page:
118
119 {{code language="none"}}
120 {{velocity}}
121 #set ($message = $services.mailsender.createMessage("localhost@xwiki.org", "john@doe.com", "subject"))
122 #set ($discard = $message.addPart("text/plain", "text content"))
123 #set ($discard = $message.send())
124 #set ($discard = $message.waitTillSent(10000))
125 #foreach ($error in $message.getErrors())
126 * $error.message
127 #end
128 {{/velocity}}
129 {{/code}}
130
131 == Job module improvements ==
132
Thomas Mortagne 19.2 133 * Introduced job progress helper API, see [[Job Module>>doc:extensions:Extension.Job Module||anchor="HNotifyaboutprogress"]] for more details.
134 * A new ##org.xwiki.job.JobExecutor## component has been introduce to replace ##org.xwiki.job.JobManager## (which is now deprecated). This component adds support for parallel execution of jobs and also support grouping jobs that need to be executed in the same thread.
Thomas Mortagne 16.4 135
136 See [[extensions:Extension.Job Module]] for more details.
137
138 == Log from a script ==
139
140 A new API to get a SLF4J Logger has been added to the ##logging## script service.
141
142 {{code language="velocity"}}
143 $services.logging.getLogger('My script').info('Hello {}', 'world')
144 {{/code}}
145
146 == New contextual authorization manager role ==
147
148 A new role is now available to ease the replacement of the old Right Service (com.xpn.xwiki.user.api.XWikiRightService).
149 Compared to the old service, the component does not manage authentication which should have been ensured previously if needed. (No redirection to login is ever done)
150 The new component has a similar interface to the AuthorizationManager, but it take care of all external context aspects, like the currently executed macro block, the rendering context restrictions, the dropping of rights, etc...
151 This new role should be used from now on by any component that needs to check rights for the current user, in the current context.
152
153 == New security authorization script service ==
154
155 A new script service is now available to access the default AuthorizationManager and the ContextualAuthorizationManager.
156
157 Here is some sample:
158
159 {{code language="velocity"}}
160 #if ($services.security.authorization.hasAccess("edit"))
161 ... show some UI that require edit access on the current document by the current user ...
162 #end
163 #if ($services.security.authorization.hasAccess("edit", "xwiki:Sandbox.TestPage1"))
164 ... show some UI that require edit access on Sandbox.TestPage1 document by the current user ...
165 #end
166 #if ($services.security.authorization.hasAccess("edit", "xwiki:XWiki.User1", "xwiki:Sandbox.TestPage1"))
167 ... show some UI that require edit access on Sandbox.TestPage1 document by XWiki.User1 ...
168 #end
169 {{/code}}
170
171 {{code language="velocity"}}
172 $services.security.authorization.checkAccess("edit")
173 ... do some task that require edit access ...
174 {{/code}}
175
176 In this second sample, the macro will fail with an AccessDeniedException if the right is not allowed.
177
Thomas Mortagne 29.1 178 == Easier XDOM manipulation from Velocity ==
Thomas Mortagne 16.4 179
180 To be able to use the ##Block.getBlocks(BlockMatcher, Block.Axes)## method on the rendering blocks in the documents XDOM from velocity, a converter has been introduced that maps string expressions to BlockMatcher objects. The current implementation only supports mapping to ClassBlockMatchers, and allows to get all blocks of a given type from the XDOM.
181
182 {{code language="velocity"}}
183 #foreach($headerBlock in $doc.getDocument().getXDOM().getBlocks("class:HeaderBlock", "DESCENDANT"))
184 ... do something with the header block ...
185 {{/code}}
186
Guillaume Delhumeau 1.1 187 == Upgrades ==
188
189 The following dependencies have been upgraded:
190
Thomas Mortagne 33.1 191 * [[Guava 17.0>>https://jira.xwiki.org/browse/XCOMMONS-570]]
192 * [[Jackson 2.3.3>>https://jira.xwiki.org/browse/XCOMMONS-593]]
193 * [[sisu guice 3.2.1>>https://jira.xwiki.org/browse/XCOMMONS-592]]
194 * [[commons-compress 1.8.1>>https://jira.xwiki.org/browse/XCOMMONS-591]]
195 * [[cssparser 0.9.14>>https://jira.xwiki.org/browse/XCOMMONS-590]]
196 * [[commons-lang 3.3.2>>https://jira.xwiki.org/browse/XCOMMONS-589]]
197 * [[JGroups 3.4.4>>https://jira.xwiki.org/browse/XWIKI-10354]]
198 * [[Groovy 2.3.3>>https://jira.xwiki.org/browse/XCOMMONS-598]]
199 * [[Apache Lucene and Solr 4.8.1>>https://jira.xwiki.org/browse/XWIKI-10357]]
200 * [[commons-collections 4.0>>https://jira.xwiki.org/browse/XCOMMONS-605]]
201 * [[httpclient 4.3.4>>https://jira.xwiki.org/browse/XCOMMONS-606]]
202 * [[commons-beanutils 1.9.2>>https://jira.xwiki.org/browse/XCOMMONS-607]]
203 * [[reflections 0.9.9-RC2>>https://jira.xwiki.org/browse/XCOMMONS-608]]
Guillaume Delhumeau 1.1 204
205 == Miscellaneous ==
206
Thomas Mortagne 33.1 207 * [[XCOMMONS-582>>https://jira.xwiki.org/browse/XCOMMONS-582]]: ##$escapetool.json## should be used instead of ##$escapetool.javascript## for escaping manually constructed JSON; ##$jsontool.serialize## should be used for generating JSON, though, since it is safer.
Thomas Mortagne 16.4 208 * All component related API of ##com.xpn.xwiki.web.Utils## are now using the context ##ComponentManager## by default.
209 * We added a new method to the component script service to access the component manager corresponding to a specific namespace:(((
210 {{code language=""}}
211 {{groovy}}
212 def instanceForTestWiki = services.component.getComponentManager("wiki:test").getInstance(SomeRole.class)
213 {{/groovy}}
214 {{/code}}
215 )))
216 * xwiki.cfg file properties are now accessible through ##org.xwiki.configuration.ConfigurationSource## component with role hint ##xwikicfg##
217 * Complete refactoring of the [[Resource module>>extensions:Extension.Resource API]]. Note that the Action module has been removed and folded into the new Resource module.
218 * The ##getInstance## methods in the [[Component Script Service>>extensions:Extension.Component Module||anchor="HAccessfromScripts"]] are now public and return ##null## if the Component cannot be looked up. A ##getLastError()## method was also added to get the last exception.
219 * New converter for ##java.lang.refect.Type## which allows converting from String to Type and opposite in Velocity and wiki macros parameters for example.
220 * The wiki manager API always returns a descriptor for the main wiki, and if there is no descriptor document it returns a "virtual" one that can be saved. Basically it now means that if a wiki exists there is always a corresponding descriptor, even for the main wiki.
Thomas Mortagne 33.1 221 * The "skin" parameter in the URL is now taken into account when generating the links to the skin CSS (see: [[XWIKI-10426>>https://jira.xwiki.org/browse/XWIKI-10426]]).
222 * Filesystem Attachment Storage now allows you to disable cleaning of empty directories on startup since on a large installation this may take considerable time. (see: [[XWIKI-10431>>https://jira.xwiki.org/browse/XWIKI-10431]])
Thomas Mortagne 16.4 223 * Start of implementation of the [[Resource Reference Serializer>>extensions:Extension.Resource API]] notion, still need more work.
Guillaume Delhumeau 1.1 224
225 = Translations =
226
227 The following translations have been updated:
228
Thomas Mortagne 16.4 229 {{language codes="da, de, fr"/}}
Guillaume Delhumeau 1.1 230
231 = Tested Browsers & Databases =
232
Manuel Smeria 16.3 233 {{include reference="TestReports.ManualTestReportXWiki61Summary"/}}
Guillaume Delhumeau 1.1 234
235 = Known issues =
236
Thomas Mortagne 33.1 237 * [[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]]
Guillaume Delhumeau 1.1 238
239 = Backward Compatibility and Migration Notes =
240
241 == General Notes ==
242
243 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.
244
Thomas Mortagne 16.4 245 == API Breakages ==
Guillaume Delhumeau 1.1 246
Thomas Mortagne 16.4 247 The following APIs were modified since XWiki 6.0:
Guillaume Delhumeau 1.1 248
Thomas Mortagne 16.4 249 * Young APIs
Guillaume Delhumeau 1.1 250
Thomas Mortagne 16.4 251 {{code language="none"}}
252 org.xwiki.activeinstalls.server.DataManager: Method 'public com.google.gson.JsonObject countInstalls(java.lang.String, java.lang.String, java.util.Map)' has been added to an interface
253 org.xwiki.activeinstalls.server.DataManager: Method 'public long getInstallCount(java.lang.String)' has been removed
254 org.xwiki.activeinstalls.server.DataManager: Method 'public com.google.gson.JsonObject searchInstalls(java.lang.String, java.lang.String, java.util.Map)' has been added to an interface
255 org.xwiki.activeinstalls.server.script.ActiveInstallsScriptService: Method 'public long getInstallCount(java.lang.String)' has been removed
256 {{/code}}
Guillaume Delhumeau 1.1 257
258 {{code language="none"}}
Thomas Mortagne 16.4 259 org.xwiki.crypto.store.CertificateStore: Class org.xwiki.crypto.store.CertificateStore removed
260 org.xwiki.crypto.store.CertificateStoreException: Class org.xwiki.crypto.store.CertificateStoreException removed
261 org.xwiki.crypto.store.KeyStore: Class org.xwiki.crypto.store.KeyStore removed
262 org.xwiki.crypto.store.KeyStoreException: Class org.xwiki.crypto.store.KeyStoreException removed
Guillaume Delhumeau 1.1 263 {{/code}}
Thomas Mortagne 16.4 264
265 * Not supposed to be public
266
267 {{code language="none"}}
268 com.xpn.xwiki.store.XWikiHibernateBaseStore: In method 'protected void createHibernateSequenceIfRequired(java.lang.String, org.hibernate.Session)' the number of arguments has changed
269 com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Removed org.xwiki.observation.EventListener from the set of implemented interfaces
270 com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Method 'public java.util.List getEvents()' has been removed
271 com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Method 'public java.lang.String getName()' has been removed
272 com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Method 'public void onEvent(org.xwiki.observation.event.Event, java.lang.Object, java.lang.Object)' has been removed
273 {{/code}}

Get Connected