Upgrade to Java 11
brXM 15.0 requires Java 11. You must use Java 11 for both local development and server deployments.
Java 9 and later removed several Enterprise Edition (EE) modules from the standard JDK. These modules, previously included in the Java 8 SDK, are now available as standalone dependencies. For details, see JEP 320.
If your project was created before brXM 15.0, you must add these dependencies to your main project pom.xml. This ensures compatibility with Java 11.
Update Maven Profiles
Add the following dependencies to the specified Maven profiles in your main pom.xml.
In the cargo.run Profile
Add these dependencies to the <dependencies> section of the cargo.run profile:
<profile> <id>cargo.run</id> [...] <dependencies> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>jakarta.xml.ws</groupId> <artifactId>jakarta.xml.ws-api</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>jakarta.activation</groupId> <artifactId>jakarta.activation-api</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <scope>runtime</scope> </dependency> </dependencies> </profile>
In the dist Profile
Add these dependencies to the <dependencies> section of the dist profile:
<profile> <id>dist</id> <dependencies> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.xml.ws</groupId> <artifactId>jakarta.xml.ws-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.activation</groupId> <artifactId>jakarta.activation-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <scope>provided</scope> </dependency> [...] </dependencies> [...] </profile>
Update Docker JVM Options
If you use Docker, update the JVM garbage collector options for Java 11.
- Open
src/main/docker/scripts/tomcat/setenv.sh. - Locate the comment
# JVM garbage Collector options. - Replace the line below it that starts with
VGC_OPTS=with:
# JVM garbage Collector options
VGC_OPTS="-Xlog:gc+ergo*:file=${CATALINA_BASE}/logs/gc.log:time:filecount=5,filesize=2048k"
This configuration enables garbage collection logging compatible with Java 11.