Wiki source code of XWiki Enterprise 2.2

Version 28.1 by Sergiu Dumitriu on 2010/02/16

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}{{toc/}}{{/box}}
2
3 This release contains many important UI improvements of existing features (xar import, user registration, comments, etc.), and introduces the new Model API starting with a new ##EntityReference## and related tools to remove all String manipulations around documents and attachment names.
4
5 = New and Noteworthy (since XWiki Enterprise 2.1.2) =
6
7 == New XAR Import UI ==
8
9 The XAR import interface has been completely revamped. The new interface (see screenshots below) now provides:
10
11 * More explicit options regarding revision history handling
12 * The new option to **add a new version to existing documents** instead of overriding them
13 * A rich UI that allows to select/unselect whole spaces at once
14 * Support for importing when no javascript is available. The UI degrades nicely to a less rich interface
15
16 image:import.png
17
18 == UI for Deleted documents & attachments ==
19
20 While deleted documents and attachments have been stored in a trash instead of being completely deleted since XWiki 1.2, there was no general interface for viewing the contents of the trash. This has been remedied by the introduction of two new tabs in the wiki's Document Index, //Deleted Documents// and //Deleted Attachments//.
21
22 image:ReleaseNotesXWikiEnterprise22M1@trash1.png
23
24 Both use the livetable, thus allowing filtering and ordering for easier browsing. A document from the trash can be viewed, permanently deleted, or restored if the location is still available.
25
26 image:ReleaseNotesXWikiEnterprise22M1@trash2.png
27
28 The attachment trash contains only attachments deleted from a document, and not attachments that were deleted together with their owner document; in the latter case, the attachments are kept together with the document in the document trash. For attachments, there is no restore option yet, it will be implemented in a future release.
29
30 image:ReleaseNotesXWikiEnterprise22M1@trash3.png
31
32 == New Profile & WatchList UI ==
33
34 * Complete **overhaul of the Profile UI**: better display of the user information, recent changes by the user are shown, different tabs for user details, user settings, and watchlist information(((
35 image:profile.png
36 )))
37 * Improved inline-based editing for modifying profile details(((
38 image:profileedit.png
39 )))
40 * Inclusion of the **WatchList manager** page into the Profile as a tab(((
41 image:watchlist.png
42 * Added a tab in the //Profile// for managing **user preferences**, which is currently rather small, but will be improved later to include more settings(((
43 image:preferences.png
44
45 image:preferencesedit.png
46 )))
47
48 * User profiles have been converted to XWiki Syntax 2.0
49
50 == New Registration page, new CAPTCHA implementation ==
51
52 image:registration.png
53
54 * Ability to display a Captcha for spam prevention.
55 * All fields are checked by client-side script as the user types, then checked by the server for security.
56 * One-click login after registration.(((
57 image:autologin.png
58 )))
59 * Easy for administrators to add new fields, configuration with code.
60 * The registration page can be imported/edited without programming rights, allowing easier customization of the registration in a wiki farm
61 * Works on older wikis if LiveValidation is imported (Captcha won't appear)
62
63 == New Menu in Edit mode ==
64
65 The different edition modes that used to be in a separate Panel are now in a new edit menu (similarly to the menu you get in view mode).
66
67 image:editmenu.png
68
69 == Comments UI improvements ==
70
71 === Preview comment ===
72
73 The users have the possibility to preview their comment before submitting it. A current known limitation is that the preview does not work for unauthenticated users.
74
75 image:commentpreview.png
76
77 image:commentpreviewing.png
78
79 === Edit comment ===
80
81 The users have the possibility to edit their comments. This only works for authenticated users, since there is no way of knowing which unauthenticated user created a guest comment.
82
83 image:commentedit.png
84
85 image:commentediting.png
86
87 == WYSIWYG and Rendering improvements ==
88
89 * Add API to find the syntax of the executing document from scripts
90 * Macros descriptors can now be translatated
91
92 image:wysiwygl10n.png
93
94 image:wysiwygl10n2.png
95
96 == General UI improvements ==
97
98 * In the wiki source code viewer, allow to toggle line numbers faster from Javascript
99 * Enable full screen view when displaying the wiki source code (viewer=code)
100 * ActionMenu: Add Profile submenu item to the "current user" menu(((
101 image:usermenu.png
102 )))
103 * Reorder the document actions in the "More actions" menu: copy, rename, delete(((
104 image:moreactionsmenu.png
105 )))
106 * More UI components make use of the (recently introduced) color theme
107 * All panels have nice readable names
108 * Allow to copy a document's default language + all translations in the copy menu action(((
109 image:copyl10n.png
110 )))
111
112 == Contextual wikimacros ==
113
114 Previously, [[wiki macros>>platform:DevGuide.WikiMacroTutorial]] could only be defined by users with administrator rights, and only in the main wiki (when in a virtual wiki farm). It's now possible for any user to register wiki macros, and in any wiki. However, this follows some user rights restrictions, preventing a limited user to write dangerous scripts available to all other users. For example, if the user does not have the proper rights, only he will see and use the macro he registered. To make the macro available globally, an administrator must re-save it.
115
116 == New Model module with Reference implementation ==
117
118 The goal is to provide [[APIs>>http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-model/]] to remove all String manipulations around documents and attachment names. It also introduces the concept of Reference for any entity of the model and the parser/serializer associated. For now Wiki, Space, Document and attachment are supported; classes objects and properties should come in 2.3 branch.
119
120 From a user point of view this will result in supporting any character in document names for example. In addition, this is also a step in the direction of supporting nested spaces (the storage would also need to be changed to support that).
121
122 In practice the existing code has not yet been fully refactored to benefit from the new implementation. The work has been started in XWiki Enterprise 2.2 Milestone 1 and will continue in XWiki Enterprise 2.3 and beyond.
123
124 == Development improvements ==
125
126 * Added support for "xcontext" binding in 1.0 groovy macro
127 * Allow set to null in velocity
128 * Add an API method for creating a LinkedHashMap
129 * New APIs for accessing deleted attachments from the trash
130 * The class wizard should propose to add a SheetClass object to the class sheet
131 * Add support for 'on page' style extensions
132
133 == Office import improvements ==
134
135 * Added support for Office2007 document formats
136
137 == Blog improvement ==
138
139 * Added the Create a new post to category pages - when used by default select that category
140
141 == Dependencies upgrade ==
142
143 * Upgraded to Groovy 1.7
144 * Upgrade to GWT 2.0.0
145
146 == Miscellaneous ==
147
148 * Always use UTF-8 for URL encoding
149 * Attachments should produce document modification events
150 * New user profile pages are created in XWiki Syntax 2.0
151 * New zh_TW translation
152
153 * Lots of accessibility fixes
154 * Lots of bugs fixes
155
156 = Known issues =
157
158 * [[Bugs we know about>>http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?reset=true&&type=1&pid=10010&resolution=-1&sorter/field=updated&sorter/order=DESC]]
159
160 = Backward Compatibility and Migration Notes =
161
162 == Important non-compatible changes ==
163
164 {{warning}}
165 The way URLs are generated and parsed has changed. While previously the wiki encoding was used to convert non-ASCII bytes to their ##%XY## escapes, as allowed by the older HTTP/URL specifications, now all URLs escape the UTF-8 bytes of the path, to better adhere to the modern URI specification. This should only affect non-UTF-8 wikis, and only by breaking some bookmarks.
166 {{/warning}}
167
168 {{warning}}
169 The velocity configuration has been changed so that setting ##null## values to variables is now allowed. This could break some scripts and macros, please check before upgrading.
170 {{/warning}}
171
172 This means that the following script will generate a different result:
173
174 {{code language="none"}}
175 #set($s = 'abc')
176 $s
177 #set($s = $util.null)
178 $s
179 {{/code}}
180
181 While previously the result would have been ##abc abc##, now it is ##abc $s##.
182
183 Special care must be taken care with constructs like the following:
184
185 {{code language="none"}}
186 #set($var = '')
187 #set($var = $xwiki.methodThatMightReturnNull())
188 #if($var != '')
189 The method succeeded
190 #else
191 The method failed
192 #end
193 {{/code}}
194
195 Since ##null != ''## in Velocity, now a different branch will be executed. The following rewrites work.
196
197 Works in both modes, with or without null allowed:
198 {{code language="none"}}
199 #set($var = '')
200 #set($var = $xwiki.methodThatMightReturnNull())
201 #if("$!var" != '')
202 The method succeeded
203 #else
204 The method failed
205 #end
206 {{/code}}
207
208 Works only in the new mode, with null allowed, but is shorter, slightly faster, and more familiar for java developers:
209 {{code language="none"}}
210 #set($var = $xwiki.methodThatMightReturnNull())
211 #if($!var != $util.null)
212 The method succeeded
213 #else
214 The method failed
215 #end
216 {{/code}}
217
218 == Captcha ==
219
220 Captcha related configuration changed in Struts configuration file. If you keep the old file it will fail silently so make sure to use the proper configuration you can find in the new file (or overwrite it if you don't have any local modification obviously).
221
222 == Removed pages ==
223
224 * Main.RecentMembers as been removed from default XWiki Enterprise xar
225
226 == General Notes ==
227
228 {{warning}}If you're running in a multiwiki setup you'll also need to define the property //xwiki.store.migration.databases=all// to your //xwiki.cfg// file or explicitly name all databases to be migrated as in <tt>xwiki.store.migration.databases=db1,db2,...//.{{/warning}}
229
230 You may also want to [[import the default wiki XAR>>Main.Download]] in order to benefit from the improvements listed above.
231
232 {{warning}}Always make sure you compare your //xwiki.cfg// file with the newest version since some configuration parameters were added. Note 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.{{/warning}}
233
234 == Migration Notes ==
235
236 * The new parser/serializer for document names comes with new features and changes some behaviors:
237 ** introducing escaping means:
238 *** ##\## which is now the escaping character needs to be doubled in full document name, as in ##Space.Docu
239 ment##, which means space ##Space## and document ##Docu\ment##
240 *** some generated documents names will now contains ##\## to escape thing like dot in a document name. For example ##Space.Docu\.ment## means space ##Space## and document ##Docu.ment##
241 ** support for the syntax ##wikiname:Document## has been dropped, so in this example "wikiname:Document" will be seen as the document name because no ##.## has been found
242 * If you had Wiki Macros defined in your wiki before, you might want to edit them to check their visibility field since the notion of visibility was introduced in XE 2.2 and the default value is user-visibility.
243 * CoreConguration#getSyntax now returns a Syntax object instead of a String
244
245 = Dependencies =
246
247 This release includes the following modules in the specified versions since XWiki Enterprise 2.1.2 was released.
248
249 == Core/Web ==
250
251 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
252 |##com.xpn.xwiki.platform##|##xwiki-*##|2.2|2.1.2|[[jira>>http://jira.xwiki.org/jira/browse/XWIKI]]
253 |##org.xwiki.platform##|##xwiki-*##|2.2|2.1.2|[[jira>>http://jira.xwiki.org/jira/browse/XWIKI]]
254
255 == Applications ==
256
257 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
258 |##com.xpn.xwiki.platform.applications##|##xwiki-application-administration##|1.26|1.21|[[jira>>http://jira.xwiki.org/jira/browse/XAADMINISTRATION]]
259 |##com.xpn.xwiki.platform.applications##|##xwiki-application-blog##|1.20|1.18|[[jira>>http://jira.xwiki.org/jira/browse/XABLOG]]
260 |##com.xpn.xwiki.platform.applications##|##xwiki-application-officeimporter##|1.13|1.12|[[jira>>http://jira.xwiki.org/jira/browse/XAOFFICE]]
261 |##com.xpn.xwiki.platform.applications##|##xwiki-application-panels##|1.34|1.30|[[jira>>http://jira.xwiki.org/jira/browse/XAPANELS]]
262 |##com.xpn.xwiki.platform.applications##|##xwiki-application-scheduler##|1.16|1.15|[[jira>>http://jira.xwiki.org/jira/browse/XASCH]]
263 |##com.xpn.xwiki.platform.applications##|##xwiki-application-statistics##|1.6|1.5|[[jira>>http://jira.xwiki.org/jira/browse/XASTATS]]
264 |##com.xpn.xwiki.platform.applications##|##xwiki-application-tag##|1.10|1.8|[[jira>>http://jira.xwiki.org/jira/browse/XATAG]]
265 |##com.xpn.xwiki.platform.applications##|##xwiki-application-watchlist##|1.26|1.23|[[jira>>http://jira.xwiki.org/jira/browse/XPWATCHLIST]]
266 |##com.xpn.xwiki.platform.applications##|##xwiki-application-webdav##|1.3|1.2|[[jira>>http://jira.xwiki.org/jira/browse/XAWEBDAV]]
267 |##com.xpn.xwiki.platform.applications##|##xwiki-application-wiki-macro-bridge##|1.3|1.2|[[jira>>http://jira.xwiki.org/jira/browse/XAWMB]]
268
269 == Plugins ==
270
271 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
272 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-activitystream##|1.6|1.5|[[jira>>http://jira.xwiki.org/jira/browse/XPAS]]
273 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-jodatime##|1.3|1.3|[[jira>>http://jira.xwiki.org/jira/browse/XPJODA]]
274 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-lucene##|1.16|1.12|[[jira>>http://jira.xwiki.org/jira/browse/XPLUCENE]]
275 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-mailsender##|1.13|1.13|[[jira>>http://jira.xwiki.org/jira/browse/XPMAIL]]
276 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-scheduler##|1.16|1.15|[[jira>>http://jira.xwiki.org/jira/browse/XASCH]]
277 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-skinx##|1.13|1.12|[[jira>>http://jira.xwiki.org/jira/browse/XSKINX]]
278 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-tag##|1.10|1.8|[[jira>>http://jira.xwiki.org/jira/browse/XATAG]]
279 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-watchlist##|1.26|1.23|[[jira>>http://jira.xwiki.org/jira/browse/XPWATCHLIST]]
280
281 == Skins ==
282
283 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
284 |##com.xpn.xwiki.platform.skins##|##xwiki-skin-albatross##|1.27|1.26|[[jira>>http://jira.xwiki.org/jira/browse/XSALBATROSS]]
285 |##com.xpn.xwiki.platform.skins##|##xwiki-skin-colibri##|1.12.1|1.8|[[jira>>http://jira.xwiki.org/jira/browse/XSCOLIBRI]]
286 |##com.xpn.xwiki.platform.skins##|##xwiki-skin-toucan##|1.32|1.31|[[jira>>http://jira.xwiki.org/jira/browse/XSTOUCAN]]
287
288 == Top Level POM ==
289
290 |=Group Id|=Artifact Id|=New Version|=Old Version
291 |##com.xpn.xwiki.platform##|##xwiki##|29|29
292
293 == Tools ==
294
295 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
296 |##org.xwiki.platform.tools##|##xwiki-configuration-resources##|1.36|1.36|[[jira>>http://jira.xwiki.org/jira/browse/XTCONFRES]]
297 |##org.xwiki.platform.tools##|##xwiki-jetty-resources##|1.17|1.17|[[jira>>http://jira.xwiki.org/jira/browse/XTJETTY]]
298 |##org.xwiki.platform.tools##|##xwiki-license-resources##|1.1|1.1|[[jira>>http://jira.xwiki.org/jira/browse/XTLICENSE]]
299 |##org.xwiki.platform.tools##|##xwiki-packager-plugin##|1.15|1.15|[[jira>>http://jira.xwiki.org/jira/browse/XTPACKAGER]]
300 |##org.xwiki.platform.tools##|##xwiki-rootwebapp##|1.3|1.3|[[jira>>http://jira.xwiki.org/jira/browse/XTROOT]]
301 |##org.xwiki.platform.tools##|##standards-validator##|1.1|1.1|[[jira>>http://jira.xwiki.org/jira/browse/XTVALIDATOR]]
302 |##org.xwiki.platform.tools##|##xwiki-xar-handlers##|1.9|1.9|[[jira>>http://jira.xwiki.org/jira/browse/XTXARHANDLER]]
303 |##org.xwiki.platform.tools##|##xwiki-xar-plugin##|1.13|1.13|[[jira>>http://jira.xwiki.org/jira/browse/XPXARPLUGIN]]
304 |##org.xwiki.platform.tools##|##xwiki-verification-resources##|1.15|1.14|[[jira>>http://jira.xwiki.org/jira/browse/XTVERIFICATIONS]]

Get Connected