Release Notes for XWiki 5.0 Milestone 2
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.
<insert description of release here>
New and Noteworthy (since XWiki 5.0 Milestone 1)
Full list of issues fixed and Dashboard for 5.0.
Automatic Paste Cleaning in WYSIWYG Editor
Starting with this version, whenever you paste some content into the rich text area of the WYSIWYG Editor that content is (by default) automatically cleaned before being inserted into the rest of the content.
You can disable the automatic cleaning from the WYSIWYG Editor administration section if you wish:
Virtual mode is always enabled
Virtual mode and multiwiki is now part of XWiki's model and can no longer be disabled. What this means is that the difference between the 2 main products (XE and XEM) is getting smaller and smaller.
In the past, XEM differed from XE by the fact that it allowed the creation of multiple wikis (called subwikis) because it had the property xwiki.virtual=1 by default in xwiki.cfg, where as XE had xwiki.virtual=0 by default. Coupled with the Wiki Manager Application and the Workspace Application which were bundled by default, this allowed XEM to create and manage subwikis, while XE could not. This was causing confusion to users that had installed one product and later on, found out that they needed the other.
To avoid confusion and to simplify our development as well, we have defaulted to a virtual mode enabled by default, allowing you to create and manage subwikis/workspaces no matter what product you have downloaded. For instance, if you have downloaded XE, you now only have to install one or two extensions (Wiki Manager Application and/or Workspace Application) using the extension manager and you are all set. Most likely we will also switch to a single product scheme in the future.
Replace "xwiki.virtual.redirect" with an error template(or page)
This xwiki.cfg setting allowed the admin to redirect to a specified URL an user that tried to access an nonexistent wiki. However, it was enabled by default and the default value was http://127.0.0.1:9080/xwiki/bin/Main/ThisWikiDoesNotExist which was definitely wrong and was causing more problems than it solved. See for an example.
We have decided to drop this feature and replace it with an error template wikidoesnotexist.vm that can be overridden by a document in the main wiki named XWiki.WikiDoesNotExist, to be consistent with what we are doing for other XWiki entities (documents, attachments, etc).
However, to avoid hitting problems with accessing your main wiki, this feature is disabled by default and can be enabled by uncommenting xwiki.virtual.failOnWikiDoesNotExist in xwiki.cfg and setting its value to 1. Otherwise, by default, the user will always get server the content of the main wiki if the wiki he requested is not found.
For those that want to achieve the same behavior as before (by redirecting to a fixed URL every time), they have to enable xwiki.virtual.failOnWikiDoesNotExist in xwiki.cfg and then redirect to the desired URL either in wikidoesnotexist.vm or in the main wiki's XWiki.WikiDoesNotExist.
Miscellaneous
<insert misc user stuff and important bug fix descriptions here in a list, when they are too small to warrant a section by themselves - Change the version in the URL below!>
- autowww is not enabled by default and mandatory (can not be disabled), since with virtual mode enabled by default if could prove problematic to access your main wiki without a proper wiki descriptor set up. The main reason why you could have needed to disable it was if you actually had subwiki named www and you wanted to access it instead of the main wiki. Now the autowww feature checks for this case and serves the right content.
See the full list of JIRA issues fixed in this release.
For Developers
Translate log
It's possible to provide a translation key with any log to let log displayer use some localization framework to find proper translation for it.
See Logging Module for more details.
JQuery in XWiki using AMD/Require.js
Now with require.js you can pull in jQuery and use it when you need it without incurring the performance penalty when you don't need it.
To use jquery, use the script below:
<script>
require(['jquery'], function($) {
$('#document-title>h1').text('JQuery in action');
});
</script>
{{/html}}
You can learn more about the power of AMD javascript modules by reading require.js documentation.
Back to JUnit
XWiki Commons used to force using junit-dep instead of junit at build time because of embedded libraries in junit jar. Since it's not the case anymore the enforcer rule and everything about junit-dep has been removed from our pom.xml files.
The main change for external projects if that if you depends on junit-dep and don't specify the version your project won't build anymore and you should change for junit
XWikiDocument authors and public access
The document reference used to indicate that a document has been created/modified by a public access user (or guest user) is now null. It's following what is already the XWikiContext behavior which means that you can now safely compare context user reference and document authors reference since both of these APIs have the same behavior regarding unauthenticated users.
Deprecated and Retired projects
<description of deprecated and retired projects>
Upgrades
The following dependencies have been upgraded:
- GWT 2.5.1
- JUnit 4.11
- slf4j 1.7.4
- logback 1.0.11
- Hamcrest 1.3
- Groovy 2.1.2
Miscellaneous
<other dev stuff to add and link to JIRA for all issues fixed>
- Added methods to query existing wikis: api.XWiki.getWikiNames() and api.XWiki.hasSubWikis()
- Virtual mode is now enabled by default so development needs to consider the fact that the main wiki may not be the only wiki available.
- With the transition to virtual mode by default, the XWiki.XWikiServerClass is now a mandatory class to be used when creating a wiki descriptor. Its existence will be, like all mandatory classes, checked when XWiki starts, but only for the main wiki. It was formerly initialized by and part of the wiki-manager module but it's now part of the core. Also, the XWiki.XWikiServerClassSheet has been moved to the wiki-manager-ui module.
- The xwikilargestrings table was used to store both LargeStringProperty and StringListProperty values; now StringListPropertyes are stored in a new table, xwikistringlists. Existing data should be automatically migrated from one table to the other.
Translations
The following translations have been updated:
Tested Browsers & Databases
Known issues
Backward Compatibility and Migration Notes
General Notes
You may also want to import the default wiki XAR in order to benefit from all the improvements listed above.
Issues specific to XWiki 5.0 Milestone 2
XWikiDocument authors and public access
The document reference used to indicate that a document has been created/modified by a public access user (or guest user) is now null. In practice in means that even if the database indicate that the document has been saved by "XWiki.XWikiGuest" document.getAuthorReference() will return null. See http://jira.xwiki.org/browse/XWIKI-8953.
Miscellaneous
- The translations page for each workspace (xwiki:WorkspaceManager.TemplateTranslations) has been moved to the template (and implicitly locally, on each workspace) in XWiki.WorkspaceTranslations. Existing workspaces will still use any existing xwiki:WorkspaceManager.TemplateTranslations document (registered as translation bundle) that you may still have on the main wiki. New workspaces will use their local XWiki.WorkspaceTranslations document.
- As stated above, a new table has been added to the schema, xwikistringlists. Make sure the DB user has the required privileges to create it automatically, or create it manually before starting the new version.
- Links to attachment by default point to a specific version instead of a versionless "display the latest" link.
API Breakages
The following APIs were modified since XWiki 4.5.2: