Release Notes / Version 10.2107
Table Of ContentsCMCC runs with Java 11. Many third party libraries have been updated to Java 11 capable versions.
All JDK changes since Java 8 apply to CMCC. For details see
https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html https://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html https://www.oracle.com/technetwork/java/javase/9all-relnotes-3704433.html
In particular, existing CMS9 projects are likely to encounter the following issues when migrating to CMCC:
Since Java 11 is modularized, some classes have vanished from the standard runtime environment. In order to compile CMCC, you might need some of the following additional dependencies in your project modules.
<dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> </dependency> <dependency> <groupId>com.sun.activation</groupId> <artifactId>jakarta.activation</artifactId> </dependency> <dependency> <groupId>jakarta.transaction</groupId> <artifactId>jakarta.transaction-api</artifactId> </dependency> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> </dependency>
The necessity of jaxb-runtime turns out only if you (transitively) encounter concrete jaxb-api features. You should always declare this as a runtime dependency together with the jaxb-api dependency.
The order of collections differs between Java 8 and 11. If the order is relevant, use Lists or sort before you iterate.
(CMS-14538)