From a82b5e7aa1ce11890305cc60bbda05fdf9421ea8 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 30 Oct 2025 09:26:44 +0100 Subject: [PATCH] Java: Add test for selecting the highest compiler release in a pom --- .../pom.xml | 51 +++++++++++++++++++ .../source_archive.expected | 4 ++ .../src/main/java/com/example/App.java | 12 +++++ .../src/test/java/com/example/AppTest.java | 11 ++++ .../test.py | 2 + 5 files changed, 80 insertions(+) create mode 100644 java/ql/integration-tests/java/maven-execution-specific-java-version/pom.xml create mode 100644 java/ql/integration-tests/java/maven-execution-specific-java-version/source_archive.expected create mode 100644 java/ql/integration-tests/java/maven-execution-specific-java-version/src/main/java/com/example/App.java create mode 100644 java/ql/integration-tests/java/maven-execution-specific-java-version/src/test/java/com/example/AppTest.java create mode 100644 java/ql/integration-tests/java/maven-execution-specific-java-version/test.py diff --git a/java/ql/integration-tests/java/maven-execution-specific-java-version/pom.xml b/java/ql/integration-tests/java/maven-execution-specific-java-version/pom.xml new file mode 100644 index 00000000000..fca47a5ba6d --- /dev/null +++ b/java/ql/integration-tests/java/maven-execution-specific-java-version/pom.xml @@ -0,0 +1,51 @@ + + + + 4.0.0 + + com.example + maven-execution-specific-java-version + 1.0-SNAPSHOT + + maven-execution-specific-java-version + Test case: Project with execution-specific Java versions (Java 11 for main, Java 17 for test). Maven.java should detect the highest version (17) and use it for compilation. + + + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + + + default-compile + compile + + compile + + + 11 + + + + + + default-testCompile + test-compile + + testCompile + + + 17 + + + + + + + diff --git a/java/ql/integration-tests/java/maven-execution-specific-java-version/source_archive.expected b/java/ql/integration-tests/java/maven-execution-specific-java-version/source_archive.expected new file mode 100644 index 00000000000..16e83f3a7f6 --- /dev/null +++ b/java/ql/integration-tests/java/maven-execution-specific-java-version/source_archive.expected @@ -0,0 +1,4 @@ +pom.xml +src/main/java/com/example/App.java +src/test/java/com/example/AppTest.java +target/maven-archiver/pom.properties diff --git a/java/ql/integration-tests/java/maven-execution-specific-java-version/src/main/java/com/example/App.java b/java/ql/integration-tests/java/maven-execution-specific-java-version/src/main/java/com/example/App.java new file mode 100644 index 00000000000..74ddfe58348 --- /dev/null +++ b/java/ql/integration-tests/java/maven-execution-specific-java-version/src/main/java/com/example/App.java @@ -0,0 +1,12 @@ +package com.example; + +public class App { + public static void main(String[] args) { + var message = "Hello World! Running on Java " + System.getProperty("java.version"); + System.out.println(message); + } + + public String getMessage() { + return "Hello from App"; + } +} diff --git a/java/ql/integration-tests/java/maven-execution-specific-java-version/src/test/java/com/example/AppTest.java b/java/ql/integration-tests/java/maven-execution-specific-java-version/src/test/java/com/example/AppTest.java new file mode 100644 index 00000000000..4f8e04f7d78 --- /dev/null +++ b/java/ql/integration-tests/java/maven-execution-specific-java-version/src/test/java/com/example/AppTest.java @@ -0,0 +1,11 @@ +package com.example; + +public class AppTest { + public static void main(String[] args) { + var text = """ + Hello + World + """; + System.out.println(text.strip()); + } +} diff --git a/java/ql/integration-tests/java/maven-execution-specific-java-version/test.py b/java/ql/integration-tests/java/maven-execution-specific-java-version/test.py new file mode 100644 index 00000000000..eb49efe6a2a --- /dev/null +++ b/java/ql/integration-tests/java/maven-execution-specific-java-version/test.py @@ -0,0 +1,2 @@ +def test(codeql, java): + codeql.database.create()