Wiki source code of Release Notes for XWiki 4.5

Last modified by Thomas Mortagne on 2023/10/13

Hide last authors
Eduard Moraru 1.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
Vincent Massol 4.1 5 {{warning}}
Thomas Mortagne 11.1 6 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]]. In rare situation, you may also need to apply commands described in issue [[XWIKI-8828>>https://jira.xwiki.org/browse/XWIKI-8828]]. 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.
Vincent Massol 4.1 7 {{/warning}}
8
9 {{warning}}
Thomas Mortagne 11.1 10 If you are upgrading to this version from an older version which uses Lucene 3.x, you have to manually delete the lucene directory in the xwiki data directory. For example, that could cause Lucene to loop endlessly while trying to index pages, among other things. This is caused by the Lucene migration to 4.0 (see [[XWIKI-8404>>https://jira.xwiki.org/browse/XWIKI-8404]]).
Vincent Massol 4.1 11 {{/warning}}
12
Marius Dumitru Florea 8.1 13 {{warning}}
Thomas Mortagne 11.1 14 If you are upgrading from a version older than 4.5M1 and you have applications (or extensions) that were created with AppWithinMinutes the live table from their home page won't display any results. The quick fix is to edit and save the application, but be aware that you can loose customizations this way. This problem is going to be fixed in 4.5.1 (see [[XWIKI-8833>>https://jira.xwiki.org/browse/XWIKI-8833]]).
Marius Dumitru Florea 8.1 15 {{/warning}}
16
Eduard Moraru 1.1 17 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.
18
Vincent Massol 6.1 19 This version brings improvements and stabilization to the Extension Manager and Distribution Wizards. It also adds the ability to internationalize applications created with the App Within Minutes tool, and continues the improvements of the new experimental Solr search integration. This is the last release of the XWiki 4.x cycle.
Eduard Moraru 1.1 20
Eduard Moraru 1.2 21 = New and Noteworthy (since XWiki 4.4.1) =
Eduard Moraru 1.1 22
Thomas Mortagne 11.1 23 [[Full list of issues fixed and Dashboard for 4.5>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=11390]].
Vincent Massol 9.1 24
Vincent Massol 4.1 25 == Distribution Wizard improvements ==
Eduard Moraru 1.1 26
Vincent Massol 4.1 27 When upgrading from an old version that didn't have the distribution wizard, the wizard doesn't know what user interface (XAR) was previously installed (imported). This information can help the Extension Manager merge automatically the wiki pages from your database with those from the new version of the user interface.
28
29 The distribution wizard will first ask you if you are performing an upgrade.
30
31 {{image reference="ReleaseNotesXWiki45M1@DW-previousUiUpgradeQuestion.png"/}}
32
33 Then you need to select the user interface version that was previously installed.
34
35 {{image reference="ReleaseNotesXWiki45M1@DW-previousUiForm-01.png"/}}
36
37 The distribution wizard determines the id of the previously imported XAR based on the selected version.
38
39 {{image reference="ReleaseNotesXWiki45M1@DW-previousUiForm-02.png"/}}
40
41 You can edit the suggested id if you know you had a different user interface previously installed.
42
43 {{image reference="ReleaseNotesXWiki45M1@DW-previousUiForm-03.png"/}}
44
45 Finally you need to repair the specified user interface extension. This will mark the extension as installed (update the extension index without actually importing the wiki pages from the XAR).
46
47 {{image reference="ReleaseNotesXWiki45M1@DW-previousUiExtension.png"/}}
48
49 {{image reference="ReleaseNotesXWiki45M1@DW-repairPreviousUiExtension.png"/}}
50
51 Next you can install the new version of the user interface.
52
53 Note that if you're upgrading an old XEM instance, the Distribution Wizard is now suggesting the right UI extension id when selecting the previous version.
54
55 {{image reference="ReleaseNotesXWiki45RC1@DW-suggestIdForXEM.png"/}}
56
57 == Translatable AppWithinMinutes apps ==
58
59 The AppWithinMinutes wizard is now generating a document translation bundle for the application which allows you to translate class field pretty names, list values (for static list fields) and live table columns names. If you have an existing application that was created with AppWithinMinutes you just have to edit and save it to get the new translation bundle.
60
61 If your wiki is setup for multilingual support then on the application home page, in the application menu, you now have an entry to translate the application. The link takes you to the document translation bundle.
62
63 {{image reference="ReleaseNotesXWiki45M1@AWM-translateAppMenu.png"/}}
64
65 When editing an application you now have the option to update the translation bundle. Note that for the moment the translation bundle (its default language) is regenerated so you may lose translation keys you added yourself. In the future we want to update the translation bundle preserving the custom keys.
66
67 {{image reference="ReleaseNotesXWiki45M1@AWM-updateTranslationsOption.png"/}}
68
69 See the [[AppWithinMinutes documentation>>extensions:Extension.App Within Minutes Application]] for more information.
70
71 == Experimental Solr search improvements ==
72
73 === Remote Solr instance support ===
74
75 You can now configure the Solr search to use a remote Solr instance instead of the embedded server that runs in the same JVM with XWiki. To do that, you have to:
76 - set the ##solr.type## property inside the ##WEB-INF/xwiki.properties## file from the default value of "embedded" to "remote"
77 - set the ##solr.remote.url## property to the URL where your remote server can be accessed.
78
79 Note: don't forget to uncomment (remove the leading # character) the properties when setting their values. If you do forget, the default values will be used instead of yours.
80
81 There can be various reasons (security, performance, economy, etc.) why you would want to use a remote server instead of the embedded one, but you will have to make sure that you are using (or building on top of) the Solr configuration that XWiki knows how to work with.
Sergiu Dumitriu 6.2 82 Once XWiki is started with ##solr.type## set to ##remote##, you can go to the ##XWiki.SolrSearchAdmin## page inside your wiki (main wiki, if using a multiwiki setup) and download the attached ##conf.zip## file. It contains the structure of your the Solr home directory that you can use for your remote instance. Just unzip it in a directory and set that directory to be your Solr home for your remote server.
Vincent Massol 4.1 83
84 === Improved multilingual support ===
85
86 In order to properly index content of various languages and, as a consequence, obtain better search results, we have chosen the single-index-multiple-fields approach.
87
88 This means that, a couple of interesting multilingual index fields (title, doccontent, comment, objcontent, propertyvalue and attcontent) are now configured as field aliases that get automatically expanded at query time to all their configured multilingual variations. Each language "variation" is of the form ##fieldName_language## (title_en, title_fr, title_ro, etc...) and contains the content indexed in a language-specific way. There also exists a ##fieldName_ml## field "variation" that is used as a form of backup, for languages outside the list of already configured ones, but is also useful in everyday queries since it does lighter analysis on the content.
89
90 Example: a query on (title:test) gets converted to (title_ml:test | title_en:test | title_ro:test | title_fr:test | ...)
91
92 Additionally, attachments, objects and object properties are now indexed for each of the languages of the translations of the original document to which they belong. This now allows them to be found when searching for content in a translation of a document and not just content in the language of the original document, as it was before.
93
Vincent Massol 5.1 94 === Search sorting ===
Vincent Massol 4.1 95
Eduard Moraru 3.1 96 The previously not-working sorting UI element has been now implemented.
Eduard Moraru 1.1 97
Vincent Massol 4.1 98 {{image reference="solr-sort.png"/}}
Eduard Moraru 3.1 99
100 Note: There are still some hiccups, like the fact that the ordering does not ignore casing, but they will be fixed.
101
Eduard Moraru 1.1 102 == Miscellaneous ==
103
Vincent Massol 4.1 104 * The message sender is now using the new user/group picker.(((
105 {{image reference="ReleaseNotesXWiki45M1@messageSender-userPicker.png"/}}
106 )))
107 * The create and manage workspace forms are now using the new user picker.(((
108 {{image reference="ReleaseNotesXWiki45M1@createWorkspace-ownerAndMembers.png"/}}
109 )))
110 * You can now add or invite multiple users at once to an workspace, and the user name field uses the new user picker.(((
111 {{image reference="ReleaseNotesXWiki45M1@workspace-administration-users-add-invite.png"/}}
112 )))
113 * We improved the way changes are displayed by emphasizing the in-line changes.(((
114 {{image reference="ReleaseNotesXWiki45M1@unifiedDiff.png"/}}
115 )))
Thomas Mortagne 11.1 116 * Support for searching content in Java Class file attachments [[has been temporarily dropped>>https://jira.xwiki.org/browse/XWIKI-8656]].
Vincent Massol 4.1 117 * Markdown syntax support has been completely rewritten, fixing several existing bugs.
118 * The home page (##Main.WebHome##) can now safely be edited by any user who has edit permission (In earlier releases, the AJAX suggest feature for tags would unexpectedly break if users not having Programming Rights edited the page).
Thomas Mortagne 12.1 119 * PostGreSQL support for multiwiki mode (see Backward Compatibility notes below and the [[PostGreSQL installation instructions>>Documentation.AdminGuide.InstallationPostgreSQL]]).
Eduard Moraru 1.1 120
Thomas Mortagne 11.1 121 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%2C+XEM%29+and+status+%3D+Closed+and+resolution+%3D+Fixed+and+fixVersion+in+%28%224.5-milestone-1%22%2C+%224.5-rc-1%22%2C+%224.5%22%29&tempMax=1000]] fixed in this release.
Eduard Moraru 1.1 122
123 = For Developers =
124
Vincent Massol 4.1 125 == Embed translations in JAR extension ==
Eduard Moraru 1.1 126
Vincent Massol 4.1 127 It's now possible for any JAR to come with it's own translation bundle. For that you need to provide at the root of the JAR a set of ##ApplicationResources.properties## based translations. See [[Localization Module>>extensions:Extension.Localization Module]] for more.
Eduard Moraru 1.1 128
Vincent Massol 4.1 129 == Extensible search UI implementations ==
130
131 It is now possible to provide your custom search UI implementation that will become available in the list of search engines under ##Administration > Applications > Search##.
132
133 To achieve this, we have declared the ##org.xwiki.platform.search## [[UI Extension>>extensions:Extension.UIExtension Module]] point ID that accepts 3 parameters:
134
135 1. ##title## - the text to display for your implementation in the search engine select
136 1. ##admin## - a reference to the wiki page where you administrate your search implementation (ex: 'XWiki.SolrSearchAdmin')
137 1. ##search## - a reference to the search page that should be used when your search implementation is active (ex: 'Main.SolrSearch')
138
Eduard Moraru 1.1 139 == Deprecated and Retired projects ==
140
Vincent Massol 4.1 141 No project was retired.
Eduard Moraru 1.1 142
143 == Upgrades ==
144
Vincent Massol 4.1 145 No library was upgraded.
Eduard Moraru 1.1 146
147 == Miscellaneous ==
148
Vincent Massol 4.1 149 * It is now possible to delegate programming rights directly to a filesystem template to allow it to access the privileged API by adding the template name to the set defined in DefaultPrivilegedTemplateRenderer. Such a template cannot currently access the context document, but this restriction will most likely be removed in 5.0.
150 * Renamed the lucene search module and modified the search-ui module. As part of the refactorings performed on the search application, the ##xwiki-platform-search-lucene## module has now been renamed to ##xwiki-platform-search-lucene-api##. Also, pages related to Lucene search that were previously inside ##xwiki-platform-search-ui## have now been moved to the new ##xwiki-platform-search-lucene-ui## module.(((
Thomas Mortagne 11.1 151 If you were depending in your application on these modules/pages, please update your references accordingly. For more details on the new layout, lease see {{jira style="enum" url="https://jira.xwiki.org"}}XWIKI-8766{{/jira}}.
Vincent Massol 4.1 152 )))
153
Eduard Moraru 1.1 154 = Translations =
155
156 The following translations have been updated:
157
Vincent Massol 4.1 158 {{language codes="fr,ru,ko,sv,pt_BR"/}}
Eduard Moraru 1.1 159
160 = Tested Browsers & Databases =
161
162 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]]):
163
164 {{velocity}}
165 ## name = iexplorer, firefox, chrome, safari, opera
166 {{/velocity}}
167
Vincent Massol 4.1 168 {{browser name="firefox" version="17"/}}
Eduard Moraru 1.1 169
Manuel Smeria 8.2 170 {{browser name="firefox" version="18"/}}
171
Eduard Moraru 1.1 172 Here's the list of databases tested with this version (i.e. databases that we've tested as working - Check the list of [[supported databases>>dev:Community.DatabaseSupportStrategy]]):
173
174 {{velocity}}
175 ## name = hsqldb, mysql, postgresql, oracle, opera
176 {{/velocity}}
177
Vincent Massol 4.1 178 {{database name="hsqldb" version="2.2.9"/}}
Eduard Moraru 1.1 179
Manuel Smeria 8.2 180 {{database name="mysql" version="5.5.29"/}}
181
Vincent Massol 4.1 182 {{database name="postgresql" version="8.4.12"/}}
183
Eduard Moraru 1.1 184 = Known issues =
185
Thomas Mortagne 11.1 186 * [[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]]
Eduard Moraru 1.1 187
188 = Test Report =
189
Manuel Smeria 6.3 190 You can check the [[manual test report>>TestReports.ManualTestReportXWiki45]] to learn about what was tested and the results on various browsers.
Eduard Moraru 1.1 191
192 = Backward Compatibility and Migration Notes =
193
194 == General Notes ==
195
Vincent Massol 4.1 196 {{warning}}
197 PLEASE, BACKUP YOUR DATABASE BEFORE STARTING YOUR WIKI.
198 AUTOMATED MIGRATION PROCEDURE TAKE PLACE AT STARTUP AND YOU MAY NEED TO START OVER IF YOU ENCOUNTER AN UNEXPECTED ISSUE.
199 {{/warning}}
200
Eduard Moraru 1.1 201 You may also want to [[import the default wiki XAR>>Main.Download]] in order to benefit from all the improvements listed above.
202
203 {{warning}}
204 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.
205 {{/warning}}
206
Vincent Massol 4.1 207 {{warning}}
Thomas Mortagne 11.1 208 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.
Vincent Massol 4.1 209 {{/warning}}
210
211 {{warning}}
212 If you have encountered an issue with the migration, you may need to start over from a backup. Be careful that during the migration, two new tables have been created (in each xwiki database for a farm) and should be dropped when you restore a backup of a database coming from a version earlier than 4.x. These two tables are DATABASECHANGELOG and DATABASECHANGELOGLOCK. These should only be removed if you restore a pre-4.x database schema. Mixing an old database with these two tables will surely cause issue during schema updates (liquibase checksum failure).
213 {{/warning}}
214
Eduard Moraru 1.1 215 == Issues specific to XWiki 4.5 ==
216
Vincent Massol 4.1 217 * Changes in the experimental Solr implementation
218 ** The ##xwiki.properties## file now contains solr specific configuration, please make sure to merge it with your own. If you were previously using the ##search.solr.home## property to specify your own index directory, you need to use the new ##solr.embedded.home## property, as specified in the xwiki.properties file.
219 ** The Solr index and configuration files have suffered major changes. When upgrading, you need to delete the ##<permanentDirectory>/solr## directory so that Solr can reinitialize it with the new configuration and index structure. Also, a reindexation is obviously required.
Thomas Mortagne 11.1 220 ** Solr index structure and configuration changes have been slightly changed, you will need to update your configuration and reindex. See {{jira style="enum" url="https://jira.xwiki.org"}}XWIKI-8795
Eduard Moraru 1.1 221 XWIKI-8797{{/jira}}.
Vincent Massol 4.1 222 * In case you were using a custom search implementation before this version which relied on previous naming and location conventions, you will need to make the necessary adjustments, meaning that you have to declare your implementation as an extension to the search application's extension point [[(see above)>>||anchor="HExtensiblesearchUIimplementations"]].
Thomas Mortagne 11.1 223 * The new default mode for PostGreSQL is the ##schema## mode, i.e. new wikis are created as schema. Previously the default was ##database## but [[there are still issues with it>>https://jira.xwiki.org/browse/XWIKI-8753]]. The configuration is done in ##hibernate.cfg.xml## by setting {{code}}<property name="xwiki.virtual_mode">schema|database</property>{{/code}}.
Eduard Moraru 1.1 224
225 == API Breakages ==
226
227 The following APIs were modified since XWiki 4.4.1:
228
Vincent Massol 4.1 229 * New method to access bundle:(((
Eduard Moraru 1.1 230 {{code language="none"}}
Vincent Massol 4.1 231 org.xwiki.localization.LocalizationManager: Method 'public org.xwiki.localization.TranslationBundle getTranslationBundle(java.lang.String, java.lang.String)' has been added to an interface
Eduard Moraru 1.1 232 {{/code}}
Vincent Massol 4.1 233 )))
234 * Removed the workspaceName parameter to properly fix XWIKI-8394. The actual workspace name should be passed to the XWikiServer parameter instead:(((
235 {{code language="none"}}
236 org.xwiki.workspace.WorkspaceManager: Parameter 1 of 'public com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer createWorkspace(java.lang.String, com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer)' has changed its type to com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer
237 org.xwiki.workspace.WorkspaceManager: Parameter 2 of 'public com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer createWorkspace(java.lang.String, com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer)' has changed its type to java.lang.String
238 org.xwiki.workspace.WorkspaceManager: In method 'public com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer createWorkspace(java.lang.String, com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer, java.lang.String)' the number of arguments has changed)))
239 {{/code}}
240 )))

Get Connected