Browse Source

Merge branch '3.0.x' into 3.1.x

Closes gh-37380
pull/38706/head
Andy Wilkinson 2 years ago
parent
commit
dfb95329fd
  1. 9
      spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootAotPlugin.java
  2. 10
      spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/SpringBootAotPluginIntegrationTests.java
  3. 11
      spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/SpringBootAotPluginIntegrationTests-applyingAotPluginDoesNotPreventConfigurationOfJavaToolchainLanguageVersion.gradle

9
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootAotPlugin.java

@ -35,6 +35,7 @@ import org.gradle.api.plugins.JavaPlugin; @@ -35,6 +35,7 @@ import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.plugins.PluginContainer;
import org.gradle.api.provider.Provider;
import org.gradle.api.provider.ProviderFactory;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
import org.gradle.api.tasks.TaskProvider;
@ -150,7 +151,7 @@ public class SpringBootAotPlugin implements Plugin<Project> { @@ -150,7 +151,7 @@ public class SpringBootAotPlugin implements Plugin<Project> {
task.getArtifactId().set(project.provider(() -> project.getName()));
}
@SuppressWarnings("unchecked")
@SuppressWarnings({ "unchecked", "rawtypes" })
private Configuration createAotProcessingClasspath(Project project, String taskName, SourceSet inputSourceSet) {
Configuration base = project.getConfigurations()
.getByName(inputSourceSet.getRuntimeClasspathConfigurationName());
@ -160,9 +161,11 @@ public class SpringBootAotPlugin implements Plugin<Project> { @@ -160,9 +161,11 @@ public class SpringBootAotPlugin implements Plugin<Project> {
classpath.setDescription("Classpath of the " + taskName + " task.");
removeDevelopmentOnly(base.getExtendsFrom()).forEach(classpath::extendsFrom);
classpath.attributes((attributes) -> {
ProviderFactory providers = project.getProviders();
AttributeContainer baseAttributes = base.getAttributes();
for (Attribute<?> attribute : baseAttributes.keySet()) {
attributes.attribute((Attribute<Object>) attribute, baseAttributes.getAttribute(attribute));
for (Attribute attribute : baseAttributes.keySet()) {
attributes.attributeProvider(attribute,
providers.provider(() -> baseAttributes.getAttribute(attribute)));
}
});
});

10
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/SpringBootAotPluginIntegrationTests.java

@ -23,11 +23,14 @@ import java.util.List; @@ -23,11 +23,14 @@ import java.util.List;
import org.gradle.testkit.runner.TaskOutcome;
import org.junit.jupiter.api.TestTemplate;
import org.junit.jupiter.api.condition.EnabledOnJre;
import org.junit.jupiter.api.condition.JRE;
import org.springframework.boot.gradle.junit.GradleCompatibility;
import org.springframework.boot.testsupport.gradle.testkit.GradleBuild;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatNoException;
/**
* Integration tests for {@link SpringBootAotPlugin}.
@ -121,6 +124,13 @@ class SpringBootAotPluginIntegrationTests { @@ -121,6 +124,13 @@ class SpringBootAotPluginIntegrationTests {
.isEqualTo(TaskOutcome.NO_SOURCE);
}
// gh-37343
@TestTemplate
@EnabledOnJre(JRE.JAVA_17)
void applyingAotPluginDoesNotPreventConfigurationOfJavaToolchainLanguageVersion() {
assertThatNoException().isThrownBy(() -> this.gradleBuild.build("help").getOutput());
}
private void writeMainClass(String packageName, String className) throws IOException {
File java = new File(this.gradleBuild.getProjectDir(),
"src/main/java/" + packageName.replace(".", "/") + "/" + className + ".java");

11
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/SpringBootAotPluginIntegrationTests-applyingAotPluginDoesNotPreventConfigurationOfJavaToolchainLanguageVersion.gradle

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
plugins {
id 'org.springframework.boot'
id 'org.springframework.boot.aot'
id 'java'
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
Loading…
Cancel
Save