Wiki source code of Release Notes for XWiki 7.0
Last modified by Thomas Mortagne on 2023/10/13
Show last authors
author | version | line-number | content |
---|---|---|---|
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 | This is the first release of the 7.x cycle. It features many improvements for extensions, a simplified Wiki Creation Wizard, improved differences view, integration of a new Tree Widget with the WYSIWYG editor and Index Application, etc. | ||
8 | |||
9 | {{error}}This release introduce a new internal group cache in the security module. This group cache is affected by a serious issue. In certain situations, it causes group members not to be recognized as such, leading to incorrect access decisions. If you follow the XWiki best practices for setting rights (which recommends to minimize use of denies), this issue will result mostly in unexpected access denials, which obviously does not seriously compromise the security but cause real annoyance to legitimate users. See {{jira url="https://jira.xwiki.org" style="enum"}}XWIKI-12016{{/jira}} for more technical detail about this issue.{{/error}} | ||
10 | |||
11 | Regarding extensions, we now have the ability to organize and filter extensions by category in the Extension Repository, the install date and the user that performed the install are now available in the extension details, the extensions that were installed explicitly are now displayed distinctly, etc. | ||
12 | |||
13 | We improved the difference views for document history and extension upgrade process, by showing a difference summary between the two versions, detailed changes to objects definitions, etc. | ||
14 | |||
15 | Developers may enjoy a new application to edit wiki Skins, a new Finder Plugin for the Tree Widget and API improvements to the Mail Sender and Extension Manager modules. | ||
16 | |||
17 | The Watchlist module has a new component based implementation and also there is an experimental Realtime Watchlist Notification feature. | ||
18 | |||
19 | XWiki also moved to Servlet 3.0.1 which means various old application servers versions are not supported anymore and the old Lucene search module was finally retired to Contrib. | ||
20 | |||
21 | = New and Noteworthy (since XWiki 6.4) = | ||
22 | |||
23 | [[Full list of issues fixed and Dashboard for 7.0>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=13092]]. | ||
24 | |||
25 | == Improved Document Diff View == | ||
26 | |||
27 | The document history view that shows the differences between two versions of a document has been improved: | ||
28 | |||
29 | * The new summary gives you an overview of the changes and provides fast navigation. | ||
30 | * The changes made to the short text properties (e.g. title, which has only one line of text) are more readable now. | ||
31 | * You can see the changes that have been made to a text attachment. For non-text attachments you can see the difference in the file size. | ||
32 | * You can see detailed changes to a class definition (e.g. which meta properties, like 'Custom Display', have been modified). | ||
33 | |||
34 | {{image reference="ReleaseNotesXWiki70RC1@history-compareDocumentVersions.png"/}} | ||
35 | |||
36 | See the [[Version Control feature documentation>>Documentation.UserGuide.Features.VersionControl]] for more details. | ||
37 | |||
38 | == Extension Diff View == | ||
39 | |||
40 | You can now view the changes that have been made to the wiki pages of an installed extension. This can help you review your customizations to a XAR extension before doing an upgrade. The wiki pages of the transitive dependencies are also taken into account. | ||
41 | |||
42 | {{image reference="ReleaseNotesXWiki70RC1@extension-changes.png"/}} | ||
43 | |||
44 | See more on the [[Extension Manager Application documentation>>extensions:Extension.Extension Manager Application||anchor="HChanges"]] page. | ||
45 | |||
46 | == Extension Manager and Repository Improvements == | ||
47 | |||
48 | === Extension installed as dependencies === | ||
49 | |||
50 | You can now distinguish between the extensions that have been installed directly (by you or a different user) and the extensions that have been installed as transitive dependencies, when looking at the list of installed extensions. | ||
51 | |||
52 | {{image reference="ReleaseNotesXWiki70M2@EM-extensionDescription.png"/}} | ||
53 | |||
54 | Also, the details of an installed extension now include the install date and the user that installed that extension. This information will be available only for extensions that are installed or upgraded from now on (directly or indirectly). Extensions that are already installed have this information only if they were installed directly (not as dependency). | ||
55 | |||
56 | === Extension categories === | ||
57 | |||
58 | It's now possible to indicate a predefined category for each extension in the repository: | ||
59 | |||
60 | {{image reference="ReleaseNotesXWiki70M2@category.png"/}} | ||
61 | |||
62 | It's also possible to filter and order extension by category: | ||
63 | |||
64 | {{image reference="ReleaseNotesXWiki70M2@categorylivetable.png"/}} | ||
65 | |||
66 | == Wiki Creation == | ||
67 | |||
68 | * During the wiki creation, Distribution Wizard is not triggered anymore. Instead, the whole wiki creation process has been moved into a job, and everything happens inside the Wiki Creation Wizard (with a progress bar and a logging area):((( | ||
69 | {{image reference="ReleaseNotesXWiki70M2@WikiCreationStep.png" width="45%"/}} {{image reference="ReleaseNotesXWiki70M2@WikiCreationStepEnd.png" width="45%"/}} | ||
70 | ))) | ||
71 | * The Wiki Provisioning Step has been integrated into the job too. | ||
72 | * When a wiki is created from a template, we now have a message in the logs that displays which document is copied. | ||
73 | |||
74 | == Document Index Tree Finder == | ||
75 | |||
76 | You can now easily find documents and attachments from the tree view of the Document Index. | ||
77 | |||
78 | {{image reference="ReleaseNotesXWiki70M1@index-alldocs-tree-finder.png"/}} | ||
79 | |||
80 | Checkout the [[Index Application>>extensions:Extension.Index Application]] for more details. | ||
81 | |||
82 | == The WYSIWYG Editor Uses the New Tree Widget == | ||
83 | |||
84 | We have integrated the new [[Tree Widget>>extensions:Extension.Tree Widget]] into the [[WYSIWYG Editor>>Documentation.UserGuide.Features.WysiwygEditor]]. | ||
85 | |||
86 | {{image reference="ReleaseNotesXWiki70M1@link2wikistep2.png"/}} | ||
87 | |||
88 | == Experimental Realtime Watchlist Notification == | ||
89 | |||
90 | We have added a new notification option for WatchList that notifies users of changes on their watched documents in real time (i.e. as soon as they happen). | ||
91 | |||
92 | {{image reference="ReleaseNotesXWiki70RC1@watchlistRealtime.png"/}} | ||
93 | |||
94 | This feature is currently **experimental and disabled by default**. Fore more information on it and how to enable it, please see [[the documentation>>extensions:Extension.Watchlist Application||anchor="HSince7.0RC1"]]. | ||
95 | |||
96 | == Miscellaneous == | ||
97 | |||
98 | * Rendering page performances have been improved when using the Flamingo skin (thanks to the usage of [[Less4j>>https://github.com/SomMeri/less4j]] for the integration of the LESS language). | ||
99 | * When deploying XWiki as ROOT in your Servlet Container [[you must now set the ##xwiki.webapppath## property to empty>>Documentation.AdminGuide.ShortURLs||anchor="HDeployingasROOT"]] as in:((( | ||
100 | {{code language="none"}} | ||
101 | xwiki.webapppath= | ||
102 | {{/code}} | ||
103 | |||
104 | The reason is that XWiki cannot guess the webapp context from the URL in this case. This seemed to work on previous versions but it was actually leading to errors from time to time, depending on what URL was used when doing the first request on the XWiki instance. | ||
105 | ))) | ||
106 | * Debian packages based on Tomcat 8 have been added. | ||
107 | * Distribution Wizard should not ask to login when installing from scratch anymore | ||
108 | * Renamed the WatchList notification options to something simpler and clearer:((( | ||
109 | {{image reference="ReleaseNotesXWiki70RC1@watchlistNotifiers.png"/}} | ||
110 | ))) | ||
111 | * The user/group displayer is now showing the wiki for local users/groups in edit mode too (the wiki was shown only in view mode previously).((( | ||
112 | {{image reference="ReleaseNotesXWiki70M2@userDisplayer-editMode-wiki.png"/}} | ||
113 | ))) | ||
114 | * When deleting a wiki the confirmation page now asks to type in the wiki identifier to prevent accidental deletion.((( | ||
115 | {{image reference="ReleaseNotesXWiki70M2@delete-wiki-confirm-screen.png"/}} | ||
116 | ))) | ||
117 | * The ##Main.RssFeeds## documentation page has been removed since it wasn't linked from anywhere, provided little value in itself and wasn't dynamic (the RSS features for each extensions depends on the extension being installed and if the extension is not installed or uninstalled the ##RssFeeds## page gets broken links). | ||
118 | |||
119 | * Differentiate external links from internal links using an icon((( | ||
120 | {{image reference="ReleaseNotesXWiki70M1@externalLinkIcon.png"/}} | ||
121 | ))) | ||
122 | * The ##@headings-color## property is now editable in the [[Flamingo Theme Editor>>extensions:Extension.Flamingo Theme Application]]. | ||
123 | * Using the edit welcome message button from the homepage now redirects back to the previous page (homepage) when the user is done editing (saves or cancels) instead of leaving the user on the Main.Welcome page, which was previously confusing for some users. | ||
124 | * Mail Sender API now offers a new configuration property to decide whether mail statuses for mails that have been sent successfully must be discarded or not (when using the Database Mail Listener). The default is now false (i.e. discard them) but they could be kept for traceability purpose for example. Note that in previous XWiki versions these mail statuses were kept. | ||
125 | |||
126 | 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+%227.0%22&tempMax=1000]] fixed in this release. | ||
127 | |||
128 | = For Developers = | ||
129 | |||
130 | == Skin Edition == | ||
131 | |||
132 | * We have added a new [[extensions:Extension.Skin Application]] to easily edit a skin document.((( | ||
133 | {{image reference="ReleaseNotesXWiki70RC1@skin-edit1.png" width="45%"/}} {{image reference="ReleaseNotesXWiki70RC1@skin-edit2.png" width="45%"/}} | ||
134 | ))) | ||
135 | * This application provides a new way to override a template. You do not need to edit the ##XWikiSkins## class anymore. | ||
136 | * It also provides the ability to override a file stored in a subdirectory. | ||
137 | * It is now possible to override the LESS templates. | ||
138 | |||
139 | == Solr index changes == | ||
140 | |||
141 | All String based object properties raw values are now stored in the Solr index with ##_string## suffix (exactly like for static lists properties) in DOCUMENT types. This mean that when upgrading to 7.0 you should recreate the Solr index so that they are added. | ||
142 | |||
143 | == WebJars Caching == | ||
144 | |||
145 | The WebJar resources are now permanently cached by the browser. The browser won't request them again unless you clear the browser cache or you force reload the page. See more on the [[WebJars Integration>>extensions:Extension.WebJars Integration||anchor="HCaching"]] documentation. | ||
146 | |||
147 | == Mail Sender API Improvements == | ||
148 | |||
149 | The [[Mail Sender API>>extensions:Extension.Mail Sender API]] has been improved to allow sending mails to a list of users, a list of groups and a list of email addresses, all at once. It also supports excluding users, groups and email addresses. Last, it ensures that recipients don't get duplicate mails. Before 6.4.2/7.0M2, you could send a mail either to a list of users or to a group (and to an email address) but you had to use several API calls for that and you had to handle yourself potential mail duplication (if a user was inside your user list and inside the group you were sending to for example). | ||
150 | |||
151 | Using the new API, the following example will send a template email to all the users in the ##XWiki.MyGroup## group, to the ##XWiki.User1## and ##XWiki.User2## users + to the ##john@doe.com## email address. | ||
152 | |||
153 | Also note that contrary to the previous API to send email to a group, the new API handles nested groups (i.e. if the ##XWiki.MyGroup## group contains other groups, all users of those other groups will also receive the template email)! | ||
154 | |||
155 | {{code language="none"}} | ||
156 | {{velocity}} | ||
157 | ## Parameters for the 'template' MimeMessageFactory | ||
158 | #set ($templateParameters = {'language' : $xcontext.language, 'velocityVariables' : { 'var1' : 'value1' }}) | ||
159 | |||
160 | #set ($templateReference = $services.model.createDocumentReference('', 'Space', 'MailTemplatePage')) | ||
161 | #set ($parameters = {'hint' : 'template', 'parameters' : $templateParameters, 'source' : $templateReference}) | ||
162 | |||
163 | #set ($groupReference = $services.model.createDocumentReference('', 'XWiki', 'MyGroup')) | ||
164 | #set ($user1Reference = $services.model.createDocumentReference('', 'XWiki', 'User1')) | ||
165 | #set ($user2Reference = $services.model.createDocumentReference('', 'XWiki', 'User2')) | ||
166 | |||
167 | #set ($source = {'groups' : [$groupReference], 'users' : [$user1Reference, $user2Reference], 'emails' : ['john@doe.com']}) | ||
168 | |||
169 | #set ($messages = $services.mailsender.createMessages('usersandgroups', $source, $parameters)) | ||
170 | #set ($mailResult = $services.mailsender.send($messages, 'database')) | ||
171 | {{/velocity}} | ||
172 | {{/code}} | ||
173 | |||
174 | == Group Member Iterator == | ||
175 | |||
176 | A new ##ReferenceUserIterator## iterator has been introduced to iterate over all the users found in a list of users/groups. It supports the following: | ||
177 | |||
178 | * Ability to iterate over a list of references (either group or user) or a single user/group | ||
179 | * Handles nested groups | ||
180 | * Ability to return user data (e.g. user's email) and to programatically skip some entries based on programmatic condition | ||
181 | * Ability to exclude users/groups | ||
182 | |||
183 | Notes: | ||
184 | |||
185 | * Right now duplication is not handled at the level of ##UserIterator## (thus for example if a user is a member of several groups it'll be returned several times). | ||
186 | * This code is not performant as it will load one document per group and per user found. There's [[currently no way of handling this in a performant way>>https://jira.xwiki.org/browse/XWIKI-10377]]. | ||
187 | |||
188 | Example 1: List all users of a group by returning references | ||
189 | |||
190 | {{code language="groovy"}} | ||
191 | {{groovy}} | ||
192 | import com.xpn.xwiki.internal.plugin.rightsmanager.* | ||
193 | import org.xwiki.model.reference.* | ||
194 | import org.xwiki.context.* | ||
195 | |||
196 | def groupReference = new DocumentReference("xwiki", "XWiki", "XWikiAllGroup") | ||
197 | def resolver = services.component.getInstance(DocumentReferenceResolver.TYPE_STRING, "explicit") | ||
198 | def execution = services.component.getInstance(Execution.class) | ||
199 | def iterator = new ReferenceUserIterator(groupReference, resolver, execution) | ||
200 | iterator.each() { | ||
201 | println "* ${it}" | ||
202 | } | ||
203 | {{/groovy}} | ||
204 | {{/code}} | ||
205 | |||
206 | Example 2: Get all email addresses from all users inside the passed groups | ||
207 | |||
208 | {{code language="groovy"}} | ||
209 | {{groovy}} | ||
210 | import com.xpn.xwiki.doc.* | ||
211 | import com.xpn.xwiki.objects.* | ||
212 | import com.xpn.xwiki.internal.plugin.rightsmanager.* | ||
213 | import org.xwiki.model.reference.* | ||
214 | import org.xwiki.context.* | ||
215 | |||
216 | def group1Reference = new DocumentReference("xwiki", "XWiki", "XWikiAllGroup") | ||
217 | def group2Reference = new DocumentReference("xwiki", "XWiki", "XWikiAdminGroup") | ||
218 | def resolver = services.component.getInstance(DocumentReferenceResolver.TYPE_STRING, "explicit") | ||
219 | def execution = services.component.getInstance(Execution.class) | ||
220 | |||
221 | class EmailUserDataExtractor implements UserDataExtractor<String> | ||
222 | { | ||
223 | public String extractFromSuperadmin(DocumentReference reference) | ||
224 | { | ||
225 | return null | ||
226 | } | ||
227 | |||
228 | public String extractFromGuest(DocumentReference reference) | ||
229 | { | ||
230 | return null | ||
231 | } | ||
232 | |||
233 | public String extract(DocumentReference reference, XWikiDocument document, BaseObject userObject) | ||
234 | { | ||
235 | return userObject.getStringValue("email") | ||
236 | } | ||
237 | } | ||
238 | |||
239 | def iterator = new UserIterator([group1Reference, group2Reference], [], new EmailUserDataExtractor(), resolver, execution) | ||
240 | iterator.each() { | ||
241 | println "* ${it}" | ||
242 | } | ||
243 | {{/groovy}} | ||
244 | {{/code}} | ||
245 | |||
246 | == Extensions improvement and new features == | ||
247 | |||
248 | === Extension category === | ||
249 | |||
250 | Each extension can now expose a category (flavor, application, macro...). | ||
251 | |||
252 | === Advanced extensions search === | ||
253 | |||
254 | A new ##org.xwiki.extension.repository.search.AdvancedSearchable## extending ##org.xwiki.extension.repository.search.Searchable## provide field-based filtering and ordering to extensions search. It's implemented by all supported repositories (core, local, installed, XWiki based remote extensions repository). | ||
255 | |||
256 | In an XWiki Repository, simple and advanced search are now implemented based on Solr, which among other things make the search ordered by score by default and boost configuration has been associated to each extension element (high score for extension name and id, etc.) | ||
257 | |||
258 | === Advanced extensions search in REST protocol === | ||
259 | |||
260 | Support for advanced filtering and ordering or extensions search result has been added XWiki Repository protocol and client. See [[extensions:Extension.Repository Module||anchor="H2Fsearch"]]. | ||
261 | |||
262 | === Custom properties in REST protocol === | ||
263 | |||
264 | Support for missing custom properties has been added to the XWiki Repository REST protocol. See [[extensions:Extension.Repository Module||anchor="HREST"]]. Only String properties are supported for now. | ||
265 | |||
266 | === Access Extension fields by name === | ||
267 | |||
268 | Added a method in Extension to access a field (name, summary, version, etc.) value by name. | ||
269 | |||
270 | {{code language="java"}} | ||
271 | /** | ||
272 | * Get an extension field (name, summary, id, etc.) by name. Fallback on properties. | ||
273 | * | ||
274 | * @param <T> type of the field value | ||
275 | * @param fieldName the field name; | ||
276 | * @return the field value or null if none could be found | ||
277 | * @since 7.0RC1 | ||
278 | */ | ||
279 | @Unstable | ||
280 | <T> T get(String fieldName); | ||
281 | {{/code}} | ||
282 | |||
283 | === Miscellaneous === | ||
284 | |||
285 | * Source URL is now taken into account when importing an extension | ||
286 | * Extensions Repository REST service now return scm informations | ||
287 | |||
288 | == Finder Plugin for the Tree Widget == | ||
289 | |||
290 | Starting with this version the [[Tree Widget>>extensions:Extension.Tree Widget]] has a (jsTree) plugin to find tree nodes, called //finder//. When enabled, this plugin adds a text input above the tree that offers suggestions as you type based on the content of the tree. When such a suggestion is selected the tree is expanded to show the corresponding node. This is already used by the [[Document Tree Macro>>extensions:Extension.Document Tree Macro]] and can be seen in action on the [[Document Index>>extensions:Extension.Index Application]]. | ||
291 | |||
292 | == Miscellaneous == | ||
293 | |||
294 | * XAR Mojos now also format and verify attachment authors. | ||
295 | * ##MandatoryDocumentInitializer## components can now use a ##@Priority## annotation to specify the order in which they should be executed. See [[XWIKI-11905>>https://jira.xwiki.org/browse/XWIKI-11905]]. | ||
296 | * A new ##isMainWikiOnly()## method is available in ##AbstractMandatoryDocumentInitializer## for overriding to specify that the document should be initialized on the main wiki only. | ||
297 | * A new ##setDocumentFields()## method is available in ##AbstractMandatoryDocumentInitializer## to be called when initializing a regular document (which is not a class). | ||
298 | * A new component based implementation of the watchlist module is now available (replacing the plugin one). See [[the documentation>>extensions:Extension.Watchlist API]] for more information. | ||
299 | * The XWiki pages for the [[XClass Application>>extensions:Extension.XClass Application]] (a.k.a Class Wizard or Class Editor Wizard) which were located in the ##xwiki-enterprise## GitHub repository have been moved into a ##xwiki-platform-xclass## Maven module in the ##xwiki-platform## GitHub repository. | ||
300 | * Added access to the document XDOM in ##com.xpn.xwiki.api.Document##. That means you can now do {{code language="velocity"}}$doc.getXDOM(){{/code}} and {{code language="velocity"}}$doc.setContent($xdom){{/code}}. | ||
301 | * The default preferences (the ##XWikiPreferences## document) has been moved from ##xwiki-enterprise-ui-admin-user## to ##xwiki-enterprise-ui-mainwikipreferences##. | ||
302 | * ##$datetool## has a new method to access the [[DateFormatSymbols>>http://docs.oracle.com/javase/7/docs/api/java/text/DateFormatSymbols.html]]:((( | ||
303 | {{code language="none"}} | ||
304 | {{velocity}} | ||
305 | #set ($currentLocale = $services.localization.currentLocale) | ||
306 | #set ($dateFormatSymbols = $datetool.getDateFormatSymbols($currentLocale)) | ||
307 | $jsontool.serialize($dateFormatSymbols.shortMonths) | ||
308 | |||
309 | ## Output for French locale: | ||
310 | ## ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] | ||
311 | {{/velocity}} | ||
312 | {{/code}} | ||
313 | ))) | ||
314 | * Message Stream script service now offers a ##getLastError()## method to get the last error. | ||
315 | * "input" displayed Static and Database Lists separators handling has been improved to properly allow using multiple separators at once for entering data (including escaped separators inside list values). More importantly, when displaying an existing list inside an input, the existing values will always be separated using the first separator specified in the object's class for the edited object property. For non-relationally stored properties, the value that is stored in the database as a LargeStringProperty will always be separated using the default pipe ("|") separator. See [[XWIKI-10098>>https://jira.xwiki.org/browse/XWIKI-10098]] for more details. | ||
316 | * The ##/deleteversions/## action now supports the "latest" and "previous" pseudoversions and the ##/rollback/## action now supports the "previous" pseudoversion. See [[XWIKI-11841>>https://jira.xwiki.org/browse/XWIKI-11841]] for more information. | ||
317 | * The build now checks if unit tests output content to stdout/stderr and fail the build if so. A new ##AllLogRule## JUnit Rule has been introduced to capture and assert logs:((( | ||
318 | {{code language="java"}} | ||
319 | ... | ||
320 | /** | ||
321 | * Capture logs. | ||
322 | */ | ||
323 | @Rule | ||
324 | public AllLogRule logRule = new AllLogRule(); | ||
325 | ... | ||
326 | assertEquals("Error getting resource [bad resource] because of invalid path format. Reason: [invalid url]", | ||
327 | this.logRule.getMessage(0)); | ||
328 | ... | ||
329 | {{/code}} | ||
330 | ))) | ||
331 | * The ##xwiki-commons-test-simple## and ##xwiki-commons-test-component## modules have been moved to the Commons Tools as ##xwiki-commons-tool-test-simple## and ##xwiki-commons-tool-test-component## respectively. If your Maven module depends on one of them you'll need to update the dependencies. | ||
332 | |||
333 | == New Template Module == | ||
334 | |||
335 | The whole templating (filesystem and wiki templates) have been rewritten and new APIs has been introduced to use it in 7.0. | ||
336 | |||
337 | See [[Template Module documentation>>extensions:Extension.Template Module]]. | ||
338 | |||
339 | == New Skin Module == | ||
340 | |||
341 | A new module and related API has been introduced to make easier to access skin resources. | ||
342 | |||
343 | See [[Skin Module documentation>>extensions:Extension.Skin Module]]. | ||
344 | |||
345 | == Deprecated and Retired projects == | ||
346 | |||
347 | * The [[WatchList plugin>>extensions:Extension.Watchlist Plugin]] has been moved to legacy and was replaced by a component-based implementation. The legacy module still provides a plugin API for compatibility, but clients should move to the new script service instead. | ||
348 | * Lucene search module moved to https://github.com/xwiki-contrib/xwiki-platform-search-lucene | ||
349 | |||
350 | == Upgrades == | ||
351 | |||
352 | The following dependencies have been upgraded: | ||
353 | |||
354 | * [[Jython 2.7-rc1>>https://jira.xwiki.org/browse/XWIKI-11966]] | ||
355 | * [[Groovy 2.4.2>>https://jira.xwiki.org/browse/XCOMMONS-771]] | ||
356 | * [[Selenium 2.44.0>>https://jira.xwiki.org/browse/XCOMMONS-753]] | ||
357 | * [[Arquilian Phantom JS Driver 1.1.3.Final>>https://jira.xwiki.org/browse/XWIKI-11832]] | ||
358 | * [[JGroups 3.6.2>>https://jira.xwiki.org/browse/XWIKI-11848]] | ||
359 | * [[Jython 2.7-b4>>https://jira.xwiki.org/browse/XWIKI-11850]] | ||
360 | * [[DBCP 2.1>>https://jira.xwiki.org/browse/XCOMMONS-756]] | ||
361 | * [[Pygments 2.0.2>>https://jira.xwiki.org/browse/XWIKI-11864]] | ||
362 | * [[jdom 2.0.6>>https://jira.xwiki.org/browse/XCOMMONS-760]] | ||
363 | * [[XStream 1.4.8>>https://jira.xwiki.org/browse/XCOMMONS-761]] | ||
364 | * [[Maven 3.2.5 and Aether 1.0.2.v20150114>>https://jira.xwiki.org/browse/XCOMMONS-711]] | ||
365 | * [[Infinispan 7.0.3>>https://jira.xwiki.org/browse/XWIKI-9967]] | ||
366 | * [[SLF4J 1.7.10>>https://jira.xwiki.org/browse/XCOMMONS-721]] | ||
367 | * [[Joda-Time 2.7>>https://jira.xwiki.org/browse/XWIKI-11668]] | ||
368 | * [[Tika 1.7>>https://jira.xwiki.org/browse/XWIKI-11669]] | ||
369 | * [[httpclient 4.4>>https://jira.xwiki.org/browse/XCOMMONS-737]] | ||
370 | * [[Bootstrap 3.3.2>>https://jira.xwiki.org/browse/XWIKI-11772]] | ||
371 | |||
372 | = Translations = | ||
373 | |||
374 | The following translations have been updated: | ||
375 | |||
376 | {{language codes="ca, cs, da, de, es, fr, gl, it, ko, lv, pt_BR, ro, ru, sk, sv, tr, vi, zh, zh_TW"/}} | ||
377 | |||
378 | = Tested Browsers & Databases = | ||
379 | |||
380 | {{include reference="TestReports.ManualTestReportSummaryXWiki70"/}} | ||
381 | |||
382 | = Performances tests compared to 6.4.3 = | ||
383 | |||
384 | There hasn't been much specific work on performance during 7.0 but some refactoring of the template module and the move to less4j improved the skin executing speed. | ||
385 | |||
386 | {{display reference="test:Performances.Jetty HSQLDB single wiki 643 to 70" section="HSummary"/}} | ||
387 | |||
388 | More details on [[performance comparison on single wiki between 7.0 and 6.4.3>>test:Performances.Jetty HSQLDB single wiki 643 to 70]]. | ||
389 | |||
390 | = Known issues = | ||
391 | |||
392 | * [[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]] | ||
393 | |||
394 | = Backward Compatibility and Migration Notes = | ||
395 | |||
396 | == General Notes == | ||
397 | |||
398 | 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. | ||
399 | |||
400 | == Issues specific to XWiki 7.0 == | ||
401 | |||
402 | * The Watchlist class and its objects have been migrated to use relationally stored DBList properties instead of TextArea properties in order to solve scalability issues that occurred when too many elements were being watched by a user. See [[XWIKI-7339>>https://jira.xwiki.org/browse/XWIKI-7339]]. | ||
403 | * The [[WatchList plugin>>extensions:Extension.Watchlist Plugin]] has been moved to legacy and was replaced by a component-based implementation. The legacy module still provides a plugin API for compatibility, but clients should move to the new script service instead. | ||
404 | * Titles are not extracted from document content anymore, you can enable it using the ##xwiki.title.compatibility## configuration property but it will probably fully be removed at some point | ||
405 | * The Solr index changed so it needs to be recreated in case some new feature would expect to find the new fields | ||
406 | * The upgrade to DBCP 2.1 has caused to **require a JDBC 4 driver** and some Hibernate configuration properties have been removed and new ones created. The following properties have been removed:((( | ||
407 | * ##dbcp.maxActive## replaced by ##dbcp.maxTotal## | ||
408 | * ##dbcp.maxWait## replaced by ##dbcp.maxWaitMillis## | ||
409 | |||
410 | Note that we've kept backward compatibility support for the old properties so that you don't need to immediately modify your ##hibernate.cfg## file (although we recommend you do that!). | ||
411 | |||
412 | Also note that even though the following properties were defined in ##hibernate.cfg## they were not handled by XWiki's code (nor by DBCP 1.3 - which was the version we were using prior to moving to 2.1). Since they had no effect they've now been removed: | ||
413 | |||
414 | * ##dbcp.whenExhaustedAction##. Note that the default action is BLOCK in Commons Pool (used by DBCP) | ||
415 | * ##dbcp.ps.whenExhaustedAction## | ||
416 | * ##dbcp.ps.maxWait## | ||
417 | * ##dbcp.ps.maxIdle## | ||
418 | ))) | ||
419 | * Debian packages based on Tomcat 5 and 6 has been removed since they are not supported by XWiki itself anymore | ||
420 | * [[XWiki now requires to be deployed in a Servlet Container support Servlet 3.0.1>>Documentation.AdminGuide.Installation||anchor="HPrerequisites"]]. For example: | ||
421 | ** Jetty 8.x | ||
422 | ** [[Tomcat 7.x>>http://tomcat.apache.org/whichversion.html]] | ||
423 | ** Glassfish 3.x | ||
424 | ** WebSphere 8.x | ||
425 | ** WebLogic 12.x | ||
426 | ** JBoss AS 6.x/7.x | ||
427 | ** Resin 4.0.1 | ||
428 | |||
429 | == API Breakages == | ||
430 | |||
431 | The following APIs were modified since XWiki 6.4: | ||
432 | |||
433 | * The Watchlist plugin has been moved to legacy and a component-based implementation has replaced it. Major refactoring has been performed. | ||
434 | |||
435 | {{code language="none"}} | ||
436 | com.xpn.xwiki.plugin.watchlist.AutomaticWatchMode: Class com.xpn.xwiki.plugin.watchlist.AutomaticWatchMode removed | ||
437 | com.xpn.xwiki.plugin.watchlist.AutomaticWatchModeListener: Class com.xpn.xwiki.plugin.watchlist.AutomaticWatchModeListener removed | ||
438 | com.xpn.xwiki.plugin.watchlist.WatchListEvent: Class com.xpn.xwiki.plugin.watchlist.WatchListEvent removed | ||
439 | com.xpn.xwiki.plugin.watchlist.WatchListEventFeedManager: Class com.xpn.xwiki.plugin.watchlist.WatchListEventFeedManager removed | ||
440 | com.xpn.xwiki.plugin.watchlist.WatchListEventMatcher: Class com.xpn.xwiki.plugin.watchlist.WatchListEventMatcher removed | ||
441 | com.xpn.xwiki.plugin.watchlist.WatchListEventType: Class com.xpn.xwiki.plugin.watchlist.WatchListEventType removed | ||
442 | com.xpn.xwiki.plugin.watchlist.WatchListJob: Class com.xpn.xwiki.plugin.watchlist.WatchListJob removed | ||
443 | com.xpn.xwiki.plugin.watchlist.WatchListJobManager: Class com.xpn.xwiki.plugin.watchlist.WatchListJobManager removed | ||
444 | com.xpn.xwiki.plugin.watchlist.WatchListNotifier: Class com.xpn.xwiki.plugin.watchlist.WatchListNotifier removed | ||
445 | com.xpn.xwiki.plugin.watchlist.WatchListPlugin: Class com.xpn.xwiki.plugin.watchlist.WatchListPlugin removed | ||
446 | com.xpn.xwiki.plugin.watchlist.WatchListPluginApi: Class com.xpn.xwiki.plugin.watchlist.WatchListPluginApi removed | ||
447 | com.xpn.xwiki.plugin.watchlist.WatchListStore: Class com.xpn.xwiki.plugin.watchlist.WatchListStore removed | ||
448 | com.xpn.xwiki.plugin.watchlist.WatchListStore$ElementType: Class com.xpn.xwiki.plugin.watchlist.WatchListStore$ElementType removed | ||
449 | {{/code}} | ||
450 | |||
451 | * Add support for categories to extension. It should not be an issue for most Extension implementations which are supposed to extend ##AbstractExtension## | ||
452 | |||
453 | {{code language="none"}} | ||
454 | org.xwiki.extension.Extension: Method 'public java.lang.String getCategory()' has been added to an interface | ||
455 | {{/code}} | ||
456 | |||
457 | * Helper to access extension fields by name | ||
458 | |||
459 | {{code language="none"}} | ||
460 | org.xwiki.extension.Extension: Method 'public java.lang.Object get(java.lang.String)' has been added to an interface | ||
461 | {{/code}} | ||
462 | |||
463 | * Added a method to get the date when an extension was installed. | ||
464 | |||
465 | {{code language="none"}} | ||
466 | org.xwiki.extension.InstalledExtension: Method 'public java.util.Date getInstallDate(java.lang.String)' has been added to an interface | ||
467 | {{/code}} | ||
468 | |||
469 | * Added support for associating custom install properties (e.g. the user that triggers the install) to the namespace where the extension is installed. | ||
470 | |||
471 | {{code language="none"}} | ||
472 | org.xwiki.extension.InstalledExtension: Method 'public java.lang.Object getNamespaceProperty(java.lang.String, java.lang.String)' has been added to an interface | ||
473 | org.xwiki.extension.repository.InstalledExtensionRepository: Method 'public org.xwiki.extension.InstalledExtension installExtension(org.xwiki.extension.LocalExtension, java.lang.String, boolean, java.util.Map)' has been added to an interface | ||
474 | {{/code}} | ||
475 | |||
476 | * Added support for advanced installed extensions search. | ||
477 | |||
478 | {{code language="none"}} | ||
479 | org.xwiki.extension.repository.InstalledExtensionRepository: Method 'public org.xwiki.extension.repository.result.IterableResult searchInstalledExtensions(java.lang.String, org.xwiki.extension.repository.search.ExtensionQuery)' has been added to an interface | ||
480 | {{/code}} | ||
481 | |||
482 | * Using String instead of JRCS Version for better flexibility. Probably should not have been public from the start. | ||
483 | |||
484 | {{code language="none"}} | ||
485 | com.xpn.xwiki.web.DeleteVersionsForm: Return type of method 'public org.suigeneris.jrcs.rcs.Version getRev()' has been changed to java.lang.String | ||
486 | com.xpn.xwiki.web.DeleteVersionsForm: Return type of method 'public org.suigeneris.jrcs.rcs.Version getRev1()' has been changed to java.lang.String | ||
487 | com.xpn.xwiki.web.DeleteVersionsForm: Return type of method 'public org.suigeneris.jrcs.rcs.Version getRev2()' has been changed to java.lang.String | ||
488 | {{/code}} | ||
489 | |||
490 | * Move to Servlet 3.0.1 | ||
491 | |||
492 | {{code language="none"}} | ||
493 | com.xpn.xwiki.plugin.scheduler.XWikiServletRequestStub: Class com.xpn.xwiki.plugin.scheduler.XWikiServletRequestStub removed | ||
494 | com.xpn.xwiki.plugin.scheduler.XWikiServletResponseStub: Class com.xpn.xwiki.plugin.scheduler.XWikiServletResponseStub removed | ||
495 | {{/code}} | ||
496 | |||
497 | * Refactoring the LESS API. Make internal all the classes and interfaces that should never have been public | ||
498 | |||
499 | {{code language="none"}} | ||
500 | org.xwiki.lesscss.cache.ColorThemeCache: Class org.xwiki.lesscss.cache.ColorThemeCache removed | ||
501 | org.xwiki.lesscss.cache.LESSCache: Class org.xwiki.lesscss.cache.LESSCache removed | ||
502 | org.xwiki.lesscss.cache.LESSResourcesCache: Class org.xwiki.lesscss.cache.LESSResourcesCache removed | ||
503 | org.xwiki.lesscss.colortheme.ColorTheme: Class org.xwiki.lesscss.colortheme.ColorTheme removed | ||
504 | org.xwiki.lesscss.colortheme.ColorThemeReference: Class org.xwiki.lesscss.colortheme.ColorThemeReference removed | ||
505 | org.xwiki.lesscss.colortheme.ColorThemeReferenceFactory: Class org.xwiki.lesscss.colortheme.ColorThemeReferenceFactory removed | ||
506 | org.xwiki.lesscss.colortheme.ColorThemeReferenceSerializer: Class org.xwiki.lesscss.colortheme.ColorThemeReferenceSerializer removed | ||
507 | org.xwiki.lesscss.colortheme.DocumentColorThemeReference: Class org.xwiki.lesscss.colortheme.DocumentColorThemeReference removed | ||
508 | org.xwiki.lesscss.colortheme.LESSColorThemeConverter: Class org.xwiki.lesscss.colortheme.LESSColorThemeConverter removed | ||
509 | org.xwiki.lesscss.colortheme.NamedColorThemeReference: Class org.xwiki.lesscss.colortheme.NamedColorThemeReference removed | ||
510 | org.xwiki.lesscss.compiler.IntegratedLESSCompiler: Class org.xwiki.lesscss.compiler.IntegratedLESSCompiler removed | ||
511 | org.xwiki.lesscss.compiler.LESSCompiler: In method 'public java.lang.String compile(java.lang.String, java.nio.file.Path[])' the number of arguments has changed | ||
512 | org.xwiki.lesscss.compiler.LESSCompiler: In method 'public java.lang.String compile(java.lang.String)' the number of arguments has changed | ||
513 | org.xwiki.lesscss.compiler.LESSSkinFileCompiler: Class org.xwiki.lesscss.compiler.LESSSkinFileCompiler removed | ||
514 | org.xwiki.lesscss.resources.LESSObjectPropertyResourceReference: Class org.xwiki.lesscss.resources.LESSObjectPropertyResourceReference removed | ||
515 | org.xwiki.lesscss.resources.LESSResourceReader: Class org.xwiki.lesscss.resources.LESSResourceReader removed | ||
516 | org.xwiki.lesscss.resources.LESSResourceReference: Method 'public java.lang.String getContent(java.lang.String)' has been added to an interface | ||
517 | org.xwiki.lesscss.resources.LESSResourceReference: Method 'public java.lang.String serialize()' has been added to an interface | ||
518 | org.xwiki.lesscss.resources.LESSResourceReferenceSerializer: Class org.xwiki.lesscss.resources.LESSResourceReferenceSerializer removed | ||
519 | org.xwiki.lesscss.resources.LESSSkinFileResourceReference: Class org.xwiki.lesscss.resources.LESSSkinFileResourceReference removed | ||
520 | org.xwiki.lesscss.skin.DocumentSkinReference: Class org.xwiki.lesscss.skin.DocumentSkinReference removed | ||
521 | org.xwiki.lesscss.skin.FSSkinReference: Class org.xwiki.lesscss.skin.FSSkinReference removed | ||
522 | org.xwiki.lesscss.skin.SkinReference: Class org.xwiki.lesscss.skin.SkinReference removed | ||
523 | org.xwiki.lesscss.skin.SkinReferenceFactory: Class org.xwiki.lesscss.skin.SkinReferenceFactory removed | ||
524 | org.xwiki.lesscss.skin.SkinReferenceSerializer: Class org.xwiki.lesscss.skin.SkinReferenceSerializer removed | ||
525 | org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.colortheme.ColorTheme getColorThemeFromSkinFile(java.lang.String)' has been changed to org.xwiki.lesscss.internal.colortheme.ColorTheme | ||
526 | org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.colortheme.ColorTheme getColorThemeFromSkinFile(java.lang.String, java.lang.String)' has been changed to org.xwiki.lesscss.internal.colortheme.ColorTheme | ||
527 | {{/code}} | ||
528 | |||
529 | * Young API. Made the API more generic + internal refactoring. | ||
530 | |||
531 | {{code language="none"}} | ||
532 | org.xwiki.mail.MimeMessageFactory: Return type of method 'public javax.mail.internet.MimeMessage createMessage(javax.mail.Session, java.lang.Object, java.util.Map)' has been changed to java.lang.Object | ||
533 | org.xwiki.mail.script.MailSenderScriptService: In method 'public java.util.Iterator createMessages(java.lang.String, java.lang.Object, java.lang.String, java.util.Map)' the number of arguments has changed | ||
534 | org.xwiki.mail.script.AbstractMailScriptService: Removed field configuration | ||
535 | {{/code}} | ||
536 | |||
537 | * We've refactored the client code of the WYSIWYG editor to use the new tree. | ||
538 | |||
539 | {{code language="none"}} | ||
540 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Removed com.smartgwt.client.widgets.events.KeyPressHandler from the set of implemented interfaces | ||
541 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Removed com.smartgwt.client.widgets.grid.events.RecordDoubleClickHandler from the set of implemented interfaces | ||
542 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Parameter 1 of 'public AbstractExplorerWizardStep(boolean, boolean, boolean)' has changed its type to java.lang.String | ||
543 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Parameter 2 of 'public AbstractExplorerWizardStep(boolean, boolean, boolean)' has changed its type to int | ||
544 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Parameter 3 of 'public AbstractExplorerWizardStep(boolean, boolean, boolean)' has changed its type to int | ||
545 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Accessibility of method 'public AbstractExplorerWizardStep(boolean, boolean, boolean)' has been decreased from public to protected | ||
546 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: In method 'protected AbstractExplorerWizardStep(boolean, boolean, boolean, int, int)' the number of arguments has changed | ||
547 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Method 'protected void invalidateExplorerData()' has been removed | ||
548 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Method 'public void onKeyPress(com.smartgwt.client.widgets.events.KeyPressEvent)' has been removed | ||
549 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AbstractExplorerWizardStep: Method 'public void onRecordDoubleClick(com.smartgwt.client.widgets.grid.events.RecordDoubleClickEvent)' has been removed | ||
550 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AttachmentExplorerWizardStep: Removed com.smartgwt.client.widgets.events.KeyPressHandler from the set of implemented interfaces | ||
551 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AttachmentExplorerWizardStep: Removed com.smartgwt.client.widgets.grid.events.RecordDoubleClickHandler from the set of implemented interfaces | ||
552 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.AttachmentExplorerWizardStep: In method 'public AttachmentExplorerWizardStep()' the number of arguments has changed | ||
553 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.PageSelectorWizardStep: In method 'public PageSelectorWizardStep(org.xwiki.gwt.wysiwyg.client.wiki.WikiServiceAsync)' the number of arguments has changed | ||
554 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.WikiPageExplorerWizardStep: Removed com.smartgwt.client.widgets.events.KeyPressHandler from the set of implemented interfaces | ||
555 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.WikiPageExplorerWizardStep: Removed com.smartgwt.client.widgets.grid.events.RecordDoubleClickHandler from the set of implemented interfaces | ||
556 | org.xwiki.gwt.wysiwyg.client.plugin.link.ui.WikiPageExplorerWizardStep: In method 'public WikiPageExplorerWizardStep()' the number of arguments has changed | ||
557 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.core.LogicalStructure from the set of implemented interfaces | ||
558 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.DataBoundComponent from the set of implemented interfaces | ||
559 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasClickHandlers from the set of implemented interfaces | ||
560 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDoubleClickHandlers from the set of implemented interfaces | ||
561 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragCompleteHandlers from the set of implemented interfaces | ||
562 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragMoveHandlers from the set of implemented interfaces | ||
563 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragRepositionMoveHandlers from the set of implemented interfaces | ||
564 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragRepositionStartHandlers from the set of implemented interfaces | ||
565 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragRepositionStopHandlers from the set of implemented interfaces | ||
566 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragResizeMoveHandlers from the set of implemented interfaces | ||
567 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragResizeStartHandlers from the set of implemented interfaces | ||
568 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragResizeStopHandlers from the set of implemented interfaces | ||
569 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragStartHandlers from the set of implemented interfaces | ||
570 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDragStopHandlers from the set of implemented interfaces | ||
571 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDropCompleteHandlers from the set of implemented interfaces | ||
572 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDropHandlers from the set of implemented interfaces | ||
573 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDropMoveHandlers from the set of implemented interfaces | ||
574 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDropOutHandlers from the set of implemented interfaces | ||
575 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasDropOverHandlers from the set of implemented interfaces | ||
576 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasFetchDataHandlers from the set of implemented interfaces | ||
577 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasFocusChangedHandlers from the set of implemented interfaces | ||
578 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasFormulaUpdatedHandlers from the set of implemented interfaces | ||
579 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasHoverHandlers from the set of implemented interfaces | ||
580 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasHoverHiddenHandlers from the set of implemented interfaces | ||
581 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasKeyDownHandlers from the set of implemented interfaces | ||
582 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasKeyPressHandlers from the set of implemented interfaces | ||
583 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMouseDownHandlers from the set of implemented interfaces | ||
584 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMouseMoveHandlers from the set of implemented interfaces | ||
585 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMouseOutHandlers from the set of implemented interfaces | ||
586 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMouseOverHandlers from the set of implemented interfaces | ||
587 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMouseStillDownHandlers from the set of implemented interfaces | ||
588 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMouseUpHandlers from the set of implemented interfaces | ||
589 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMouseWheelHandlers from the set of implemented interfaces | ||
590 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasMovedHandlers from the set of implemented interfaces | ||
591 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasParentMovedHandlers from the set of implemented interfaces | ||
592 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasResizedHandlers from the set of implemented interfaces | ||
593 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasRightMouseDownHandlers from the set of implemented interfaces | ||
594 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasScrolledHandlers from the set of implemented interfaces | ||
595 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasShowContextMenuHandlers from the set of implemented interfaces | ||
596 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.events.HasVisibilityChangedHandlers from the set of implemented interfaces | ||
597 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasBodyKeyPressHandlers from the set of implemented interfaces | ||
598 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellClickHandlers from the set of implemented interfaces | ||
599 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellContextClickHandlers from the set of implemented interfaces | ||
600 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellDoubleClickHandlers from the set of implemented interfaces | ||
601 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellHoverHandlers from the set of implemented interfaces | ||
602 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellMouseDownHandlers from the set of implemented interfaces | ||
603 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellMouseUpHandlers from the set of implemented interfaces | ||
604 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellOutHandlers from the set of implemented interfaces | ||
605 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellOverHandlers from the set of implemented interfaces | ||
606 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellSavedHandlers from the set of implemented interfaces | ||
607 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellSelectionChangedHandlers from the set of implemented interfaces | ||
608 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasCellValueHoverHandlers from the set of implemented interfaces | ||
609 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasDataArrivedHandlers from the set of implemented interfaces | ||
610 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasDrawAreaChangedHandlers from the set of implemented interfaces | ||
611 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasEditCompleteHandlers from the set of implemented interfaces | ||
612 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasEditFailedHandlers from the set of implemented interfaces | ||
613 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasEditorEnterHandlers from the set of implemented interfaces | ||
614 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasEditorExitHandlers from the set of implemented interfaces | ||
615 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasFieldStateChangedHandlers from the set of implemented interfaces | ||
616 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasFilterEditorSubmitHandlers from the set of implemented interfaces | ||
617 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasGroupByHandlers from the set of implemented interfaces | ||
618 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasGroupStateChangedHandlers from the set of implemented interfaces | ||
619 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasHeaderClickHandlers from the set of implemented interfaces | ||
620 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasHeaderDoubleClickHandlers from the set of implemented interfaces | ||
621 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasHeaderHoverHandlers from the set of implemented interfaces | ||
622 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasHilitesChangedHandlers from the set of implemented interfaces | ||
623 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRecordClickHandlers from the set of implemented interfaces | ||
624 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRecordCollapseHandlers from the set of implemented interfaces | ||
625 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRecordDoubleClickHandlers from the set of implemented interfaces | ||
626 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRecordDropHandlers from the set of implemented interfaces | ||
627 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRecordExpandHandlers from the set of implemented interfaces | ||
628 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRemoveRecordClickHandlers from the set of implemented interfaces | ||
629 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowContextClickHandlers from the set of implemented interfaces | ||
630 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowEditorEnterHandlers from the set of implemented interfaces | ||
631 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowEditorExitHandlers from the set of implemented interfaces | ||
632 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowHoverHandlers from the set of implemented interfaces | ||
633 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowMouseDownHandlers from the set of implemented interfaces | ||
634 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowMouseUpHandlers from the set of implemented interfaces | ||
635 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowOutHandlers from the set of implemented interfaces | ||
636 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasRowOverHandlers from the set of implemented interfaces | ||
637 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasSelectionChangedHandlers from the set of implemented interfaces | ||
638 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasSelectionUpdatedHandlers from the set of implemented interfaces | ||
639 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasSortChangedHandlers from the set of implemented interfaces | ||
640 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasSorterClickHandlers from the set of implemented interfaces | ||
641 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasSorterContextClickHandlers from the set of implemented interfaces | ||
642 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.events.HasViewStateChangedHandlers from the set of implemented interfaces | ||
643 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasDataArrivedHandlers from the set of implemented interfaces | ||
644 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasFolderClickHandlers from the set of implemented interfaces | ||
645 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasFolderClosedHandlers from the set of implemented interfaces | ||
646 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasFolderContextClickHandlers from the set of implemented interfaces | ||
647 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasFolderDropHandlers from the set of implemented interfaces | ||
648 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasFolderOpenedHandlers from the set of implemented interfaces | ||
649 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasLeafClickHandlers from the set of implemented interfaces | ||
650 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasLeafContextClickHandlers from the set of implemented interfaces | ||
651 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasNodeClickHandlers from the set of implemented interfaces | ||
652 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.events.HasNodeContextClickHandlers from the set of implemented interfaces | ||
653 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.BaseWidget from the list of superclasses | ||
654 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.Canvas from the list of superclasses | ||
655 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.grid.ListGrid from the list of superclasses | ||
656 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.layout.Layout from the list of superclasses | ||
657 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.layout.VLayout from the list of superclasses | ||
658 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Removed com.smartgwt.client.widgets.tree.TreeGrid from the list of superclasses | ||
659 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Parameter 1 of 'public XWikiExplorer(com.google.gwt.core.client.JavaScriptObject)' has changed its type to java.lang.String | ||
660 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public XWikiExplorer()' has been removed | ||
661 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'protected com.google.gwt.core.client.JavaScriptObject create()' has been removed | ||
662 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer getOrCreateRef(com.google.gwt.core.client.JavaScriptObject)' has been removed | ||
663 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public java.lang.String getSelectedAnchor()' has been removed | ||
664 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public java.lang.String getValue()' has been removed | ||
665 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public boolean isNewPageSelectedFromTextInput()' has been removed | ||
666 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public boolean isNewPageSelectedFromTreeNode()' has been removed | ||
667 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDefaultValue(java.lang.String)' has been removed | ||
668 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayAddAttachment(boolean)' has been removed | ||
669 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayAddAttachmentOnTop(boolean)' has been removed | ||
670 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayAddPage(boolean)' has been removed | ||
671 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayAddPageOnTop(boolean)' has been removed | ||
672 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayAttachments(boolean)' has been removed | ||
673 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayAttachmentsOnTop(boolean)' has been removed | ||
674 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayAttachmentsWhenEmpty(boolean)' has been removed | ||
675 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayLinks(boolean)' has been removed | ||
676 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplaySpaceNodesDisabled(boolean)' has been removed | ||
677 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplaySuggest(boolean)' has been removed | ||
678 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setDisplayWikiNodesDisabled(boolean)' has been removed | ||
679 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setSpace(java.lang.String)' has been removed | ||
680 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setValue(java.lang.String)' has been removed | ||
681 | org.xwiki.gwt.wysiwyg.client.widget.explorer.XWikiExplorer: Method 'public void setWiki(java.lang.String)' has been removed | ||
682 | org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.AttachmentsDataSource: Class org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.AttachmentsDataSource removed | ||
683 | org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.FarmDataSource: Class org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.FarmDataSource removed | ||
684 | org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.PageDataSource: Class org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.PageDataSource removed | ||
685 | org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.SpaceDataSource: Class org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.SpaceDataSource removed | ||
686 | org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.WikiDataSource: Class org.xwiki.gwt.wysiwyg.client.widget.explorer.ds.WikiDataSource removed | ||
687 | {{/code}} |