Java Support Strategy
Last modified by Michael Hamann on 2024/06/03 10:15
Contents
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
Terminology:
- "source level": This is the Java syntax used in the source of XWiki. From a user point of view, this can be considered as the minimal Java version that can be used to run XWiki.
Rules:
- As a general rule we follow the Java LTS release cadence (currently every 2 years), which means that at the beginning of every 2 XWiki cycles, we drop the oldest Java version that we were supporting and start supporting the latest Java LTS (and at the source level we upgrade it by one version too). Examples:
- In XWiki 16.0 (2024), we drop the support of Java 11, continue to support Java 17 (which becomes the new source level), and work as fast as possible to support Java 21 in 16.x. We continue to support Java 11 & 17 for XWiki 15.10.x (XWiki LTS).
- In XWiki 17.0 (2025), we continue to support Java 17 & 21. We also continue to support Java 17 & 21 for XWiki 16.10.x (XWiki LTS).
- Java 25 is out in September 2025
- In XWiki 18.0 (2026), we drop support for Java 17, continue to support Java 21 (which becomes the new source level), and add support for Java 25 as soon as possible for 18.x. We continue to support Java 17 & 21 for XWiki 17.10.x (XWiki LTS).
- As a best effort, we also try to support more recent Java versions whenever we can.
- For example, in XWiki 14.10.x we added support for Java 17
By XWiki Versions
XWiki Versions | Java Version supported | Source Level |
---|---|---|
XWiki < 6.0 | Java 6 | Java 6 |
XWiki < 8.1 | Java 7 | Java 7 |
XWiki < 11.3 | Java 8 | Java 8 |
XWiki >= 11.3 | Java 8 & Java 11 | Java 8 |
XWiki >= 14.0 & < 15.3 | Java 11 | Java 11 |
XWiki >= 14.10.9/15.3 | Java 11 & Java 17 | Java 11 |
XWiki >= 16.0.0 | Java 17 & Java 21 | Java 17 |
Things to do when increasing the minimum supported Java version in the current branch
- add a row to the table above
- update <xwiki.java.version> Maven property in xwiki-commons root pom
- install the new Java version on the release agent
- update the automatic switch mapping in the release script
- update the automatic java version switch mapping in the Jenkins pipeline