Skip to content

Commit 01b0156

Browse files
dreis2211wilkinsona
authored andcommitted
Allow additional JVM args when running tests via toolchain
See gh-27089
1 parent 685b78f commit 01b0156

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

buildSrc/src/main/java/org/springframework/boot/build/toolchain/ToolchainExtension.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.build.toolchain;
1818

1919
import org.gradle.api.Project;
20+
import org.gradle.api.provider.ListProperty;
2021
import org.gradle.api.provider.Property;
2122
import org.gradle.jvm.toolchain.JavaLanguageVersion;
2223

@@ -29,10 +30,13 @@ public class ToolchainExtension {
2930

3031
private final Property<JavaLanguageVersion> maximumCompatibleJavaVersion;
3132

33+
private final ListProperty<String> testJvmArgs;
34+
3235
private final JavaLanguageVersion javaVersion;
3336

3437
public ToolchainExtension(Project project) {
3538
this.maximumCompatibleJavaVersion = project.getObjects().property(JavaLanguageVersion.class);
39+
this.testJvmArgs = project.getObjects().listProperty(String.class);
3640
String toolchainVersion = (String) project.findProperty("toolchainVersion");
3741
this.javaVersion = (toolchainVersion != null) ? JavaLanguageVersion.of(toolchainVersion) : null;
3842
}
@@ -41,6 +45,10 @@ public Property<JavaLanguageVersion> getMaximumCompatibleJavaVersion() {
4145
return this.maximumCompatibleJavaVersion;
4246
}
4347

48+
public ListProperty<String> getTestJvmArgs() {
49+
return this.testJvmArgs;
50+
}
51+
4452
JavaLanguageVersion getJavaVersion() {
4553
return this.javaVersion;
4654
}

buildSrc/src/main/java/org/springframework/boot/build/toolchain/ToolchainPlugin.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@
1616

1717
package org.springframework.boot.build.toolchain;
1818

19-
import java.util.Collections;
20-
import java.util.List;
21-
2219
import org.gradle.api.Plugin;
2320
import org.gradle.api.Project;
2421
import org.gradle.api.plugins.JavaPluginExtension;
@@ -56,7 +53,7 @@ private void configure(Project project, ToolchainExtension toolchain) {
5653
JavaToolchainSpec toolchainSpec = project.getExtensions().getByType(JavaPluginExtension.class)
5754
.getToolchain();
5855
toolchainSpec.getLanguageVersion().set(toolchain.getJavaVersion());
59-
configureTestToolchain(project);
56+
configureTestToolchain(project, toolchain);
6057
}
6158
}
6259

@@ -71,11 +68,11 @@ private void disableToolchainTasks(Project project) {
7168
project.getTasks().withType(Test.class, (task) -> task.setEnabled(false));
7269
}
7370

74-
private void configureTestToolchain(Project project) {
75-
project.getTasks().withType(Test.class, (test) -> {
76-
List<String> arguments = Collections.singletonList("--illegal-access=warn");
77-
test.jvmArgs(arguments);
78-
});
71+
private void configureTestToolchain(Project project, ToolchainExtension toolchain) {
72+
if (!toolchain.getTestJvmArgs().isPresent()) {
73+
return;
74+
}
75+
project.getTasks().withType(Test.class, (test) -> test.jvmArgs(toolchain.getTestJvmArgs().get()));
7976
}
8077

8178
}

spring-boot-project/spring-boot/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ plugins {
99

1010
description = "Spring Boot"
1111

12+
toolchain {
13+
testJvmArgs.add("--add-opens=java.base/java.net=ALL-UNNAMED")
14+
}
15+
1216
def tomcatConfigProperties = "$buildDir/tomcat-config-properties"
1317

1418
configurations {

0 commit comments

Comments
 (0)