diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/pom.xml b/java/ql/integration-tests/all-platforms/java/buildless-maven/pom.xml new file mode 100644 index 00000000000..ec4aaf128c1 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/pom.xml @@ -0,0 +1,114 @@ + + + + 4.0.0 + + com.example + maven-sample + 1.0-SNAPSHOT + + maven-sample + + http://www.example.com + + + UTF-8 + 1.7 + 1.7 + + + + + junit + junit + 4.11 + test + + + + + + + exec-maven-plugin + org.codehaus.mojo + 1.1.1 + + + check-maven-version + package + + java + + + + + com.example.App + + + + com.diffplug.spotless + spotless-maven-plugin + 2.19.1 + + + + check + + compile + + + + + + /* FAIL ME */ + + + + + + + + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + + + + + \ No newline at end of file diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/java/com/example/App.java b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/java/com/example/App.java new file mode 100644 index 00000000000..c9eec918587 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/java/com/example/App.java @@ -0,0 +1,30 @@ +package com.example; + +import java.util.regex.Pattern; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + String expectedVersion = System.getenv("EXPECT_MAVEN"); + Path mavenHome = Paths.get(System.getProperty("maven.home")).normalize(); + String observedVersion = mavenHome.getFileName().toString(); + if (expectedVersion != null && !expectedVersion.equals(observedVersion)) { + System.err.println("Wrong maven version, expected '" + expectedVersion + "' but got '" + observedVersion + "'" + mavenHome); + System.exit(1); + } + String commandMatcher = System.getenv("EXPECT_COMMAND_REGEX"); + String command = System.getProperty("sun.java.command"); + if (commandMatcher != null && !Pattern.matches(commandMatcher, command)) { + System.err.println("Wrong command line, '" + command + "' does not match '" + commandMatcher + "'"); + System.exit(1); + } + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/my-app.properties b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/my-app.properties new file mode 100644 index 00000000000..e566b49a29a --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/my-app.properties @@ -0,0 +1 @@ +version=1.0 diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/page.xml b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/page.xml new file mode 100644 index 00000000000..2bab459cb03 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/page.xml @@ -0,0 +1,8 @@ + + +A sample + + +

Hello world!

+ + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/struts.xml b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/struts.xml new file mode 100644 index 00000000000..73fc0c6b9cb --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/main/resources/struts.xml @@ -0,0 +1,4 @@ + + +This is a sample file + diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/src/test/java/com/example/AppTest.java b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/test/java/com/example/AppTest.java new file mode 100644 index 00000000000..22a94ca6f01 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/src/test/java/com/example/AppTest.java @@ -0,0 +1,20 @@ +package com.example; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/test.expected b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.expected new file mode 100644 index 00000000000..5d9163f3409 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.expected @@ -0,0 +1,8 @@ +xmlFiles +| pom.xml:0:0:0:0 | pom.xml | +| src/main/resources/page.xml:0:0:0:0 | src/main/resources/page.xml | +| src/main/resources/struts.xml:0:0:0:0 | src/main/resources/struts.xml | +propertiesFiles +#select +| src/main/java/com/example/App.java:0:0:0:0 | App | +| src/test/java/com/example/AppTest.java:0:0:0:0 | AppTest | diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/test.py b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.py new file mode 100644 index 00000000000..fc295ae5e35 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.py @@ -0,0 +1,5 @@ +import sys + +from create_database_utils import * + +run_codeql_database_create([], lang="java", extra_env={"CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS": "true", "CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS_CLASSPATH_FROM_BUILD_FILES": "true"}) diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/test.ql b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.ql new file mode 100644 index 00000000000..25cd26fdd14 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/test.ql @@ -0,0 +1,9 @@ +import java + +from File f +where f.isSourceFile() +select f + +query predicate xmlFiles(XmlFile x) { any() } + +query predicate propertiesFiles(File f) { f.getExtension() = "properties" } diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/java/com/example/App.java b/java/ql/integration-tests/all-platforms/java/buildless/src/main/java/com/example/App.java new file mode 100644 index 00000000000..c9eec918587 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/java/com/example/App.java @@ -0,0 +1,30 @@ +package com.example; + +import java.util.regex.Pattern; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + String expectedVersion = System.getenv("EXPECT_MAVEN"); + Path mavenHome = Paths.get(System.getProperty("maven.home")).normalize(); + String observedVersion = mavenHome.getFileName().toString(); + if (expectedVersion != null && !expectedVersion.equals(observedVersion)) { + System.err.println("Wrong maven version, expected '" + expectedVersion + "' but got '" + observedVersion + "'" + mavenHome); + System.exit(1); + } + String commandMatcher = System.getenv("EXPECT_COMMAND_REGEX"); + String command = System.getProperty("sun.java.command"); + if (commandMatcher != null && !Pattern.matches(commandMatcher, command)) { + System.err.println("Wrong command line, '" + command + "' does not match '" + commandMatcher + "'"); + System.exit(1); + } + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/my-app.properties b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/my-app.properties new file mode 100644 index 00000000000..e566b49a29a --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/my-app.properties @@ -0,0 +1 @@ +version=1.0 diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/page.xml b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/page.xml new file mode 100644 index 00000000000..2bab459cb03 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/page.xml @@ -0,0 +1,8 @@ + + +A sample + + +

Hello world!

+ + diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/struts.xml b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/struts.xml new file mode 100644 index 00000000000..73fc0c6b9cb --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/main/resources/struts.xml @@ -0,0 +1,4 @@ + + +This is a sample file + diff --git a/java/ql/integration-tests/all-platforms/java/buildless/src/test/java/com/example/AppTest.java b/java/ql/integration-tests/all-platforms/java/buildless/src/test/java/com/example/AppTest.java new file mode 100644 index 00000000000..22a94ca6f01 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/src/test/java/com/example/AppTest.java @@ -0,0 +1,20 @@ +package com.example; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/java/ql/integration-tests/all-platforms/java/buildless/test.expected b/java/ql/integration-tests/all-platforms/java/buildless/test.expected new file mode 100644 index 00000000000..f5801127103 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/test.expected @@ -0,0 +1,7 @@ +xmlFiles +| src/main/resources/page.xml:0:0:0:0 | src/main/resources/page.xml | +| src/main/resources/struts.xml:0:0:0:0 | src/main/resources/struts.xml | +propertiesFiles +#select +| src/main/java/com/example/App.java:0:0:0:0 | App | +| src/test/java/com/example/AppTest.java:0:0:0:0 | AppTest | diff --git a/java/ql/integration-tests/all-platforms/java/buildless/test.py b/java/ql/integration-tests/all-platforms/java/buildless/test.py new file mode 100644 index 00000000000..eeee63c9913 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/test.py @@ -0,0 +1,5 @@ +import sys + +from create_database_utils import * + +run_codeql_database_create([], lang="java", extra_env={"CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS": "true"}) diff --git a/java/ql/integration-tests/all-platforms/java/buildless/test.ql b/java/ql/integration-tests/all-platforms/java/buildless/test.ql new file mode 100644 index 00000000000..25cd26fdd14 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/buildless/test.ql @@ -0,0 +1,9 @@ +import java + +from File f +where f.isSourceFile() +select f + +query predicate xmlFiles(XmlFile x) { any() } + +query predicate propertiesFiles(File f) { f.getExtension() = "properties" }