Release Notes for XWiki 9.11.9

Version 2.2 by Thomas Mortagne on 2019/01/29

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.

This is a bugfix release that covers important issues that we have discovered since 9.11.8 has been released.

New and Noteworthy (since XWiki 9.11.8)

Full list of issues fixed and Dashboard for 9.11.9.

All Changes

Known issues

Backward Compatibility and Migration Notes

General Notes

  • When upgrading make sure you compare and merge the following XWiki configuration files since some parameters may have been modified, removed or added:
    • xwiki.cfg
    • xwiki.properties
    • web.xml
    • hibernate.cfg.xml
  • Add xwiki.store.migration=1 in xwiki.cfg so that XWiki will attempt to automatically migrate your current database to any new schema. Make sure you backup your Database before doing anything.

API Breakages

The following APIs were modified since XWiki 9.11.8:

  • 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()
  • 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()
  • NotificationFilterPreference store did not scale
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getFilterPreferenceName()
  • NotificationFilterPreference store did not scale
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getId()
  • 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()
  • NotificationFilterPreference store did not scale
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getPage()
  • NotificationFilterPreference store did not scale
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getPageOnly()
  • 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)
  • 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()
  • 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()
  • NotificationFilterPreference store did not scale
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getUser()
  • NotificationFilterPreference store did not scale
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.notifications.filters.NotificationFilterPreference::getWiki()
  • NotificationFilterPreference store did not scale
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method void org.xwiki.notifications.filters.NotificationFilterPreference::setEnabled(boolean)
  • Young API
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method org.xwiki.notifications.filters.watch.AutomaticWatchMode org.xwiki.notifications.filters.watch.WatchedEntitiesConfiguration::getDefaultAutomaticWatchMode(org.xwiki.model.reference.WikiReference)
  • Not a break: the REST endpoint is the same.
    • Violation type:
      java.method.returnTypeChanged
    • Code:
      ## Old:
      method org.xwiki.notifications.rest.model.Notifications org.xwiki.notifications.rest.NotificationsResource::getNotifications(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception

      ## New:
      method javax.ws.rs.core.Response org.xwiki.notifications.rest.NotificationsResource::getNotifications(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception
  • Adding a REST API is actually not a breakage.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method javax.ws.rs.core.Response org.xwiki.notifications.rest.NotificationsResource::postNotifications() throws java.lang.Exception
  • False positive
    • Violation type:
      java.class.nonFinalClassInheritsFromNewClass
    • Code:
      ## Old:
      class org.xwiki.refactoring.job.CreateRequest

      ## New:
      class org.xwiki.refactoring.job.CreateRequest
  • False positive
    • Violation type:
      java.class.nonFinalClassInheritsFromNewClass
    • Code:
      ## Old:
      class org.xwiki.refactoring.job.EntityRequest

      ## New:
      class org.xwiki.refactoring.job.EntityRequest
  • False positive
    • Violation type:
      java.class.nonFinalClassInheritsFromNewClass
    • Code:
      ## Old:
      class org.xwiki.refactoring.job.MoveRequest

      ## New:
      class org.xwiki.refactoring.job.MoveRequest
  • False positive
    • Violation type:
      java.class.nonFinalClassInheritsFromNewClass
    • Code:
      ## Old:
      class org.xwiki.refactoring.job.RestoreRequest

      ## New:
      class org.xwiki.refactoring.job.RestoreRequest
  • Bad design at fist attempt
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method void org.xwiki.notifications.filters.NotificationFilterManager::deleteFilterPreference(java.lang.String) throws org.xwiki.notifications.NotificationException

      ## New:
      method void org.xwiki.notifications.filters.NotificationFilterManager::deleteFilterPreference(org.xwiki.model.reference.DocumentReference, java.lang.String) throws org.xwiki.notifications.NotificationException
  • Bad design at fist attempt
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method void org.xwiki.notifications.filters.NotificationFilterManager::saveFilterPreferences(java.util.Set<org.xwiki.notifications.filters.NotificationFilterPreference>)

      ## New:
      method void org.xwiki.notifications.filters.NotificationFilterManager::saveFilterPreferences(org.xwiki.model.reference.DocumentReference, java.util.Set<org.xwiki.notifications.filters.NotificationFilterPreference>)
  • Bad design at fist attempt
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method void org.xwiki.notifications.filters.NotificationFilterManager::setFilterPreferenceEnabled(java.lang.String, boolean) throws org.xwiki.notifications.NotificationException

      ## New:
      method void org.xwiki.notifications.filters.NotificationFilterManager::setFilterPreferenceEnabled(org.xwiki.model.reference.DocumentReference, java.lang.String, boolean) throws org.xwiki.notifications.NotificationException
  • Bad design at fist attempt
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method void org.xwiki.notifications.filters.NotificationFilterPreferenceProvider::deleteFilterPreference(java.lang.String) throws org.xwiki.notifications.NotificationException

      ## New:
      method void org.xwiki.notifications.filters.NotificationFilterPreferenceProvider::deleteFilterPreference(org.xwiki.model.reference.DocumentReference, java.lang.String) throws org.xwiki.notifications.NotificationException
  • Bad design at fist attempt
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method void org.xwiki.notifications.filters.NotificationFilterPreferenceProvider::saveFilterPreferences(java.util.Set<org.xwiki.notifications.filters.NotificationFilterPreference>) throws org.xwiki.notifications.NotificationException

      ## New:
      method void org.xwiki.notifications.filters.NotificationFilterPreferenceProvider::saveFilterPreferences(org.xwiki.model.reference.DocumentReference, java.util.Set<org.xwiki.notifications.filters.NotificationFilterPreference>) throws org.xwiki.notifications.NotificationException
  • Bad design at fist attempt
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method void org.xwiki.notifications.filters.NotificationFilterPreferenceProvider::setFilterPreferenceEnabled(java.lang.String, boolean) throws org.xwiki.notifications.NotificationException

      ## New:
      method void org.xwiki.notifications.filters.NotificationFilterPreferenceProvider::setFilterPreferenceEnabled(org.xwiki.model.reference.DocumentReference, java.lang.String, boolean) throws org.xwiki.notifications.NotificationException

Credits

The following people have contributed code and translations to this release (sorted alphabetically):

Adel Atallah
Alex Cotiugă
Eduard Moraru
Guillaume Delhumeau
Marius Dumitru Florea
m-lw
Simon Urli
Thomas Mortagne
Vincent Massol

Tags:
   

Get Connected