Skip to content

Commit 275a9c8

Browse files
committed
Java: Add integration test for --add-exports
1 parent deb2679 commit 275a9c8

File tree

8 files changed

+114
-0
lines changed

8 files changed

+114
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<groupId>com.example</groupId>
7+
<artifactId>maven-add-exports-module-flags</artifactId>
8+
<version>1.0-SNAPSHOT</version>
9+
10+
<name>maven-add-exports-module-flags</name>
11+
<description>Test case: Project using --add-exports for JDK internals. Maven.java should detect this and use --source/--target instead of --release.</description>
12+
13+
<properties>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
<java.version>11</java.version>
16+
</properties>
17+
18+
<build>
19+
<plugins>
20+
<plugin>
21+
<groupId>org.apache.maven.plugins</groupId>
22+
<artifactId>maven-compiler-plugin</artifactId>
23+
<version>3.11.0</version>
24+
<configuration>
25+
<source>${java.version}</source>
26+
<target>${java.version}</target>
27+
<compilerArgs>
28+
<arg>--add-exports</arg>
29+
<arg>jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
30+
<arg>--add-exports</arg>
31+
<arg>jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
32+
<arg>--add-exports</arg>
33+
<arg>jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
34+
<arg>--add-exports</arg>
35+
<arg>jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
36+
</compilerArgs>
37+
</configuration>
38+
</plugin>
39+
</plugins>
40+
</build>
41+
</project>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pom.xml
2+
src/main/java/com/example/CompilerUser.java
3+
target/maven-archiver/pom.properties
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.example;
2+
3+
import com.sun.tools.javac.api.JavacTool;
4+
5+
/**
6+
* Simple class that uses JDK compiler internals.
7+
* This requires --add-exports flags to compile.
8+
*/
9+
public class CompilerUser {
10+
public static void main(String[] args) {
11+
// Use JavacTool from jdk.compiler module
12+
JavacTool tool = JavacTool.create();
13+
System.out.println("Compiler tool: " + tool.getClass().getName());
14+
}
15+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
def test(codeql, java):
2+
codeql.database.create()
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<groupId>com.example</groupId>
7+
<artifactId>maven-java16-with-higher-jdk</artifactId>
8+
<version>1.0-SNAPSHOT</version>
9+
10+
<name>maven-java16-with-higher-jdk</name>
11+
<description>Test case: Java 16 target when only Java 17+ is available. Maven.java should select Java 17 and use --release 16.</description>
12+
13+
<properties>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
<java.version>16</java.version>
16+
</properties>
17+
18+
<build>
19+
<plugins>
20+
<plugin>
21+
<groupId>org.apache.maven.plugins</groupId>
22+
<artifactId>maven-compiler-plugin</artifactId>
23+
<version>3.11.0</version>
24+
<configuration>
25+
<release>${java.version}</release>
26+
</configuration>
27+
</plugin>
28+
</plugins>
29+
</build>
30+
</project>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pom.xml
2+
src/main/java/com/example/App.java
3+
target/maven-archiver/pom.properties
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.example;
2+
3+
import java.util.List;
4+
5+
/**
6+
* Simple class using Java 16 features (like records).
7+
*/
8+
public class App {
9+
public static void main(String[] args) {
10+
Person person = new Person("Alice", 30);
11+
System.out.println(person);
12+
13+
var numbers = List.of(1, 2, 3, 4, 5);
14+
System.out.println("Numbers: " + numbers);
15+
}
16+
}
17+
18+
record Person(String name, int age) {}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
def test(codeql, java):
2+
codeql.database.create()

0 commit comments

Comments
 (0)