From 6b890eaf94c232e336b7424a31b1b8a6ac7b9aaf Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 9 Oct 2025 14:05:11 +0200 Subject: [PATCH 1/8] Java: Add test for multi-module projects with different Java versions --- .../main-module/pom.xml | 10 ++++++++++ .../src/main/java/com/example/App.java | 7 +++++++ .../maven-multimodule-test-java-version/pom.xml | 17 +++++++++++++++++ .../source_archive.expected | 7 +++++++ .../test-module/pom.xml | 14 ++++++++++++++ .../main/java/com/example/tests/TestUtils.java | 12 ++++++++++++ .../maven-multimodule-test-java-version/test.py | 2 ++ 7 files changed, 69 insertions(+) create mode 100644 java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/pom.xml create mode 100644 java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/src/main/java/com/example/App.java create mode 100644 java/ql/integration-tests/java/maven-multimodule-test-java-version/pom.xml create mode 100644 java/ql/integration-tests/java/maven-multimodule-test-java-version/source_archive.expected create mode 100644 java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/pom.xml create mode 100644 java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/src/main/java/com/example/tests/TestUtils.java create mode 100644 java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/pom.xml b/java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/pom.xml new file mode 100644 index 00000000000..39586e4e0ab --- /dev/null +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/pom.xml @@ -0,0 +1,10 @@ + + + 4.0.0 + + com.example + maven-multimodule-test-java-version + 1.0 + + main-module + diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/src/main/java/com/example/App.java b/java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/src/main/java/com/example/App.java new file mode 100644 index 00000000000..d2397803d55 --- /dev/null +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/main-module/src/main/java/com/example/App.java @@ -0,0 +1,7 @@ +package com.example; + +public class App { + public static void main(String[] args) { + System.out.println("Hello World!"); + } +} \ No newline at end of file diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/pom.xml b/java/ql/integration-tests/java/maven-multimodule-test-java-version/pom.xml new file mode 100644 index 00000000000..ea5f8b5b03b --- /dev/null +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + com.example + maven-multimodule-test-java-version + 1.0 + pom + + + 17 + + + + main-module + test-module + + diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/source_archive.expected b/java/ql/integration-tests/java/maven-multimodule-test-java-version/source_archive.expected new file mode 100644 index 00000000000..08385ca91a0 --- /dev/null +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/source_archive.expected @@ -0,0 +1,7 @@ +main-module/pom.xml +main-module/src/main/java/com/example/App.java +main-module/target/maven-archiver/pom.properties +pom.xml +test-module/pom.xml +test-module/src/main/java/com/example/tests/TestUtils.java +test-module/target/maven-archiver/pom.properties diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/pom.xml b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/pom.xml new file mode 100644 index 00000000000..5895a91b2c1 --- /dev/null +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + + com.example + maven-multimodule-test-java-version + 1.0 + + test-module + + + 21 + + diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/src/main/java/com/example/tests/TestUtils.java b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/src/main/java/com/example/tests/TestUtils.java new file mode 100644 index 00000000000..30e83856200 --- /dev/null +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test-module/src/main/java/com/example/tests/TestUtils.java @@ -0,0 +1,12 @@ +package com.example.tests; + +// Requires Java 21: switch with pattern matching and guards +public class TestUtils { + public static String analyze(Object obj) { + return switch (obj) { + case String s when s.length() > 5 -> "long"; + case String s -> "short"; + default -> "other"; + }; + } +} \ No newline at end of file diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py new file mode 100644 index 00000000000..eb49efe6a2a --- /dev/null +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py @@ -0,0 +1,2 @@ +def test(codeql, java): + codeql.database.create() From 5247c88da142e16cbc2db2f4c0ed64e86a6429a2 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Wed, 15 Oct 2025 13:18:09 +0200 Subject: [PATCH 2/8] Java: Add test for pom targeting Java 8 but rquiring Java 11 --- .../maven-java8-java11-dependency/pom.xml | 41 +++++++++++++++++++ .../source_archive.expected | 4 ++ .../src/main/java/com/example/Calculator.java | 11 +++++ .../test/java/com/example/CalculatorTest.java | 21 ++++++++++ .../maven-java8-java11-dependency/test.py | 2 + 5 files changed, 79 insertions(+) create mode 100644 java/ql/integration-tests/java/maven-java8-java11-dependency/pom.xml create mode 100644 java/ql/integration-tests/java/maven-java8-java11-dependency/source_archive.expected create mode 100644 java/ql/integration-tests/java/maven-java8-java11-dependency/src/main/java/com/example/Calculator.java create mode 100644 java/ql/integration-tests/java/maven-java8-java11-dependency/src/test/java/com/example/CalculatorTest.java create mode 100644 java/ql/integration-tests/java/maven-java8-java11-dependency/test.py diff --git a/java/ql/integration-tests/java/maven-java8-java11-dependency/pom.xml b/java/ql/integration-tests/java/maven-java8-java11-dependency/pom.xml new file mode 100644 index 00000000000..f50a3aadd23 --- /dev/null +++ b/java/ql/integration-tests/java/maven-java8-java11-dependency/pom.xml @@ -0,0 +1,41 @@ + + + + 4.0.0 + + com.example + maven-java8-java11-dependency + 1.0-SNAPSHOT + + maven-java8-java11-dependency + Test case: Java 8 project with dependency requiring Java 11+ + + + UTF-8 + 1.8 + 1.8 + + + + + + org.testng + testng + 7.7.0 + test + + + + + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + + diff --git a/java/ql/integration-tests/java/maven-java8-java11-dependency/source_archive.expected b/java/ql/integration-tests/java/maven-java8-java11-dependency/source_archive.expected new file mode 100644 index 00000000000..5088f76cc38 --- /dev/null +++ b/java/ql/integration-tests/java/maven-java8-java11-dependency/source_archive.expected @@ -0,0 +1,4 @@ +pom.xml +src/main/java/com/example/Calculator.java +src/test/java/com/example/CalculatorTest.java +target/maven-archiver/pom.properties diff --git a/java/ql/integration-tests/java/maven-java8-java11-dependency/src/main/java/com/example/Calculator.java b/java/ql/integration-tests/java/maven-java8-java11-dependency/src/main/java/com/example/Calculator.java new file mode 100644 index 00000000000..4cc529e4f0f --- /dev/null +++ b/java/ql/integration-tests/java/maven-java8-java11-dependency/src/main/java/com/example/Calculator.java @@ -0,0 +1,11 @@ +package com.example; + +public class Calculator { + public int add(int a, int b) { + return a + b; + } + + public int multiply(int a, int b) { + return a * b; + } +} diff --git a/java/ql/integration-tests/java/maven-java8-java11-dependency/src/test/java/com/example/CalculatorTest.java b/java/ql/integration-tests/java/maven-java8-java11-dependency/src/test/java/com/example/CalculatorTest.java new file mode 100644 index 00000000000..821330a32cc --- /dev/null +++ b/java/ql/integration-tests/java/maven-java8-java11-dependency/src/test/java/com/example/CalculatorTest.java @@ -0,0 +1,21 @@ +package com.example; + +import org.testng.Assert; +import org.testng.annotations.Test; + +/** + * Test class using TestNG 7.7.0 which requires Java 11+. + */ +public class CalculatorTest { + @Test + public void testAdd() { + Calculator calc = new Calculator(); + Assert.assertEquals(calc.add(2, 3), 5); + } + + @Test + public void testMultiply() { + Calculator calc = new Calculator(); + Assert.assertEquals(calc.multiply(3, 4), 12); + } +} diff --git a/java/ql/integration-tests/java/maven-java8-java11-dependency/test.py b/java/ql/integration-tests/java/maven-java8-java11-dependency/test.py new file mode 100644 index 00000000000..eb49efe6a2a --- /dev/null +++ b/java/ql/integration-tests/java/maven-java8-java11-dependency/test.py @@ -0,0 +1,2 @@ +def test(codeql, java): + codeql.database.create() From fcc54c1470a5e4fb1d672a90454b3d39c7b2c3f3 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 30 Oct 2025 09:22:56 +0100 Subject: [PATCH 3/8] Java: Add test for detecting `--add-exports` in poms --- .../maven-add-exports-module-flags/pom.xml | 41 +++++++++++++++++++ .../source_archive.expected | 3 ++ .../main/java/com/example/CompilerUser.java | 15 +++++++ .../maven-add-exports-module-flags/test.py | 2 + 4 files changed, 61 insertions(+) create mode 100644 java/ql/integration-tests/java/maven-add-exports-module-flags/pom.xml create mode 100644 java/ql/integration-tests/java/maven-add-exports-module-flags/source_archive.expected create mode 100644 java/ql/integration-tests/java/maven-add-exports-module-flags/src/main/java/com/example/CompilerUser.java create mode 100644 java/ql/integration-tests/java/maven-add-exports-module-flags/test.py diff --git a/java/ql/integration-tests/java/maven-add-exports-module-flags/pom.xml b/java/ql/integration-tests/java/maven-add-exports-module-flags/pom.xml new file mode 100644 index 00000000000..94f5f90981e --- /dev/null +++ b/java/ql/integration-tests/java/maven-add-exports-module-flags/pom.xml @@ -0,0 +1,41 @@ + + + + 4.0.0 + + com.example + maven-add-exports-module-flags + 1.0-SNAPSHOT + + maven-add-exports-module-flags + Test case: Project using --add-exports. Autobuilder should detect this and use --source/--target. + + + UTF-8 + 11 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + ${java.version} + ${java.version} + + --add-exports + jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED + --add-exports + jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED + --add-exports + jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED + --add-exports + jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED + + + + + + diff --git a/java/ql/integration-tests/java/maven-add-exports-module-flags/source_archive.expected b/java/ql/integration-tests/java/maven-add-exports-module-flags/source_archive.expected new file mode 100644 index 00000000000..3d84bfa09ab --- /dev/null +++ b/java/ql/integration-tests/java/maven-add-exports-module-flags/source_archive.expected @@ -0,0 +1,3 @@ +pom.xml +src/main/java/com/example/CompilerUser.java +target/maven-archiver/pom.properties diff --git a/java/ql/integration-tests/java/maven-add-exports-module-flags/src/main/java/com/example/CompilerUser.java b/java/ql/integration-tests/java/maven-add-exports-module-flags/src/main/java/com/example/CompilerUser.java new file mode 100644 index 00000000000..13685d097a4 --- /dev/null +++ b/java/ql/integration-tests/java/maven-add-exports-module-flags/src/main/java/com/example/CompilerUser.java @@ -0,0 +1,15 @@ +package com.example; + +import com.sun.tools.javac.api.JavacTool; + +/** + * Simple class that uses JDK compiler internals. + * This requires --add-exports flags to compile. + */ +public class CompilerUser { + public static void main(String[] args) { + // Use JavacTool from jdk.compiler module + JavacTool tool = JavacTool.create(); + System.out.println("Compiler tool: " + tool.getClass().getName()); + } +} diff --git a/java/ql/integration-tests/java/maven-add-exports-module-flags/test.py b/java/ql/integration-tests/java/maven-add-exports-module-flags/test.py new file mode 100644 index 00000000000..eb49efe6a2a --- /dev/null +++ b/java/ql/integration-tests/java/maven-add-exports-module-flags/test.py @@ -0,0 +1,2 @@ +def test(codeql, java): + codeql.database.create() From 7dab2bef69d54d371c2d849ccc9d0d2fc2645cf7 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 30 Oct 2025 09:23:50 +0100 Subject: [PATCH 4/8] Java: Add test for Java 16 target when only Java 17+ is available --- .../java/maven-java16-with-higher-jdk/pom.xml | 30 +++++++++++++++++++ .../source_archive.expected | 3 ++ .../src/main/java/com/example/App.java | 15 ++++++++++ .../java/maven-java16-with-higher-jdk/test.py | 2 ++ 4 files changed, 50 insertions(+) create mode 100644 java/ql/integration-tests/java/maven-java16-with-higher-jdk/pom.xml create mode 100644 java/ql/integration-tests/java/maven-java16-with-higher-jdk/source_archive.expected create mode 100644 java/ql/integration-tests/java/maven-java16-with-higher-jdk/src/main/java/com/example/App.java create mode 100644 java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py diff --git a/java/ql/integration-tests/java/maven-java16-with-higher-jdk/pom.xml b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/pom.xml new file mode 100644 index 00000000000..e6a09518d8f --- /dev/null +++ b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/pom.xml @@ -0,0 +1,30 @@ + + + + 4.0.0 + + com.example + maven-java16-with-higher-jdk + 1.0-SNAPSHOT + + maven-java16-with-higher-jdk + Test case: Java 16 target when only Java 17+ is available. + + + UTF-8 + 16 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + ${java.version} + + + + + diff --git a/java/ql/integration-tests/java/maven-java16-with-higher-jdk/source_archive.expected b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/source_archive.expected new file mode 100644 index 00000000000..eb5dbc368ee --- /dev/null +++ b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/source_archive.expected @@ -0,0 +1,3 @@ +pom.xml +src/main/java/com/example/App.java +target/maven-archiver/pom.properties diff --git a/java/ql/integration-tests/java/maven-java16-with-higher-jdk/src/main/java/com/example/App.java b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/src/main/java/com/example/App.java new file mode 100644 index 00000000000..707e579ad68 --- /dev/null +++ b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/src/main/java/com/example/App.java @@ -0,0 +1,15 @@ +package com.example; + +import java.util.List; + +/** + * Simple class using Java 16 features (e.g.,records). + */ +public class App { + public static void main(String[] args) { + Person person = new Person("Bob", 42); + System.out.println(person); + } +} + +record Person(String name, int age) {} diff --git a/java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py new file mode 100644 index 00000000000..eb49efe6a2a --- /dev/null +++ b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py @@ -0,0 +1,2 @@ +def test(codeql, java): + codeql.database.create() From a82b5e7aa1ce11890305cc60bbda05fdf9421ea8 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 30 Oct 2025 09:26:44 +0100 Subject: [PATCH 5/8] 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() From 3b7f2f4eda3cf65c852ab160ed2693fd2732f356 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Wed, 12 Nov 2025 08:30:46 +0100 Subject: [PATCH 6/8] Java: Add `LGTM_INDEX_ MAVEN_TOLLCHAINS_FILE` for new Maven integration tests --- .../java/maven-add-exports-module-flags/test.py | 4 ++-- .../java/maven-execution-specific-java-version/test.py | 4 ++-- .../java/maven-java16-with-higher-jdk/test.py | 4 ++-- .../java/maven-java8-java11-dependency/test.py | 4 ++-- .../java/maven-multimodule-test-java-version/test.py | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/java/ql/integration-tests/java/maven-add-exports-module-flags/test.py b/java/ql/integration-tests/java/maven-add-exports-module-flags/test.py index eb49efe6a2a..73c4b1415a1 100644 --- a/java/ql/integration-tests/java/maven-add-exports-module-flags/test.py +++ b/java/ql/integration-tests/java/maven-add-exports-module-flags/test.py @@ -1,2 +1,2 @@ -def test(codeql, java): - codeql.database.create() +def test(codeql, java, actions_toolchains_file): + codeql.database.create(_env={"LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": str(actions_toolchains_file)}) 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 index eb49efe6a2a..73c4b1415a1 100644 --- 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 @@ -1,2 +1,2 @@ -def test(codeql, java): - codeql.database.create() +def test(codeql, java, actions_toolchains_file): + codeql.database.create(_env={"LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": str(actions_toolchains_file)}) diff --git a/java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py index eb49efe6a2a..73c4b1415a1 100644 --- a/java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py +++ b/java/ql/integration-tests/java/maven-java16-with-higher-jdk/test.py @@ -1,2 +1,2 @@ -def test(codeql, java): - codeql.database.create() +def test(codeql, java, actions_toolchains_file): + codeql.database.create(_env={"LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": str(actions_toolchains_file)}) diff --git a/java/ql/integration-tests/java/maven-java8-java11-dependency/test.py b/java/ql/integration-tests/java/maven-java8-java11-dependency/test.py index eb49efe6a2a..73c4b1415a1 100644 --- a/java/ql/integration-tests/java/maven-java8-java11-dependency/test.py +++ b/java/ql/integration-tests/java/maven-java8-java11-dependency/test.py @@ -1,2 +1,2 @@ -def test(codeql, java): - codeql.database.create() +def test(codeql, java, actions_toolchains_file): + codeql.database.create(_env={"LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": str(actions_toolchains_file)}) diff --git a/java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py index eb49efe6a2a..73c4b1415a1 100644 --- a/java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py +++ b/java/ql/integration-tests/java/maven-multimodule-test-java-version/test.py @@ -1,2 +1,2 @@ -def test(codeql, java): - codeql.database.create() +def test(codeql, java, actions_toolchains_file): + codeql.database.create(_env={"LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": str(actions_toolchains_file)}) From e6d4e515b03ef7cd5b9310aadb01f10dc01d0970 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 13 Nov 2025 09:41:32 +0100 Subject: [PATCH 7/8] Java: Add change note for Maven Java version auto-detection --- java/ql/src/change-notes/2025-11-13-maven-default-java-17 | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/src/change-notes/2025-11-13-maven-default-java-17 diff --git a/java/ql/src/change-notes/2025-11-13-maven-default-java-17 b/java/ql/src/change-notes/2025-11-13-maven-default-java-17 new file mode 100644 index 00000000000..59a2f1c3dfc --- /dev/null +++ b/java/ql/src/change-notes/2025-11-13-maven-default-java-17 @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Autobuild now auto-detects the Java version from Maven POM files across all project modules, defaulting to Java 17 or higher for improved build compatibility. \ No newline at end of file From d916ebdc240a7fb51dfc0527949acfe1fb05fac3 Mon Sep 17 00:00:00 2001 From: Idriss Riouak Date: Fri, 14 Nov 2025 09:53:09 +0100 Subject: [PATCH 8/8] Java: Address review comments. Improve Change note Co-authored-by: Chris Smowton --- java/ql/src/change-notes/2025-11-13-maven-default-java-17 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/change-notes/2025-11-13-maven-default-java-17 b/java/ql/src/change-notes/2025-11-13-maven-default-java-17 index 59a2f1c3dfc..26425b103ab 100644 --- a/java/ql/src/change-notes/2025-11-13-maven-default-java-17 +++ b/java/ql/src/change-notes/2025-11-13-maven-default-java-17 @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Autobuild now auto-detects the Java version from Maven POM files across all project modules, defaulting to Java 17 or higher for improved build compatibility. \ No newline at end of file +* Java analysis now selects the Java version to use informed by Maven POM files across all project modules. It also tries to use Java 17 or higher for all Maven projects if possible, for improved build compatibility. \ No newline at end of file