This is the release notes for XWiki Commons, XWiki Rendering and XWiki Platform. They share the same release notes as they are released together and have the same version.
In this version we added a new tab in the user profile that displays the groups an user is part of. We've added auto-suggest for pages in several places and improved the startup speed on Tomcat.
New and Noteworthy (since XWiki 10.7)
Full list of issues fixed and Dashboard for 10.8.
Bug Fixes
Here's the full list of bugs fixed in this version:
For Users
Auto-suggest for pages
Several inputs related to selecting pages references now support auto-suggestion, making it much simpler to use and less error prone (such as not having to know if the reference should end with WebHome or not!). See the screenshots for some examples.
New CAPTCHA API and CAPTCHA implementations
A new CAPTCHA Application and API have been implemented, replacing the old Captcha Module, thus making it even easier to use and validate a CAPTCHA in a form. Also, it's now very easy to change the CAPTCHA implementation that you want to use in your wiki, directly from Administration, without having to touch a line of code.
Also, a new and much more extensive JCaptcha implementation has been provided for the new API, that works offline and features image, sound and text CAPTCHAS. It is bundled by default with XWiki Standard.
As a popular alternative, a Google reCAPTCHA implementation is also available, installable as an extension using the Extension Manager.
The locations in XWiki where CAPTCHA is being used by default (e.g. Registration and Comments) will use the CAPTCHA implementation that you have enabled and configured in the "Administration >> CAPTCHA" section.
User membership in the profile
It's now possible to see the groups a user is member of in the profile. See User Profile Application.
Updated attachments modal
The attachments pop-up that is displayed for deleting an attachment is now a bootstrap modal, having the same functionality as before.
Miscellaneous
Filter group members by their full name: You can now filter the group members by their full name from the live table displayed on the group page or when editing a group from the administration, as long as the members are from the same wiki as the group itself. The members that are from a different wiki than the group can still be filtered by their reference (e.g. by user alias).
For Admins
XWiki on WildFly: XWiki now deploys fine out of the box on WildFly 14.x.
Notifications Filters Store: Due to scaling issue, we have changed the way the notification filter preferences are stored in the wiki. They are not saved in the user profile pages anymore, but in their own database table.
Thanks to this improvement, we have re-enabled the default behavior for the Auto Watch feature so that users automatically watch pages they have contributed to.
Argument to specify the wait time in the stop_xwiki.sh script: You can now specify, in the stop_xwiki.sh script, the number of seconds to wait for the XWiki lock to be released before exiting. For instance "stop_xwiki.sh -wt 10" will make the script wait 10 second. The default wait time is now 30sec.
For Developers
Group manager
A new org.xwiki.user.group.GroupManager and corresponding services.user.group script service are now available.
See more details on User Module.
Miscellaneous
A new xwiki-commons-collection module has been introduced to share base collection related API
No longer committing XML document date fields: Our maven XAR plugin's xar:verify goal will now fail the build if the XAR module contains XML pages with date fields in them. To clear them automatically, just use xar:format which was also updated to remove such fields. This behavior can be skipped for individual files or for the entire project. See the documentation for more details.
Moved Modules
- Retired the old Captcha Module and replaced by the new CAPTCHA Application
Upgrades
The following runtime dependencies have been upgraded (they have a different release cycle than XWiki Commons, XWiki Rendering and XWiki Platform):
- CSS4J 0.41.2
- Quartz Scheduler 2.3.0
- JNR POSIX 3.0.46
- JGroups 4.0.13
- Apache PDFBox 2.0.11
- JNA 4.5.2
- JAXB implementation 2.3.0.1
- Dom4j 2.1.1
- Apache Xerces 2.12.0
- ASM 6.2.1
- Groovy 2.5.2
- Bouncy Castle 1.60
- httpcore 4.4.10
- httpclient 4.5.6
- httpasyncclient 4.1.4
- commons-lang3 3.8
- commons-dbcp2 2.5.0
- Commons Configuration 2.3
- commons-compress 1.18
- commons-collections 4.2
- cssparser 0.9.26
- Guice 4.2.0
- Maven 3.5.4
Translations
The following translations have been updated:
Known issues
Backward Compatibility and Migration Notes
General Notes
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.
Issues specific to XWiki 10.8 RC 1
- A migration to the new store is necessary for existing filter preferences. It is done automatically when you first start XWiki after upgrading, but it may take time.
- XWiki has been configured to increase startup speed by avoiding JAR scanning, especially on Tomcat. The following was done, which you can modify if you need JAR scanning for some reason (not used by XWiki Standard by default):
- Addition of metadata-complete="true" and <absolute-ordering /> in XWiki's web.xml
- Addition of a META-INF/context.xml Tomcat-specific deployment file in XWiki's WAR to prevent Tomcat from doing JAR scanning completely and to avoid scanning for JSP and WebSocket.
API Breakages
The following APIs were modified since XWiki 10.7:
- Not a breakage.
- Violation type:java.annotation.attributeValueChanged
- Code:## Old:
@interface org.xwiki.stability.Unstable
## New:
@interface org.xwiki.stability.Unstable
- Violation type:
- Not a breakage: class moved to a legacy module
- Violation type:java.class.removed
- Code:## Old:
class org.xwiki.velocity.introspection.AbstractChainableUberspector
- Violation type:
- Not a breakage: class moved to a legacy module
- Violation type:java.class.removed
- Code:## Old:
interface org.xwiki.velocity.introspection.ChainableUberspector
- Violation type:
- Not a breakage: class moved to a legacy module
- Violation type:java.class.removed
- Code:## Old:
class org.xwiki.velocity.introspection.ChainingUberspector
- Violation type:
- Not a breakage: class moved to a legacy module
- Violation type:java.class.removed
- Code:## Old:
class org.xwiki.velocity.introspection.LinkingUberspector
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method java.util.Set<java.lang.String> org.xwiki.notifications.filters.NotificationFilterPreference::getEventTypes()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.removed
- Code:## Old:
method java.util.Set<org.xwiki.notifications.NotificationFormat> org.xwiki.notifications.filters.NotificationFilterPreference::getFilterFormats()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.removed
- Code:## Old:
method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getFilterPreferenceName()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getId()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method java.util.Set<org.xwiki.notifications.NotificationFormat> org.xwiki.notifications.filters.NotificationFilterPreference::getNotificationFormats()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getPage()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getPageOnly()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.removed
- Code:## Old:
method java.util.List<java.lang.String> org.xwiki.notifications.filters.NotificationFilterPreference::getProperties(org.xwiki.notifications.filters.NotificationFilterProperty)
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.noLongerDefault
- Code:## Old:
method java.util.Date org.xwiki.notifications.filters.NotificationFilterPreference::getStartingDate()
## New:
method java.util.Date org.xwiki.notifications.filters.NotificationFilterPreference::getStartingDate()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.nowAbstract
- Code:## Old:
method java.util.Date org.xwiki.notifications.filters.NotificationFilterPreference::getStartingDate()
## New:
method java.util.Date org.xwiki.notifications.filters.NotificationFilterPreference::getStartingDate()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getUser()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getWiki()
- Violation type:
- NotificationFilterPreference store did not scale
- Violation type:java.method.addedToInterface
- Code:## Old:
null
## New:
method void org.xwiki.notifications.filters.NotificationFilterPreference::setEnabled(boolean)
- Violation type:
Credits
The following people have contributed code to this release (sorted alphabetically):
Adel Atallah
Alex Cotiugă
Constantin Listar
Dominik Roszkowski
Ecaterina Moraru (Valica)
Eduard Moraru
Guillaume Delhumeau
Ilie Andriuta
Marius Dumitru Florea
Oana-Lavinia Florean
Roman Ivanov
Simon Urli
slauriere
Thomas Mortagne
Valdis Vitolins
Vincent Massol
xrichard
吴国凯