# pom.xml sets maven.compiler.source/target/release to 25 (lanes/upgrade/pom.xml)

$ mvn package      (build JDK 21)
    [INFO] --- resources:3.3.1:resources (default-resources) @ upgrade-demo ---
    [INFO] --- compiler:3.13.0:compile (default-compile) @ upgrade-demo ---
    [INFO] Compiling 1 source file with javac [debug release 25] to target/classes
    [INFO] BUILD FAILURE
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project upgrade-demo: Fatal error compiling: error: release version 25 not supported -> [Help 1]

$ mvn package      (build JDK 25)
    [INFO] --- resources:3.3.1:resources (default-resources) @ upgrade-demo ---
    [INFO] --- compiler:3.13.0:compile (default-compile) @ upgrade-demo ---
    [INFO] Compiling 1 source file with javac [debug release 25] to target/classes
    [INFO] --- resources:3.3.1:testResources (default-testResources) @ upgrade-demo ---
    [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ upgrade-demo ---
    [INFO] --- surefire:3.2.5:test (default-test) @ upgrade-demo ---
    [INFO] --- jar:3.4.1:jar (default-jar) @ upgrade-demo ---
    [INFO] Building jar: <repo>/build/upgrade/mvn25/target/upgrade-demo-1.0.jar
    [INFO] BUILD SUCCESS

$ mvn package      (build JDK 27, still release 25)
    [INFO] --- resources:3.3.1:resources (default-resources) @ upgrade-demo ---
    [INFO] --- compiler:3.13.0:compile (default-compile) @ upgrade-demo ---
    [INFO] Compiling 1 source file with javac [debug release 25] to target/classes
    [INFO] --- resources:3.3.1:testResources (default-testResources) @ upgrade-demo ---
    [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ upgrade-demo ---
    [INFO] --- surefire:3.2.5:test (default-test) @ upgrade-demo ---
    [INFO] --- jar:3.4.1:jar (default-jar) @ upgrade-demo ---
    [INFO] Building jar: <repo>/build/upgrade/mvn27/target/upgrade-demo-1.0.jar
    [INFO] BUILD SUCCESS

$ javap -v -cp target/classes demo.App | grep 'major version'
    major version: 69

$ java -cp target/classes demo.App      (JDK 25)
    running on Java 25

$ java -cp target/classes demo.App      (JDK 21: the class file is newer than the JVM)
    Error: LinkageError occurred while loading main class demo.App
    	java.lang.UnsupportedClassVersionError: demo/App has been compiled by a more recent version of the Java Runtime (class file version 69.0), this version of the Java Runtime only recognizes class file versions up to 65.0
