From d495f8abfac196a510b6acbcfa6d8c4250c67777 Mon Sep 17 00:00:00 2001 From: idrissrio Date: Thu, 9 Oct 2025 14:05:11 +0200 Subject: [PATCH] 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 000000000000..39586e4e0aba --- /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 000000000000..d2397803d550 --- /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 000000000000..ea5f8b5b03b3 --- /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 000000000000..08385ca91a0a --- /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 000000000000..5895a91b2c19 --- /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 000000000000..30e83856200f --- /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 000000000000..eb49efe6a2a3 --- /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()