Wiki source code of Release Notes for XWiki 4.2

Last modified by Manuel Leduc on 2023/10/13

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 This is the release notes for XWiki Platform, XWiki Enterprise and XWiki Enterprise Manager. They share the same release notes as they are released together and have the same version.
6
7 This is the third release of the 4.x cycle ([[Roadmap>>Main.Roadmap]]).
8
9 {{error}}
10 The following important issues were found in this release after it was released:
11
12 * The new Application Panel is empty when on Oracle
13 * Send page by email and Reset Password are broken. You can [[work around the Reset Password issue>>https://jira.xwiki.org/browse/XWIKI-8264?focusedCommentId=72425&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-72425]].
14 * The new experimental Distribution Wizard (see below) doesn't work yet with Oracle
15
16 If you need these features you should wait for 4.3 or 4.2.1.
17 {{/error}}
18
19 {{warning}}
20 If you're upgrading from an older version and you use the new Distribution Wizard to upgrade your wiki pages you'll notice that it'll ask you to merge all pages that have been modified between your version and XWiki 4.2. This is because currently the Distribution Wizard doesn't know which version you have and thus asks you to perform the merge manually. This operation may take a long time (up to 20 minutes or so). Thus at the moment if you're upgrading from a previous version we recommend that you Cancel the Distribution Wizard and instead [[Import the new XAR>>Documentation.AdminGuide.UpgradeDatabase]]. This problem is [[reported in this issue>>https://jira.xwiki.org/browse/XWIKI-8252]] and should be fixed in the next release.
21 {{/warning}}
22
23 {{warning}}
24 If you are migrating from an earlier version than 4.0, and your database contains statistics collected using a version earlier than 2.2, you will probably encounter an issue during our automated database migration. To avoid that issue, you will need to clean up your statistics by executing some SQL commands described in issue [[XWIKI-8129>>https://jira.xwiki.org/browse/XWIKI-8129]]. Be sure to apply these before attempting the migration. If your are in doubt, apply it, these could not hurt. If you don't, you will face duplicate IDs errors during the migration process, and it will fail, preventing you to run your wiki.
25 {{/warning}}
26
27 = New and Noteworthy (since XWiki 4.1) =
28
29 == Extension Manager improvements ==
30
31 Main improvements:
32
33 * Starting with this version you can downgrade an extension. In other words, you can install an older version of an extension even if a newer version is currently installed. This doesn't apply to core extensions, which cannot be uninstalled, upgraded or downgraded individually. In order to downgrade an extension that is already installed you need to search for an older version. Currently this is possible only using the advanced search.(((
34 {{image reference="EM-extensionDowngradePlan.png"/}}
35 )))
36 * From the main wiki of a wiki farm you now have the option to trigger extension jobs (install, uninstall, upgrade, downgrade, etc.) that target all the wikis. For instance, as you can see below, you can install an extension on the entire wiki farm:(((
37 {{image reference="EM-extensionGlobalInstall.png"/}}
38 )))
39 * The log messages have been improved to include links to the affected documents or extensions as indicated in the following image~:(((
40 {{image reference="EM-extensionLogMessage"/}}
41 )))
42 * An administrator of a subwiki can now install XAR extension (as long as it does not require a JAR extension).
43
44 == Experimental install/upgrade wizard ==
45
46 Accessing a wiki page in view mode after an upgrade or when the database is empty (new install) will trigger a wizard that will allow you to install or update the default set of wiki pages and to upgrade or downgrade the extensions you may have previously installed.
47
48 The wizard is not yet production ready. It has a couple of issues we hope to fix very soon:
49
50 * information about core extensions is collected lazily and thus if you check distribution details just after starting XWiki you get incomplete information
51 * installing or checking the details of the user interface extension takes a couple of minutes depending on your internet bandwidth and the load of the remote extension repository
52 * some merge conflicts are reported even when the database is empty
53
54 The wizard currently has three steps. The first step offers an overview of the installation process by explaining the goal of the wizard and listing its steps.
55
56 {{image reference="ReleaseNotesXWikiEnterprise42RC1@DistributionWizard-WelcomeStep.png"/}}
57
58 In the second step you can see which XWiki distribution you are running and what is its recommended default set of wiki pages (the default user interface). You should install, upgrade or downgrade the UI so that it matches the distribution version.
59
60 {{image reference="[email protected]"/}}
61
62 The Continue button becomes available after the recommended version of the user interface is installed.
63
64 In the third step you can upgrade the installed extensions. We group them in two categories:
65
66 * extensions that don't work with your current distribution but which have new versions available that are compatible with your current distribution. These extension require an upgrade.
67 * extensions that should work fine with your current distribution but which have upgrades available. Upgrading these extensions is optional.
68
69 {{image reference="ReleaseNotesXWikiEnterprise42RC1@DistributionWizard-ExtensionsStep.png"/}}
70
71 You can refresh the list of extensions by recomputing the upgrade plan. The Skip and Cancel buttons have the same meaning as in the previous step. The Continue button is available only after the required upgrades are performed.
72
73 At the end you'll be redirected back to the wiki page you have accessed in the first place.
74
75 == Improvements to the Extension Repository Application ==
76
77 We modified the extension sheet to display the release notes for all the available versions of an extension. Check for instance the release notes for the [[Extended TODO Application>>extensions:Extension.Extended Todo Application||anchor="HReleaseNotes"]]:
78
79 {{image reference="ER-releaseNotes.png"/}}
80
81 == JIRA Macro ==
82
83 A [[new JIRA Macro>>extensions:Extension.JIRA Macro]] is now part of the Platform but is not bundled by default (you'll need to install it with the Extension Manager). We previously had a [[Contributed JIRA Macro>>extensions:Extension.Contrib JIRA Macro]] but we decided that the JIRA macro was a good candidate to have in the Platform and thus supported by the XWiki Development Team. Compared to the older Contributed JIRA Macro, the new Macro has the following advantages:
84
85 * No Programming Rights required
86 * Supports issue ordering
87 * Supports ability to register new Styles, new Data Sources and new Field Displayers
88 * Displays closed issues as Striked-out
89 * Written in Java with automated tests
90
91 {{image reference="extensions:Extension.JIRA [email protected]"/}}
92
93 == New field types for email and list of pages ==
94
95 Two new types of class properties have been added:
96
97 * The //Email// type extends the normal //String// type, adding by default a validation regular expression that should accept only a valid email address
98 * The //Page// type extends the normal //DBList// type, and allows to select one or more documents from the current wiki
99
100 These two new properties are still in development, and further improvements will be implemented in the next milestone.
101
102 == Computed class fields ==
103
104 Another new type of class fields adds support for //virtual values// computed live from other class values, data from the database, data obtained from an external service, or practically any other source of data. These fields are non-editable and aren't stored in the database, since they only provide some wiki content that will be rendered each time such a property is displayed.
105
106 Traditionally, this kind of computation would have been written directly in the sheet used to display instances of that class, but putting it in a class field allows easier reuse of the code, since the property will be //displayed// in livetables, when indexing the document in Lucene, when displaying documents in an index page, and so on.
107
108 == Improved upload UI ==
109
110 The new HTML5 FileUploader has been integrated in a few places:
111
112 * The standard attachment upload form
113 * The Import section of the Administration
114
115 See [[below>>||anchor="HNewHTML5FileUploadwidget"]] for more details about this feature.
116
117 == New logging administration UI ==
118
119 It's now possible to review and modify the log level for all registered loggers.
120
121 {{image reference="extensions:Extension.Logging [email protected]"/}}
122
123 == New Applications Panel ==
124
125 There's now a new "Applications" panel by default in XWiki Enterprise. This panel displays the applications present in your wiki.
126
127 {{image reference="applicationsPanelStandard.png"/}}
128
129 Administrators will get a couple of additional links, allowing them to install applications through the [[Extension Manager>>extensions:Extension.Extension Manager Application]], or to create new applications thanks to the [[App Within Minutes feature>>extensions:Extension.App Within Minutes Application]].
130
131 {{image reference="applicationsPanel.png"/}}
132
133 {{info}}
134 Note for application developers: your applications can provide their own entries in this menu by [[declaring a UI Extension>>extensions:Extension.UIExtension Module]].
135 {{/info}}
136
137 == Chart Macro Improvements ==
138
139 * The [[Chart macro>>extensions:Extension.Chart Macro]] will now automatically default to the ##inline## Data Source type when not specified and the Chart Macro has some content.
140 * [[Two new Chart types have been added: XY Line 3D and XY Step>>extensions:Extension.Chart Macro]]. Examples:(((
141 {{image reference="timeseries-line3D.png"/}}
142
143 {{image reference="timeseries-step.png"/}}
144 )))
145
146 == New Content Macro ==
147
148 The [[new Content macro>>extensions:Extension.Content Macro]] allows to enter content in any of the supported Syntaxes and thus allows to have content written in various syntaxes. For example, in a page in XWiki Syntax 2.0:
149
150 {{code}}
151 This is in **bold**
152
153 {{content syntax="confluence/1.0"}}
154 This is *bold* too!
155 {{/content}}
156 {{/code}}
157
158 == Documents Macro improvements ==
159
160 The ##~{~{documents}}## macro [[now supports specifying the list of columns to display>>extensions:Extension.Documents Macro]]. For example:
161
162 {{code}}
163 {{documents count="5" actions="false" space="Main" parent="Main.WebHome" columns="doc.title"/}}
164 {{/code}}
165
166 would display:
167
168 {{image reference="documents-columns.png"/}}
169
170 == Search improvements ==
171
172 The Lucene index also stores the MIME type of the indexed attachments, allowing to customize the search to only include or exclude attachments of a certain type. The new field is named [[##mimetype##>>doc:extensions:Extension.Search Application Query Syntax||anchor="Hmimetype"]] and it contains a valid MIME type string, as returned by the container in which XWiki is running. For example, add ##-mimetype:image/*## to a query to exclude all image attachments from the results, or add ##mimetype:application/pdf## to only search inside PDF attachments.
173
174 Remember that in case of an upgrade, you have to rebuild the entire index to have this new field for existing documents.
175
176 == Miscellaneous ==
177
178 * the progress tab is selected by default when you view the extension details if there is a job running (e.g. install in progress) for that extension
179 * when there is a merge conflict, the 'Show changes' button updates the changes asynchronously without reloading the entire page
180 * attachments of pages installed with the extension manager now have the right author set: the current user instead of the author from the XAR as it used to be
181 * the file size of attachments installed with the extension manager is now properly set
182 * the installation process is now more robust with respect to the exceptions that can occur while installing a JAR extension with components
183 * Document attachments so far have been displayed in the order in which they are returned by the database, which most of the time happened to be the upload date. Starting with this version attachments are displayed ordered by their filename, which makes it easier to find an attachment, but support for selecting a different order (date, size, author...) will be added soon.
184 * Uploading attachments with '+' character in their file names using the WebDAV interface shouldn't pose any more problems.
185 * It's now possible to use Velocity scripts in the Copyright field in the Administration.
186 * The XWiki Installer now fully works on Windows 7. The XWiki Data is now put in the ##%APPDATA%\XWiki Enterprise <version>\data## directory, while the binaries are installed in ##Program Files##.
187 * It is no longer allowed to use scripts in comments. This reduces the security risk from users that only have comment rights.
188 * Macro parameters may now contain macro syntax. Example: {{{{{box title="{{info}}Hello!{{/info}}" }}Lorem ipsum ...{{/box}}}}}
189 * Improve OOB support for JBoss AS7:
190 ** Removed Struts Taglibs completely since we don't use them and some were defined but not made available, causing errors in deployments on JBoss AS7 ({{jira style="enum" url="https://jira.xwiki.org"}}XWIKI-7986{{/jira}})
191 ** Fixed Logging conflict between JBoss AS and XWiki ({{jira style="enum" url="https://jira.xwiki.org"}}XWIKI-7987{{/jira}})
192 * The [[IRC Bot Application>>extensions:Extension.IRC Bot Application]] now recognizes XAR import events and when receiving one, it doesn't send subsequent IRC notifications for modified or created documents to avoid spamming the IRC channel.
193 * Display the request URL in the IRC channel when the Link Checker bot listener is active and a broken link is found, thus making it easier to reproduce and debug the broken link
194
195 = For Developers =
196
197 == New Git Module ==
198
199 A new, optional (i.e. not installed by default), [[Git Module has been added>>extensions:Extension.Git Module]]. It allows to easily perform Git operations from within wiki pages. For example to count all commits for the past year and list all committers who's committed code during this period, you could write in a wiki page:
200
201 {{code language="java"}}
202 {{groovy}}
203 import org.apache.commons.io.*
204 import org.eclipse.jgit.api.*
205 import org.eclipse.jgit.lib.*
206 import org.eclipse.jgit.revwalk.*
207 import org.eclipse.jgit.storage.file.*
208 import org.gitective.core.*
209 import org.gitective.core.filter.commit.*
210
211 def service = services.get("git")
212 def commonsRepository = service.getRepository("git://github.com/xwiki/xwiki-commons.git", "xwiki-commons")
213 // Do a Git pull to get latest commits
214 new Git(commonsRepository).pull().call()
215 def finder = new CommitFinder(commonsRepository)
216
217 def dateFilter = new CommitterDateFilter(System.currentTimeMillis() - 365*24*60*60*1000L)
218 def countFilter = new CommitCountFilter()
219 def authorFilter = new AuthorSetFilter()
220 def filters = new AndCommitFilter()
221 filters.add(countFilter, authorFilter)
222 finder.setFilter(dateFilter)
223 finder.setMatcher(filters)
224 finder.find()
225
226 println "There have been ${countFilter.count} commits in the past year!"
227 println ""
228
229 println "The following committers have participated in those commits:"
230 authorFilter.getPersons().each() {
231 println "* ${it.name} (${it.emailAddress})"
232 }
233 {{/groovy}}
234 {{/code}}
235
236 == Default custom displayers ==
237
238 While XWiki allowed to specify a custom display for a given field, it was impossible to change the way field types, such as //DateProperty// or //IntegerProperty//, are displayed in general. Now it is possible to define custom displayers at the farm or wiki level, which gives the administrators more power to change the look and feel of the wiki. For example, this allows to use HTML5 input types for dates and numbers, to use custom suggestions for //list of users// fields, or to always add a validation input for all the //password// field types.
239
240 To use this feature, first you need to compute a //type// name for your property type. This is obtained from the java class simple name, removing the ##Class## suffix, and lowercasing. For example, for numbers the java class used is ##com.xpn.xwiki.objects.classes.NumberClass##, with the simple name ##NumberClass##, which gives ##number## as the type name. For a database list, we get ##dblist## from ##DBListClass##.
241
242 Next, there are three places where a default custom displayer can be defined.
243
244 1. If a document whose name is the //type// capitalized and suffixed with ##Displayer## exists in the ##XWiki## space in the current wiki, then its content is used as the default custom displayer for that type of property. For example, ##localwiki:XWiki.NumberDisplayer## and ##localwiki:XWiki.DblistDisplayer##.
245 1. If a document whose name is the //type// capitalized and suffixed with ##Displayer## exists in the ##XWiki## space in the main wiki, then its content is used as the default custom displayer for that type of property. For example, ##xwiki:XWiki.NumberDisplayer## and ##xwiki:XWiki.DblistDisplayer##.
246 1. If a velocity template whose name is the //type// suffixed with ##.vm## exists in the current skin, then it is evaluated as the default custom displayer for that type of property. A skin file can be defined in many places, such as an attachment of a skin document, a file in a named skin on the filesystem, or a file in the ##templates/## directory.
247
248 If a specific class property provides custom display code in the XClass, then that code takes priority over an eventual default custom displayer for that property.
249
250 As with property custom displayers, when evaluating the display code several objects are placed in the context:
251
252 * ##name## is the name of the property being displayed
253 * ##prefix## is the HTML name prefix to append to an eventual input field name, and contains the XClass name, an underscore, the object number, and another underscore, for example ##XWiki.XWikiUsers_0_##
254 * ##object## is the object owning the displayed property, an instance of the public ##com.xpn.xwiki.api.Object## class
255 * ##type## is the target display type, one of ##view##, ##edit##, ##hidden## or ##search##
256
257 == New API to manipulate log level ==
258
259 Several method as been added to ##org.xwiki.logging.LoggerManager## to manipulate the log level of registered loggers.
260
261 {{code language="java"}}
262 /**
263 * Associate the passed logger to the passed log level.
264 *
265 * @param loggerName the logger
266 * @param level the level of the logger
267 */
268 void setLoggerLevel(String loggerName, LogLevel level);
269
270 /**
271 * @param loggerName the logger
272 * @return the log level associated to the logger
273 */
274 LogLevel getLoggerLevel(String loggerName);
275
276 /**
277 * @return all the registered loggers
278 */
279 Collection<Logger> getLoggers();
280 {{/code}}
281
282
283 == New HTML5 File Upload widget ==
284
285 The [[File Upload widget>>doc:Documentation.DevGuide.FrontendResources.HTML5Upload.WebHome]] can enhance HTML input elements of type file to provide an interactive upload UI. It can submit files either automatically when the user selects local files, or after the user presses the container form's submit button.
286
287 To use this widget, it is enough to create a new instance of ##XWiki.FileUploader## passing the target ##input## element as the first parameter, and an optional configuration object as the second parameter.
288
289 {{code language="javascript"}}
290 new XWiki.FileUploader(targetInput, {
291 autoUpload: true,
292 progressAutohide: true
293 });
294 {{/code}}
295
296 [[image:Documentation.DevGuide.FrontendResources.HTML5Upload.WebHome@html5uploads.png||class="screenshot"]]
297
298 == JSRX and SSRX ==
299
300 It's now possible by default to add [[skin extensions>>extensions:Extension.Skin Extension Plugin]] located in JAR files. Example usage:
301
302 {{code}}
303 $xwiki.jsrx.use("/path/to/file.js")
304 $xwiki.ssrx.use("/path/to/file.css")
305 {{/code}}
306
307 The content of the resource is obtained using the current context class loader. The path starts on the root of the jar that contains the requested file.
308
309 == Attachment Picker improvements ==
310
311 It is now possible to specify a different document for the source (and target in case of uploads) of attachments, using the new ##targetdocname## macro parameter.
312
313 == Extension Manager improvements ==
314
315 * the custom Maven property <xwiki.extension.features> now accept any number of new lines and white spaces between elements(((
316 {{code language="xml"}}
317 <xwiki.extension.features>
318 org.xwiki.platform:xwiki-platform-oldcore,
319 com.xpn.xwiki.platform:xwiki-core
320 </xwiki.extension.features>
321 {{/code}}
322 )))
323 * new custom properties added to overwrite standard Maven properties:
324 ** ##xwiki.extension.name## to overwrite ##<name>##
325 ** ##xwiki.extension.summary## to overwrite ##<description>##
326 ** ##xwiki.extension.website## to overwrite ##<url>##
327
328 == XAR format improvement ==
329
330 It's now possible to indicate the extension identifier right in the XAR package descriptor (package.xml). Among other things this allow standard import UI to find what it currently importing and register it automatically as installed extension if it can be found in the registered repositories during import process.
331
332 The XAR Maven plugin automatically take care of adding this information to the generated package.xml for Maven project. If for some reason you need to indicate it by hand you can use the property <extensionId> under the the <infos> element in the package.xml file.
333
334 {{code language="xml"}}
335 <package>
336 <infos>
337 <name>XWiki Platform - Extension - UI</name>
338 <description>XWiki Extension Manager, an application for managing extensions in a wiki.</description>
339 <licence></licence>
340 <author>XWiki.Admin</author>
341 <extensionId>org.xwiki.platform:xwiki-platform-extension-ui</extensionId>
342 <version>4.2-SNAPSHOT</version>
343 <backupPack>true</backupPack>
344 </infos>
345 <files>
346 [...]
347 </files>
348 </package>
349 {{/code}}
350
351 == New UI Extension mechanism (experimental) ==
352
353 We're in the process of allowing applications to insert custom content in pre-defined places in the user interface. A first Extension Point has been defined in the new "Applications" panel, you can read more about this in the [[UI Extension module documentation>>extensions:Extension.UIExtension Module]].
354
355 == Deprecated and Retired projects ==
356
357 <description of deprecated and retired projects>
358
359 == Upgrades ==
360
361 The following dependencies have been upgraded:
362
363 * Infinispan 5.1.5
364 * JDeb 0.11
365 * JGroups 3.1.0
366 * Tika 1.2
367 * GWT 2.5 RC1
368 * Selenium 2.25
369 * Prototype.js 1.7.1
370 * Jython 2.5.3
371 * Pegdown 1.1.0 (used by the XWiki Markdown Parser)
372 * Xalan 2.7.1
373
374 == Miscellaneous ==
375
376 * The transformation context have a "restricted" flag to indicate that macros and other transformations should not perform modifications to the database, expensive computations or other potentially harmful operations. Developers of macros and other rendering extensions should pay attention to this flag.
377 * The messageSender macro now accepts 3 parameters that allow you to customize it by overriding the default displayed visibility levels for a message (that a user can choose from), the default selected visibility level and the default value (in case of user or group visibility). More details on {{jira style="enum" url="https://jira.xwiki.org"}}XWIKI-7974{{/jira}}.
378 * The [[new experimental Security API that was first released in XWiki 4.0>>xwiki:ReleaseNotes.ReleaseNotesXWikiEnterprise40||anchor="HNewRightsImplementation28Experimental29"]] is now bundled by default in XWiki Enterprise.
379 * It's now possible to access root ComponentManager using "root" role hint:(((
380 {{code language="java"}}
381 @Inject
382 @Named("root")
383 private ComponentManager rootComponentManager;
384 {{/code}}
385 )))
386 * A Provider has been added to easily access the context ComponentManager (a proxy which choose the right ComponentManager depending on context information like the current user and the current wiki)(((
387 {{code language="java"}}
388 @Inject
389 @Named("context")
390 private Provider<ComponentManager> contextComponentManager;
391 {{/code}}
392 )))
393 * The ##AbstractMockingComponentTestCase## testing framework class has been modified. Read the [[Testing page>>dev:Community.Testing]] for more details on how to use it.
394
395 = Translations =
396
397 The following translations have been updated:
398
399 {{language codes="da, fr, pt_BR, ru, zhm, hu, it, lv, sv"/}}
400
401 = Tested Browsers =
402
403 Here's the list of browsers tested with this version (i.e. browsers that we've tested as working - Check the list of [[supported browsers>>dev:Community.BrowserSupportStrategy]]):
404
405 {{velocity}}
406 ## name = iexplorer, firefox, chrome, safari, opera
407 {{/velocity}}
408
409 {{browser name="firefox" version="15.0.1"/}}
410
411 = Known issues =
412
413 * [[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]]
414
415 = Test Report =
416
417 You can check the [[manual test report>>TestReports.ManualTestReportXE42RC1]] to learn about what was tested and the results on various browsers.
418
419 = Backward Compatibility and Migration Notes =
420
421 == General Notes ==
422
423 You may also want to [[import the default wiki XAR>>Main.Download]] in order to benefit from all the improvements listed above.
424
425 {{warning}}
426 Always make sure you compare your ##xwiki.cfg## and ##xwiki.properties## files with the newest version since some configuration parameters were 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.
427 {{/warning}}
428
429 == API Breakages ==
430
431 The following APIs were modified since XWiki 4.1:
432
433 * The logging module is new and is still considered a "young API". Added new methods to manipulate loggers levels.(((
434 {{code language="none"}}
435 org.xwiki.logging.LoggerManager: Method 'public org.xwiki.logging.LogLevel getLoggerLevel(java.lang.String)' has been added to an interface
436 org.xwiki.logging.LoggerManager: Method 'public java.util.Collection getLoggers()' has been added to an interface
437 org.xwiki.logging.LoggerManager: Method 'public void setLoggerLevel(java.lang.String, org.xwiki.logging.LogLevel)' has been added to an interface
438 {{/code}}
439 )))
440 * Fix method name typo (adding new method). This interface is not really supposed to be implemented except by internal class.(((
441 {{code language="none"}}
442 org.xwiki.properties.PropertyDescriptor: Method 'public java.lang.reflect.Field getField()' has been added to an interface
443 {{/code}}
444 )))
445 * New #isValid() method(((
446 {{code language="none"}}
447 org.xwiki.extension.InstalledExtension: Method 'public boolean isValid(java.lang.String)' has been added to an interface
448 {{/code}}
449 )))
450 * The Extension module is relatively new and is still undergoing some API tuning. New method to access environment extension. Also added new methods to execute custom checking before installing/uninstalling an extension and new methods to access local:installed extensions.(((
451 {{code language="none"}}
452 org.xwiki.extension.handler.ExtensionHandler: Method 'public void checkInstall(org.xwiki.extension.Extension, java.lang.String, org.xwiki.job.Request)' has been added to an interface
453 org.xwiki.extension.handler.ExtensionHandler: Method 'public void checkUninstall(org.xwiki.extension.InstalledExtension, java.lang.String, org.xwiki.job.Request)' has been added to an interface
454 org.xwiki.extension.repository.CoreExtensionRepository: Method 'public org.xwiki.extension.CoreExtension getEnvironmentExtension()' has been added to an interface
455 org.xwiki.extension.repository.InstalledExtensionRepository: Method 'public org.xwiki.extension.InstalledExtension getInstalledExtension(org.xwiki.extension.ExtensionId)' has been added to an interface
456 org.xwiki.extension.repository.LocalExtensionRepository: Method 'public org.xwiki.extension.LocalExtension getLocalExtension(org.xwiki.extension.ExtensionId)' has been added to an interface
457 org.xwiki.job.Request: Method 'public boolean containsProperty(java.lang.String)' has been added to an interface
458 org.xwiki.job.Request: Method 'public java.lang.Object removeProperty(java.lang.String)' has been added to an interface
459 {{/code}}
460 )))
461 * New methods in the oldcore/wikimacro bridge(((
462 {{code}}
463 org.xwiki.rendering.macro.wikibridge.WikiMacro: Method 'public org.xwiki.model.reference.DocumentReference getAuthorReference()' has been added to an interface
464 org.xwiki.rendering.macro.wikibridge.WikiMacroFactory: Method 'public boolean isAllowed(org.xwiki.model.reference.DocumentReference, org.xwiki.rendering.macro.wikibridge.WikiMacroVisibility)' has been added to an interface
465 {{/code}}
466 )))
467 * TODO Andreas: Explain why we have to break backward compatibility for the Chart module(((
468 {{code}}
469 org.xwiki.rendering.macro.chart.ChartDataSource: Field PARAMS has been removed, but it was previously a constant
470 org.xwiki.rendering.macro.chart.ChartDataSource: Field SOURCE has been removed, but it was previously a constant
471 org.xwiki.rendering.macro.chart.ChartMacroParameters: Method 'public java.util.Map getParametersMap()' has been removed
472 org.xwiki.chart.model.ChartModel: Method 'public org.jfree.chart.axis.Axis getAxis(int)' has been added to an interface
473 org.xwiki.chart.model.ChartModel: Method 'public java.lang.Number getCellValue(int, int)' has been removed
474 org.xwiki.chart.model.ChartModel: Method 'public int getColumnCount()' has been removed
475 org.xwiki.chart.model.ChartModel: Method 'public java.lang.String getColumnHeader(int)' has been removed
476 org.xwiki.chart.model.ChartModel: Method 'public org.jfree.data.general.Dataset getDataset()' has been added to an interface
477 org.xwiki.chart.model.ChartModel: Method 'public int getRowCount()' has been removed
478 org.xwiki.chart.model.ChartModel: Method 'public java.lang.String getRowHeader(int)' has been removed
479 org.xwiki.chart.model.DefaultChartModel: Class org.xwiki.chart.model.DefaultChartModel removed
480 {{/code}}
481 )))
482 * Removed protected method (registerWikiMacros) that was not supposed to be used from outside (was protected for unit tests hacks.)(((
483 {{code}}
484 com.xpn.xwiki.XWiki: Method 'protected void registerWikiMacros()' has been removed
485 {{/code}}
486 )))
487 * These classes below have never been used. It was supposed to be the start of the removal of Struts but since it hasn't progressed so far we're removing stray code from master. Experiments should be done on feature branches(((
488 {{code}}
489 org.xwiki.container.servlet.XWikiServlet: Class org.xwiki.container.servlet.XWikiServlet removed
490 {{/code}}
491 )))
492 * Added a new sendMessageFromTemplate method signature that uses a map of parameters instead of a VelocityContext(((
493 {{code}}
494 com.xpn.xwiki.plugin.mailsender.MailSender: Method 'public int sendMessageFromTemplate(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Map)' has been added to an interface
495 {{/code}}
496 )))

Get Connected