Java Support Strategy

Last modified by Vincent Massol on 2023/11/08 14:42

There are lots of Java versions out there and supporting all of them is just too hard to be done in a quality manner. Thus we only support a subset.

By "supported versions" we mean:

  • XWiki runs fine on that Java version.
  • Issues created for these versions of Java in JIRA are not closed as won't fix and we make a best effort to fix them.
  • We include these versions in our tests (be them automated or manual).

Supported Java Versions

  • Always support the current Java LTS as defined by Oracle. Specifically this means working actively to make XWiki work on it as soon as it’s available.
    • e.g. in November 2023, the current Java LTS is Java 21.
    • There are several issues with Java 17+ but they can be worked around by passing the following JVM parameters (they are automatically passed when using the Standalone packaging start scripts):

      --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/ --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED

      List of Java 17-related issues:

  • Keep supporting the previous LTS of Java too.
    • e.g. in November 2023, the previous LTS is Java 17.


  • Java LTS cycle are every 3 years so that seems a good cadence for us to move Java source versions too.
  • We support the previous LTS since we want to be "business"-friendly and know that businesses take some time to upgrade.

By XWiki Versions

XWiki VersionsJava Version supportedSource Level
XWiki < 6.0Java 6Java 6
XWiki < 8.1Java 7Java 7
XWiki < 11.3Java 8Java 8
XWiki >= 11.3Java 8 & Java 11Java 8
XWiki >= 14.0 & < 15.3Java 11Java 11
XWiki >= 14.10.9/15.3Java 11 & Java 1712Java 11
  1. ^ When --add-opens directives are correctly set
  2. ^ We're lagging behind and need to validate that latest XWiki 14.10.x and latest 15.x runs well with Java 21

Get Connected