Version 36.1 by Thomas Mortagne on 2015/07/03

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
7 <insert description of release here>
8
9 = New and Noteworthy (since XWiki 7.1) =
10
11 [[Full list of issues fixed and Dashboard for <version>>>http://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=<fill id here>]].
12
Vincent Massol 31.1 13 == Nested Spaces ==
Thomas Mortagne 1.1 14
Thomas Mortagne 15.1 15 {{todo/}}
Thomas Mortagne 1.1 16
17 == Miscellaneous ==
18
19 <insert misc user stuff and important bug fix descriptions here in a list, when they are too small to warrant a section by themselves - Change the version in the URL below!>
20
21 See the [[full list of JIRA issues>>http://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+%22<version>%22&tempMax=1000]] fixed in this release.
22
23 = For Developers =
24
Vincent Massol 31.1 25 == Nested Spaces ==
Thomas Mortagne 15.1 26
Vincent Massol 31.1 27 Since Nested Spaces were already planned and supported in APIs like ##DocumentReference## there are not too many changes for those who were using recent APIs but there is still some and here are the main ones.
Thomas Mortagne 15.1 28
Vincent Massol 31.1 29 === Space reference instead of Space name ===
Thomas Mortagne 15.1 30
31 The heart of the implementation is that the field that used to contain the unique document space now contain the possibly nested space reference. In practice it means that:
32
Vincent Massol 31.1 33 * "##.##" (dot), "##:##" (colon) and "##\##" (baskslash) characters, which are part of a Space name will now be escaped (using the "##\##" character) in the ##space## (##XWD_WEB##) field from the Document's table in the Database. For example a space named ##Space:with.special\char## will be stored as ##{{{Space\:with\.special\\char}}}##.
34 * Same as for the database, the ##XWikiDocument/Document#getSpace()## methods now return a serialized reference to the Space instead of what used to be the unique Space name (basically it return what's in the database). Same logic for ##XWikiDocument#setSpace()##. Those field have been deprecated a long time ago but they are still used in lots of places...
35 * Various APIs are also affected by this Space name to Space reference input change:
Thomas Mortagne 30.1 36 ** ##XWiki#getSpaceDocsName## methods (both in the public and private XWiki API)
Vincent Massol 31.1 37 ** All the default ##XWikiURLFactory## implementation methods accepting a Space as parameter have been modified to accept a serialized Space reference. Extensions/code implementing ##XWikiURLFactory## (or extending classes implementing ##XWikiURLFactory## such as ##XWikiServletURLFactory##) will need to be modified to handle nested spaces passed in the ##space## parameter of the various APIs. Here's how to parse Spaces passed as a String:(((
38 {{code language="java"}}
39 private EntityReferenceResolver<String> relativeEntityReferenceResolver =
40 Utils.getComponent(EntityReferenceResolver.TYPE_STRING, "relative");
41 ...
42 or
43 ...
44 @Inject
45 @Named("relative")
46 private EntityReferenceResolver<String> relativeEntityReferenceResolver;
47 ...
48 private List<String> extractSpaceNames(String spaces)
49 {
50 List<String> spaceNames = new ArrayList<>();
51 // Parse the spaces list into Space References
52 EntityReference spaceReference = this.relativeEntityReferenceResolver.resolve(spaces, EntityType.SPACE);
53 for (EntityReference reference : spaceReference.getReversedReferenceChain()) {
54 spaceNames.add(reference.getName());
55 }
56 return spaceNames;
57 }
58 {{/code}}
59 )))
60 ** Extensions/code implementing ##ExportURLFactoryActionHandler## will also need to be modified to handle nested Spaces passed in the ##space## parameter.
Vincent Massol 31.2 61 * Extensions/code implementing ##EntityReferenceSerializer## or ##DocumentReferenceResolver## must now handle Nested Spaces (in the past they were already supposed to handle Nested Spaces but since it was not used they could take shortcuts and it wasn't visible. It's now going to fail, see [[XWIKI-12191>>http://jira.xwiki.org/browse/XWIKI-12191]]).
Thomas Mortagne 15.1 62
Guillaume Delhumeau 16.1 63 === Space separator properly taken into account ===
Thomas Mortagne 15.1 64
Thomas Mortagne 21.1 65 The reference syntax specification was already indication that "##.##" was supposed to be escaped in the space part of the reference but it was not really taken into account so not escaping it was not making any difference. This is now fixed in the various standard String reference resolvers so a reference that don't follow the specification and did not escaped the "##.##" in the space part will be cut is several nested spaces. Anything that was serialized with one of the standard serializers was properly escaped so not worry here, the issue will be more for hand written or hardcoded String references.
Thomas Mortagne 15.1 66
Thomas Mortagne 26.1 67 === New XAR format ===
68
69 To support exporting/importing nested spaces some changes has been made to the XAR format. The format remain upward and downward compatible (except that you won't get nested spaces in your < 7.2 instance obviously).
70
71 Two new attributes has been added to the ##<xwikidoc>## root XML element
72
73 * ##reference##: the complete local reference of the document in standard reference format. ##<web>## and ##<name>## are deprecated (but still set). ##<web>## keep containing the (unescaped) space name when there is only one space and will contain the space reference when there is several (when imported in a < 7.2 instance a document exported from a nested space will end up in a space having as name the space reference).
74 * ##locale##: the locale of the document. ##<language>## is deprecated. It was not technically needed in the context of nested spaces but it makes having the reference as attribute more consistent. It also make getting all the entries from a new format XAR easier and faster since document space and name would be placed anywhere in the document.
75
Thomas Mortagne 4.1 76 == New reference related APIs ==
Thomas Mortagne 1.1 77
Thomas Mortagne 9.1 78 Various new API around references has been introduced while adding support for nested spaces.
Thomas Mortagne 1.1 79
Thomas Mortagne 9.1 80 === Complete references Providers ===
81
82 Complete references Providers (for DocumentReference, SpaceReference and WikiReference) with default or ##current## hints. They allow getting complete reference created from each default or current part of those references (for example in SpaceReference you end up with the space of the XWikiContext document and the XWikiContext wiki)
83
Thomas Mortagne 6.1 84 {{code language="java"}}
85 @Inject
86 Provider<DocumentReference> defaultDocumentReference;
Thomas Mortagne 4.1 87
Thomas Mortagne 6.1 88 @Inject
89 @Named("current")
90 Provider<DocumentReference> currentDocumentReference;
91 {{/code}}
Thomas Mortagne 9.1 92
93 === org.xwiki.model.reference.EntityReferenceProvider ===
94
95 ##org.xwiki.model.reference.EntityReferenceProvider## replaces ##org.xwiki.model.reference.EntityReferenceValueProvider##. It's essentially the same thing but with ##EntityReference## instead of string which allow getting multiple spaces when you ask for the current ##EntityType.SPACE## for example.
96
Thomas Mortagne 6.1 97 {{code language="java"}}
98 @Inject
99 EntityReferenceProvider provider;
100 {{/code}}
101
Guillaume Delhumeau 35.1 102 === Properly support any kind of reference in getDocument and getURL ===
Thomas Mortagne 9.1 103
104 ##com.xpn.xwiki.XWiki#getDocument(EntityReference)## and ##com.xpn.xwiki.api.XWiki#getDocument(EntityReference)## support any kind of reference properly (e.g. a space reference will return the space home page, an object reference will return the object document reference, etc).
105
Guillaume Delhumeau 35.1 106 Same for ##com.xpn.xwiki.XWiki#getURL(EntityReference)## and ##com.xpn.xwiki.api.XWiki#getURL(EntityReference)##.
107
Thomas Mortagne 9.1 108 === New helpers in EntityReference ===
109
110 * ##boolean equals(EntityReference otherReference, EntityType to)##: same as equals but only take into account reference parts up to the passed entity type (included)
111 * ##boolean equals(EntityReference otherReference, EntityType from, EntityType to)##: same as equals but only take into account reference parts between passed entity types (included)
112 * ##boolean equalsNonRecursive(EntityReference otherReference)##: same as equals but does not take into account the parent
113
Thomas Mortagne 27.1 114 === New helpers in LocalDocumentReference ===
115
116 * ##LocalDocumentReference(String pageName, EntityReference spaceReference)##: allowed created a LocalDocumentReference from a space reference instead of just the space name
117
Thomas Mortagne 34.1 118 === org.xwiki.model.reference.SpaceReferenceResolver ===
119
120 New default ##String## and ##EntityReference## based SpaceReferenceResolver has been added. It's the same behavior then ##DocumentReferenceBehavior## but for spaces.
121
122 {{code language="java"}}
123 @Inject
124 SpaceReferenceResolver<String> stringResolver;
125
126 @Inject
127 SpaceReferenceResolver<EntityReference> referenceResolver;
128 {{/code}}
129
Thomas Mortagne 23.1 130 === New model Script Service helpers ===
Thomas Mortagne 22.1 131
132 * new help to escape an entity name according to default reference syntax as in:(((
133 {{code language="velocity"}}
Thomas Mortagne 23.1 134 $services.model.escape('some.space:with\specialchars', 'SPACE')
Thomas Mortagne 22.1 135 {{/code}}
136
137 will print
138
139 {{code language="nonde"}}
140 some\.space\:with\\specialchars
141 {{/code}}
142 )))
143
Thomas Mortagne 4.1 144 == New readonly XWikiContext provider ==
145
146 You can inject a new "readonly" XWikiContext the following way:
147
148 {{code language="java"}}
149 @Inject
150 @Named("readonly")
Guillaume Delhumeau 25.1 151 Provider<XWikiContext> roXWikiContextProvider;
Thomas Mortagne 4.1 152 {{/code}}
153
Vincent Massol 11.2 154 The difference with default provider is that the readonly one won't try to create a new XWikiContext and will return null if it can't find any. It's been introduce for some low level components that were used during XWikiContext creation but in general it should be used by any component that only search for some XWikiContext property that might be null even in a valid XWikiContext.
Thomas Mortagne 4.1 155
Thomas Mortagne 1.1 156 == Deprecated and Retired projects ==
157
158 <description of deprecated and retired projects>
159
160 == Upgrades ==
161
162 The following dependencies have been upgraded:
163
164 * [[httpclient 4.5>>http://jira.xwiki.org/browse/XCOMMONS-815]]
Thomas Mortagne 2.1 165 * [[cssparser 0.9.16>>http://jira.xwiki.org/browse/XCOMMONS-817]]
Guillaume Delhumeau 3.1 166 * [[less4j 1.12.0>>http://jira.xwiki.org/browse/XWIKI-12161]]
Thomas Mortagne 8.1 167 * [[Joda-Time 2.8.1>>http://jira.xwiki.org/browse/XWIKI-12159]]
Guillaume Delhumeau 16.1 168 * [[Bootstrap 3.3.5>>http://jira.xwiki.org/browse/XWIKI-12211]]
Thomas Mortagne 24.1 169 * [[Infinispan 7.2.3>>http://jira.xwiki.org/browse/XWIKI-12227]]
Thomas Mortagne 36.1 170 * [[HSQLDB 2.3.3>>http://jira.xwiki.org/browse/XE-1491]]
Thomas Mortagne 1.1 171
172 == Miscellaneous ==
173
Eduard Moraru 25.2 174 * Objects, attachments and the document's class are now clearly not considered content, but metadata. Thus, any change in these will set the document's (XWikiDocument) metadataDirty flag to true and not touch the document's contentDirty flag unless there is an actual change in the document's content or title fields. This is also in line with the original intent of the contentAuthor document field. The direct impact of this is that the contentAuthor field will be updated only when the content is changed and thus the programming/script rights of a document will be changed much less often than before and much less by accident.
Thomas Mortagne 32.1 175 * custom Maven properties which have a special meaning (like ##xwiki.extension.features##) are not ##duplicated## in Extension custom properties anymore
Thomas Mortagne 33.1 176 * standard fields names have been added to ##org.xwiki.extension.rating.RatingExtension##
Thomas Mortagne 1.1 177
178 = Translations =
179
180 The following translations have been updated:
181
182 {{language codes="none, none"/}}
183
184 = Tested Browsers & Databases =
185
186 {{include reference="TestReports.ManualTestReportTemplateSummary"/}}
187
188 = Performances tests compared to <last super stable version> =
189
190 <a summary of the comparison with latest super stable version>
191
192 More details on <link to the test report>.
193
194 = Known issues =
195
196 * [[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]]
197
198 = Backward Compatibility and Migration Notes =
199
200 == General Notes ==
201
202 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.
203
Thomas Mortagne 11.1 204 == Issues specific to XWiki 7.2M1 ==
Thomas Mortagne 1.1 205
Thomas Mortagne 15.1 206 === Nested spaces ===
Thomas Mortagne 12.1 207
Vincent Massol 31.1 208 See [[previous Nested spaces section>>||anchor="HNestedSpaces-1"]] for details on what changes in the way some API and the database are dealing with the Document Space.
Thomas Mortagne 12.1 209
Guillaume Delhumeau 14.1 210 === Templates ===
211
212 All the templates specific to [[extensions:Extension.Colibri Skin]] had been moved to it. If your skin depends on some of these templates, you should set Colibri as parent of your skin.
213
Thomas Mortagne 1.1 214 == API Breakages ==
215
216 The following APIs were modified since <project> <version - 1>:
217
218 {{code language="none"}}
219 <clirr output here>
220 {{/code}}

Get Connected