From 9294c003b45c7c45807596dc3e6473623d8db66d Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 17 Sep 2024 14:17:52 +0200 Subject: [PATCH] Remove setting BP_NATIVE_IMAGE Closes gh-32884 --- .../spring-boot-starter-parent/build.gradle | 7 ------- .../gradle-plugin/pages/packaging-oci-image.adoc | 2 +- .../antora/modules/gradle-plugin/pages/reacting.adoc | 2 +- .../boot/gradle/plugin/NativeImagePluginAction.java | 8 -------- .../NativeImagePluginActionIntegrationTests.java | 7 ------- ...tBuildImageIsConfiguredToBuildANativeImage.gradle | 12 ------------ .../image/paketo/PaketoBuilderTests-nativeApp.gradle | 11 ++++------- 7 files changed, 6 insertions(+), 43 deletions(-) delete mode 100644 spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests-bootBuildImageIsConfiguredToBuildANativeImage.gradle diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/build.gradle index a9a020db4eb..20b90926610 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/build.gradle @@ -265,13 +265,6 @@ publishing.publications.withType(MavenPublication) { plugin { delegate.groupId('org.springframework.boot') delegate.artifactId('spring-boot-maven-plugin') - configuration { - image { - env { - delegate.BP_NATIVE_IMAGE("true") - } - } - } executions { execution { delegate.id('process-aot') diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/packaging-oci-image.adoc b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/packaging-oci-image.adoc index e6523405b14..91f7a079246 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/packaging-oci-image.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/packaging-oci-image.adoc @@ -152,7 +152,7 @@ Acceptable values are `ALWAYS`, `NEVER`, and `IF_NOT_PRESENT`. | `environment` | | Environment variables that should be passed to the builder. -| Empty or `['BP_NATIVE_IMAGE': 'true']` when {url-native-build-tools-docs-gradle-plugin}[GraalVM Native Image plugin] is applied. +| Empty. | `buildpacks` | diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc index 4094068ab6b..f0dc8039ce7 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc @@ -89,6 +89,6 @@ When the {url-native-build-tools-docs-gradle-plugin}[GraalVM Native Image plugin . Configures the GraalVM extension to disable Toolchain detection. . Configures each GraalVM native binary to require GraalVM 22.3 or later. . Configures the `bootJar` task to include the reachability metadata produced by the `collectReachabilityMetadata` task in its jar. -. Configures the `bootBuildImage` task to set `BP_NATIVE_IMAGE` to `true` in its environment. +. Configures the `bootJar` task to add the `Spring-Boot-Native-Processed: true` manifest entry. diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/NativeImagePluginAction.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/NativeImagePluginAction.java index d7555c4255b..f46f62493af 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/NativeImagePluginAction.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/NativeImagePluginAction.java @@ -32,7 +32,6 @@ import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginExtension; import org.gradle.api.tasks.SourceSetContainer; -import org.springframework.boot.gradle.tasks.bundling.BootBuildImage; import org.springframework.boot.gradle.tasks.bundling.BootJar; /** @@ -59,7 +58,6 @@ class NativeImagePluginAction implements PluginApplicationAction { configureMainNativeBinaryClasspath(project, sourceSets, graalVmExtension); configureTestNativeBinaryClasspath(sourceSets, graalVmExtension); copyReachabilityMetadataToBootJar(project); - configureBootBuildImageToProduceANativeImage(project); configureJarManifestNativeAttribute(project); }); } @@ -102,12 +100,6 @@ class NativeImagePluginAction implements PluginApplicationAction { .configure((bootJar) -> bootJar.from(project.getTasks().named("collectReachabilityMetadata"))); } - private void configureBootBuildImageToProduceANativeImage(Project project) { - project.getTasks() - .named(SpringBootPlugin.BOOT_BUILD_IMAGE_TASK_NAME, BootBuildImage.class) - .configure((bootBuildImage) -> bootBuildImage.getEnvironment().put("BP_NATIVE_IMAGE", "true")); - } - private void configureJarManifestNativeAttribute(Project project) { project.getTasks() .named(SpringBootPlugin.BOOT_JAR_TASK_NAME, BootJar.class) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java index d3f471771bf..cf9d67951c2 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java @@ -88,13 +88,6 @@ class NativeImagePluginActionIntegrationTests { "META-INF/native-image/org.jline/jline/3.21.0/resource-config.json"); } - @TestTemplate - void bootBuildImageIsConfiguredToBuildANativeImage() { - writeDummySpringApplicationAotProcessorMainClass(); - BuildResult result = this.gradleBuild.build("bootBuildImageConfiguration"); - assertThat(result.getOutput()).contains("BP_NATIVE_IMAGE = true"); - } - @TestTemplate void developmentOnlyDependenciesDoNotAppearInNativeImageClasspath() { writeDummySpringApplicationAotProcessorMainClass(); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests-bootBuildImageIsConfiguredToBuildANativeImage.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests-bootBuildImageIsConfiguredToBuildANativeImage.gradle deleted file mode 100644 index 969f40bd1eb..00000000000 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests-bootBuildImageIsConfiguredToBuildANativeImage.gradle +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - id 'org.springframework.boot' version '{version}' - id 'java' -} - -apply plugin: 'org.graalvm.buildtools.native' - -task('bootBuildImageConfiguration') { - doFirst { - println "BP_NATIVE_IMAGE = ${tasks.getByName('bootBuildImage').environment.get()['BP_NATIVE_IMAGE']}" - } -} diff --git a/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/resources/org/springframework/boot/image/paketo/PaketoBuilderTests-nativeApp.gradle b/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/resources/org/springframework/boot/image/paketo/PaketoBuilderTests-nativeApp.gradle index ffa36bf5978..c82f134b991 100644 --- a/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/resources/org/springframework/boot/image/paketo/PaketoBuilderTests-nativeApp.gradle +++ b/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/resources/org/springframework/boot/image/paketo/PaketoBuilderTests-nativeApp.gradle @@ -28,13 +28,10 @@ bootJar { manifest { attributes( 'Implementation-Version': '1.0.0', - 'Implementation-Title': "Paketo Test" + 'Implementation-Title': 'Paketo Test', + // This shouldn't be necessary. + // See https://github.com/spring-projects/spring-boot/issues/42338 + 'Spring-Boot-Native-Processed': 'true' ) } } - -bootBuildImage { - environment = ['BP_NATIVE_IMAGE': 'true', - //see https://github.com/paketo-buildpacks/native-image/issues/321 - 'BP_NATIVE_IMAGE_BUILD_ARGUMENTS': '-H:-AddAllFileSystemProviders'] -}