Release Notes for XWiki 12.10.1

Last modified by Ilie Andriuta on 2021/01/06

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 stabilization release for the end of 12.x cycle. One more will follow before 12.x become the new LTS branch. It mostly bring bugfixes but it also come with a new rendering Syntax variants concept and new experimental Live Data tools (but not used in XWiki Standard yet) meant to replace the current Live Table implementation one day.

New and Noteworthy (since XWiki 12.10)

Full list of issues fixed and Dashboard for XWiki 12.10.1.

For Users

No changes!

For Admins

No changes!

For Developers

  • Syntax Variants: A Rendering Syntax Type can now have "variants" which represent variations of the base syntax. For example markdown+github is the GitHub-Flavored Markdown Syntax, markdown+commonmark is the CommonMark Markdown Syntax, etc. It used to be a best practice to use the + character to separate variants. It's now official and part of the API with some constructors and getters. For example:

    SyntaxType syntaxType = new SyntaxType("id", Arrays.asList("variant1", "variant2"), "name");
    assertThat(syntaxType.getVariants(), contains("variant1", "variant2"));

Upgrades

The following runtime dependencies have been upgraded (they have a different release cycle than XWiki Commons, XWiki Rendering and XWiki Platform):

Translations

The following translations have been updated: 

Tested Browsers & Databases

Here is the list of browsers we support and how they have been tested for this release:

 BrowserTested on:
Firefox30.pngMozilla Firefox 84Not Tested
Edge30.pngMicrosoft Edge 87Jira Tickets Marked as Fixed in the Release Notes
IE30.pngInternet Explorer 11Tests run and results
Chrome30.pngGoogle Chrome 87
Safari30.pngSafari 14Not Tested

Here is the list of databases we support and how they have been tested for this release:

 DatabaseTested on:
hypersql.pngHyperSQL 2.5.1Not Tested
oracle.pngOracle 19cJira Tickets Marked as Fixed in the Release Notes
mysql.pngMySQL 8Tests run and results
postgresql.pngPostgreSQL 13
mariadb.pngMariaDB 10.5Not Tested

Here is the list of Servlet Containers we support and how they have been tested for this release:

 Servlet ContainerTested on:
tomcat-icon.pngTomcat 9.0.41
jetty-icon.pngJetty 9.4.29 (XWiki Standalone packaging)
jetty-icon.pngJetty 9.4.29Not Tested

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 12.10:

  • Unstable API added by mistake.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method void org.xwiki.diff.xml.XMLDiff::xxx()
  • Revert a refactoring done by mistake
    • Violation type:
      java.class.noLongerInheritsFromClass
    • Code:
      ## Old:
      class org.xwiki.rendering.wikimodel.xhtml.impl.LocalEntityResolver

      ## New:
      class org.xwiki.rendering.wikimodel.xhtml.impl.LocalEntityResolver
  • Unstable API.
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method java.lang.String org.xwiki.security.authentication.api.AuthenticationFailureManager::getForm(java.lang.String)

      ## New:
      method java.lang.String org.xwiki.security.authentication.api.AuthenticationFailureManager::getForm(java.lang.String, javax.servlet.http.HttpServletRequest)
  • Unstable API.
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::recordAuthenticationFailure(java.lang.String)

      ## New:
      method boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::recordAuthenticationFailure(java.lang.String, javax.servlet.http.HttpServletRequest)
  • Unstable API.
    • Violation type:
      java.method.parameterTypeChanged
    • Code:
      ## Old:
      parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::validateForm(java.lang.String, ===org.securityfilter.filter.SecurityRequestWrapper===)

      ## New:
      parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::validateForm(java.lang.String, ===javax.servlet.http.HttpServletRequest===)
  • Unstable API.
    • Violation type:
      java.method.parameterTypeChanged
    • Code:
      ## Old:
      parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureStrategy::validateForm(java.lang.String, ===org.securityfilter.filter.SecurityRequestWrapper===)

      ## New:
      parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureStrategy::validateForm(java.lang.String, ===javax.servlet.http.HttpServletRequest===)
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.class.removed
    • Code:
      ## Old:
      interface org.xwiki.mentions.MentionNotificationService
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method void org.xwiki.mentions.notifications.MentionNotificationParameters::<init>(org.xwiki.model.reference.DocumentReference, org.xwiki.model.reference.DocumentReference, org.xwiki.model.reference.DocumentReference, org.xwiki.mentions.MentionLocation, java.lang.String, org.xwiki.rendering.block.XDOM)

      ## New:
      method void org.xwiki.mentions.notifications.MentionNotificationParameters::<init>(java.lang.String, org.xwiki.model.reference.EntityReference, org.xwiki.mentions.MentionLocation, java.lang.String)
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method java.lang.String org.xwiki.mentions.notifications.MentionNotificationParameters::getAnchorId()
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.method.returnTypeChanged
    • Code:
      ## Old:
      method org.xwiki.model.reference.DocumentReference org.xwiki.mentions.notifications.MentionNotificationParameters::getAuthorReference()

      ## New:
      method java.lang.String org.xwiki.mentions.notifications.MentionNotificationParameters::getAuthorReference()
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method org.xwiki.model.reference.DocumentReference org.xwiki.mentions.notifications.MentionNotificationParameters::getDocumentReference()
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method org.xwiki.model.reference.DocumentReference org.xwiki.mentions.notifications.MentionNotificationParameters::getMentionedIdentity()
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method org.xwiki.rendering.block.XDOM org.xwiki.mentions.notifications.MentionNotificationParameters::getXdom()
  • Young API. Redesign of the mention notifications mechanism.
    • Violation type:
      java.method.numberOfParametersChanged
    • Code:
      ## Old:
      method java.lang.String org.xwiki.mentions.script.MentionsScriptService::format(java.lang.String, org.xwiki.mentions.DisplayStyle)

      ## New:
      method java.lang.String org.xwiki.mentions.script.MentionsScriptService::format(java.lang.String, org.xwiki.mentions.DisplayStyle, java.lang.String)
  • Young API.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method long org.xwiki.ratings.RatingsManager::moveRatings(org.xwiki.model.reference.EntityReference, org.xwiki.model.reference.EntityReference) throws org.xwiki.ratings.RatingsException
  • Young API: fix typo.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method void org.xwiki.ratings.RatingsManager::setIdentifer(java.lang.String)
  • Young API: fix typo.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method void org.xwiki.ratings.RatingsManager::setIdentifier(java.lang.String)

Credits

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

  • ClĂ©ment
  • Marius Dumitru Florea
  • Simon Urli
  • Thomas Mortagne
  • Vincent Massol

Get Connected