Merge branch '2.4.x'

See gh-26261
This commit is contained in:
Andy Wilkinson 2021-04-28 18:25:35 +01:00
commit c548693fa1

View File

@ -16,6 +16,11 @@
package org.springframework.boot.build;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -26,8 +31,10 @@ import java.util.stream.Collectors;
import io.spring.javaformat.gradle.FormatTask;
import io.spring.javaformat.gradle.SpringJavaFormatPlugin;
import org.gradle.api.Action;
import org.gradle.api.JavaVersion;
import org.gradle.api.Project;
import org.gradle.api.Task;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.artifacts.Dependency;
@ -147,10 +154,14 @@ class JavaConventions {
project.getTasks().withType(Test.class, (test) -> {
test.useJUnitPlatform();
test.setMaxHeapSize("1024M");
CopyJdk8156584SecurityProperties copyJdk8156584SecurityProperties = new CopyJdk8156584SecurityProperties(
project);
if (buildingWithJava8(project)) {
test.systemProperty("java.security.properties",
getClass().getClassLoader().getResource("jdk-8156584-security.properties"));
"file:" + test.getWorkingDir().toPath().relativize(copyJdk8156584SecurityProperties.output));
test.setDebug(true);
}
test.doFirst(copyJdk8156584SecurityProperties);
});
project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> project.getDependencies()
.add(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME, "org.junit.platform:junit-platform-launcher"));
@ -226,4 +237,27 @@ class JavaConventions {
project.getPlugins().apply(ToolchainPlugin.class);
}
private static final class CopyJdk8156584SecurityProperties implements Action<Task> {
private static final String SECURITY_PROPERTIES_FILE_NAME = "jdk-8156584-security.properties";
private final Path output;
private CopyJdk8156584SecurityProperties(Project project) {
this.output = new File(project.getBuildDir(), SECURITY_PROPERTIES_FILE_NAME).toPath();
}
@Override
public void execute(Task task) {
try (InputStream input = getClass().getClassLoader()
.getResourceAsStream(CopyJdk8156584SecurityProperties.SECURITY_PROPERTIES_FILE_NAME)) {
Files.copy(input, this.output);
}
catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
}