Wiki source code of XWiki Enterprise 2.2

Version 1.1 by Thomas Mortagne on 2010/02/16

Hide last authors
Thomas Mortagne 1.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}{{toc/}}{{/box}}
2
3 First milestone of the XWiki Enterprise 2.2 version ([[Roadmap>>enterprise:Main.Roadmap]]).
4
5 The highlights of this release are: the possibility to register wiki macros for any user or wiki, improvements of the import interface, support for OOXML (MS Office 2007) documents in the office import feature, started introducing the new Model, new UIs for viewing the contents of the document and attachment trash, and further improvements towards UI consistency and accessibility.
6
7 = New and Noteworthy (since XWiki Enterprise 2.1.2) =
8
9 == New XAR Import UI ==
10
11 The XAR import interface has been completely revamped. The new interface (see screenshots below) now provides:
12
13 * More explicit options regarding revision history handling
14 * The new option to **add a new version to existing documents** instead of overriding them
15 * A rich UI that allows to select/unselect whole spaces at once
16 * Support for importing when no javascript is available. The UI degrades nicely to a less rich interface
17
18 [[image:ReleaseNotesXWikiEnterprise22M1@importer.png||width="700"]]
19
20 == UI for Deleted documents & attachments ==
21
22 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//.
23
24 image:ReleaseNotesXWikiEnterprise22M1@trash1.png
25
26 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.
27
28 image:ReleaseNotesXWikiEnterprise22M1@trash2.png
29
30 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.
31
32 image:ReleaseNotesXWikiEnterprise22M1@trash3.png
33
34 == New Profile & WatchList UI ==
35
36 * Complete overhaul of the Profile UI(((
37 [[[[image:ReleaseNotesXWikiEnterprise22M2@profile-home.png||style="border:1px solid black; padding:1px; display:block; width: 800px"]]>>attach:ReleaseNotesXWikiEnterprise22M2@profile-home.png]]
38 )))
39 * Inclusion of the WatchList manager page into the Profile as a tab(((
40 [[[[image:ReleaseNotesXWikiEnterprise22M2@profile-watchlist.png||style="border:1px solid black; padding:1px; display:block; width: 800px"]]>>attach:ReleaseNotesXWikiEnterprise22M2@profile-watchlist.png]]
41 )))
42 * Inline-based editing for modifying profile details(((
43 [[[[image:ReleaseNotesXWikiEnterprise22M2@profile-edit.png||style="border:1px solid black; padding:1px; display:block;"]]>>attach:ReleaseNotesXWikiEnterprise22M2@profile-edit.png]]
44 )))
45 * Added Profile tab for managing Profile preferences
46 * Converted to XWiki Syntax 2.0
47
48 == New Registration page ==
49
50 [[[[image:ReleaseNotesXWikiEnterprise22M2@registration.png||style="border:1px solid black; padding:1px; display:block; width: 800px"]]>>attach:ReleaseNotesXWikiEnterprise22M2@registration.png]]
51
52 * Ability to display a Captcha for spam prevention.
53 * All fields are checked by client-side script as the user types, then checked by the server for security.
54 * One-click login after registration.(((
55 [[image:ReleaseNotesXWikiEnterprise22M2@OneClickLogin.png||width="500"]]
56 )))
57 * Easy for administrators to add fields, configuration with code.
58 * Can be imported/edited without programming rights.
59 * Works on older wikis if LiveValidation is imported (Captcha won't appear)
60
61 == New Menu in Edit mode ==
62
63 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).
64
65 image:ReleaseNotesXWikiEnterprise22M2@editmodeui.png
66
67 == Comments UI improvements ==
68
69 == WYSIWYG and Rendering improvements ==
70
71 * Add API to find the syntax of the executing document from scripts
72 * Macros descriptors now have translations
73
74 === Edit comment ===
75
76 The users have the possibility to edit their comments.
77
78 [[[[image:editcomment.png||style="border:1px solid black; padding:1px; display:block;"]]>>attach:editcomment.png]]
79
80 === Preview comment ===
81
82 The users have the possibility to preview their comment before submitting it.
83
84 [[[[image:previewcomment1.png||style="border:1px solid black; padding:1px; display:block;"]]>>attach:previewcomment1.png]]
85
86 [[[[image:previewcomment2.png||style="border:1px solid black; padding:1px; display:block;"]]>>attach:previewcomment2.png]]
87
88 == General UI improvements ==
89
90 * In the wiki source code viewer, allow to toggle line numbers faster from Javascript
91 * Enable full screen view when displaying the wiki source code (viewer=code)
92 * Internationalize macro descriptors
93 * ActionMenu: Add Profile submenu item to the "current user" menu
94 image:ReleaseNotesXWikiEnterprise22M1@XSCOLIBRI-170.png
95 * Reorder the document actions in the "More actions" menu: copy, rename, delete
96 * More UI components make use of the (recently introduced) color theme
97 * Have all panels have nice readable names
98 * Allow to copy a document's default language + all translations in the copy menu action
99
100 == Contextual wikimacros ==
101
102 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.
103
104 == Development improvements ==
105
106 * Added support for "xcontext" binding in 1.0 groovy macro
107 * Allow set to null in velocity
108 * Add an API method for creating a LinkedHashMap
109 * New APIs for accessing deleted attachments from the trash
110 * The class wizard should propose to add a SheetClass object to the class sheet
111 * Add support for 'on page' style extensions
112
113 == Office import improvements ==
114
115 * Added support for Office2007 document formats
116
117 == Blog improvement ==
118
119 * Add the Create a new post to category pages - when used by default select that category
120
121 == Dependencies upgrade ==
122
123 * Upgraded to Groovy 1.7
124 * Upgrade to GWT 2.0.0
125
126 == New Model module with Reference implementation ==
127
128 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 milestone 2.
129
130 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).
131
132 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.2 Milestone 2 and beyond.
133
134 == Miscellaneous ==
135
136 * Always use UTF-8 for URL encoding
137 * Attachments should produce document modification events
138 * New user profile pages are created in XWiki Syntax 2.0
139 * New zh_TW translation
140
141 * Lots of accessibility fixes
142 * Lots of bugs fixes
143
144 = Known issues =
145
146 * [[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]]
147
148 = Backward Compatibility and Migration Notes =
149
150 == Important non-compatible changes ==
151
152 {{warning}}
153 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.
154 {{/warning}}
155
156 {{warning}}
157 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.
158 {{/warning}}
159
160 This means that the following script will generate a different result:
161
162 {{code language="none"}}
163 #set($s = 'abc')
164 $s
165 #set($s = $util.null)
166 $s
167 {{/code}}
168
169 While previously the result would have been ##abc abc##, now it is ##abc $s##.
170
171 Special care must be taken care with constructs like the following:
172
173 {{code language="none"}}
174 #set($var = '')
175 #set($var = $xwiki.methodThatMightReturnNull())
176 #if($var != '')
177 The method succeeded
178 #else
179 The method failed
180 #end
181 {{/code}}
182
183 Since ##null != ''## in Velocity, now a different branch will be executed. The following rewrites work.
184
185 Works in both modes, with or without null allowed:
186 {{code language="none"}}
187 #set($var = '')
188 #set($var = $xwiki.methodThatMightReturnNull())
189 #if("$!var" != '')
190 The method succeeded
191 #else
192 The method failed
193 #end
194 {{/code}}
195
196 Works only in the new mode, with null allowed, but is shorter, slightly faster, and more familiar for java developers:
197 {{code language="none"}}
198 #set($var = $xwiki.methodThatMightReturnNull())
199 #if($!var != $util.null)
200 The method succeeded
201 #else
202 The method failed
203 #end
204 {{/code}}
205
206 == Captcha ==
207
208 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 it if you don't have any local modification obviously).
209
210 == Removed pages ==
211
212 * Main.RecentMembers as been removed from default XWiki Enterprise xar
213
214 == General Notes ==
215
216 {{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}}
217
218 You may also want to [[import the default wiki XAR>>Main.Download]] in order to benefit from the improvements listed above.
219
220 {{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}}
221
222 == Migration Notes ==
223
224 * The new parser/serializer for document names comes with new features and changes some behaviors:
225 ** introducing escaping means:
226 *** ##\## which is now the escaping character needs to be doubled in full document name, as in ##Space.Docu\\ment##, which means space ##Space## and document ##Docu\ment##
227 *** 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##
228 ** 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
229 * 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.
230 * CoreConguration#getSyntax now returns a Syntax object instead of a String
231
232 = Dependencies =
233
234 This release includes the following modules in the specified versions since XWiki Enterprise 2.1.2 was released.
235
236 == Core/Web ==
237
238 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
239 |##com.xpn.xwiki.platform##|##xwiki-*##|2.2-milestone-1|2.1.2|[[jira>>http://jira.xwiki.org/jira/browse/XWIKI]]
240 |##org.xwiki.platform##|##xwiki-*##|2.2-milestone-1|2.1.2|[[jira>>http://jira.xwiki.org/jira/browse/XWIKI]]
241
242 == Applications ==
243
244 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
245 |##com.xpn.xwiki.platform.applications##|##xwiki-application-administration##|1.25|1.21|[[jira>>http://jira.xwiki.org/jira/browse/XAADMINISTRATION]]
246 |##com.xpn.xwiki.platform.applications##|##xwiki-application-blog##|1.20|1.18|[[jira>>http://jira.xwiki.org/jira/browse/XABLOG]]
247 |##com.xpn.xwiki.platform.applications##|##xwiki-application-officeimporter##|1.13|1.12|[[jira>>http://jira.xwiki.org/jira/browse/XAOFFICE]]
248 |##com.xpn.xwiki.platform.applications##|##xwiki-application-panels##|1.34|1.30|[[jira>>http://jira.xwiki.org/jira/browse/XAPANELS]]
249 |##com.xpn.xwiki.platform.applications##|##xwiki-application-scheduler##|1.16|1.15|[[jira>>http://jira.xwiki.org/jira/browse/XASCH]]
250 |##com.xpn.xwiki.platform.applications##|##xwiki-application-statistics##|1.6|1.5|[[jira>>http://jira.xwiki.org/jira/browse/XASTATS]]
251 |##com.xpn.xwiki.platform.applications##|##xwiki-application-tag##|1.9|1.8|[[jira>>http://jira.xwiki.org/jira/browse/XATAG]]
252 |##com.xpn.xwiki.platform.applications##|##xwiki-application-watchlist##|1.26|1.23|[[jira>>http://jira.xwiki.org/jira/browse/XPWATCHLIST]]
253 |##com.xpn.xwiki.platform.applications##|##xwiki-application-webdav##|1.3|1.2|[[jira>>http://jira.xwiki.org/jira/browse/XAWEBDAV]]
254 |##com.xpn.xwiki.platform.applications##|##xwiki-application-wiki-macro-bridge##|1.3|1.2|[[jira>>http://jira.xwiki.org/jira/browse/XAWMB]]
255
256 == Plugins ==
257
258 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
259 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-activitystream##|1.6|1.5|[[jira>>http://jira.xwiki.org/jira/browse/XPAS]]
260 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-jodatime##|1.3|1.3|[[jira>>http://jira.xwiki.org/jira/browse/XPJODA]]
261 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-lucene##|1.15|1.12|[[jira>>http://jira.xwiki.org/jira/browse/XPLUCENE]]
262 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-mailsender##|1.13|1.13|[[jira>>http://jira.xwiki.org/jira/browse/XPMAIL]]
263 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-scheduler##|1.16|1.15|[[jira>>http://jira.xwiki.org/jira/browse/XASCH]]
264 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-skinx##|1.13|1.12|[[jira>>http://jira.xwiki.org/jira/browse/XSKINX]]
265 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-tag##|1.9|1.8|[[jira>>http://jira.xwiki.org/jira/browse/XATAG]]
266 |##com.xpn.xwiki.platform.plugins##|##xwiki-plugin-watchlist##|1.26|1.23|[[jira>>http://jira.xwiki.org/jira/browse/XPWATCHLIST]]
267
268 == Skins ==
269
270 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
271 |##com.xpn.xwiki.platform.skins##|##xwiki-skin-albatross##|1.27|1.26|[[jira>>http://jira.xwiki.org/jira/browse/XSALBATROSS]]
272 |##com.xpn.xwiki.platform.skins##|##xwiki-skin-colibri##|1.12|1.8|[[jira>>http://jira.xwiki.org/jira/browse/XSCOLIBRI]]
273 |##com.xpn.xwiki.platform.skins##|##xwiki-skin-toucan##|1.32|1.31|[[jira>>http://jira.xwiki.org/jira/browse/XSTOUCAN]]
274
275 == Top Level POM ==
276
277 |=Group Id|=Artifact Id|=New Version|=Old Version
278 |##com.xpn.xwiki.platform##|##xwiki##|29|29
279
280 == Tools ==
281
282 |=Group Id|=Artifact Id|=New Version|=Old Version|=JIRA URL
283 |##org.xwiki.platform.tools##|##xwiki-configuration-resources##|1.36|1.36|[[jira>>http://jira.xwiki.org/jira/browse/XTCONFRES]]
284 |##org.xwiki.platform.tools##|##xwiki-jetty-resources##|1.17|1.17|[[jira>>http://jira.xwiki.org/jira/browse/XTJETTY]]
285 |##org.xwiki.platform.tools##|##xwiki-license-resources##|1.1|1.1|[[jira>>http://jira.xwiki.org/jira/browse/XTLICENSE]]
286 |##org.xwiki.platform.tools##|##xwiki-packager-plugin##|1.15|1.15|[[jira>>http://jira.xwiki.org/jira/browse/XTPACKAGER]]
287 |##org.xwiki.platform.tools##|##xwiki-rootwebapp##|1.3|1.3|[[jira>>http://jira.xwiki.org/jira/browse/XTROOT]]
288 |##org.xwiki.platform.tools##|##standards-validator##|1.1|1.1|[[jira>>http://jira.xwiki.org/jira/browse/XTVALIDATOR]]
289 |##org.xwiki.platform.tools##|##xwiki-xar-handlers##|1.9|1.9|[[jira>>http://jira.xwiki.org/jira/browse/XTXARHANDLER]]
290 |##org.xwiki.platform.tools##|##xwiki-xar-plugin##|1.13|1.13|[[jira>>http://jira.xwiki.org/jira/browse/XPXARPLUGIN]]
291 |##org.xwiki.platform.tools##|##xwiki-verification-resources##|1.14|1.14|[[jira>>http://jira.xwiki.org/jira/browse/XTVERIFICATIONS]]

Get Connected