From 82821e1afd74e1cb0a99f8f558f288bf2d8e8ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Thu, 18 Aug 2022 12:56:46 +0200 Subject: [PATCH] Allow reachability metadata version and url to be configured See gh-92 --- .../aot/gradle/AotSmokeTestPlugin.java | 17 +++++++++++++++-- gradle.properties | 2 ++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 gradle.properties diff --git a/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java b/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java index 8ea1e9de..9ccd1ffc 100644 --- a/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java +++ b/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java @@ -16,6 +16,7 @@ package org.springframework.aot.gradle; +import java.net.URI; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -26,12 +27,14 @@ import io.spring.javaformat.gradle.SpringJavaFormatPlugin; import io.spring.javaformat.gradle.tasks.CheckFormat; import org.graalvm.buildtools.gradle.NativeImagePlugin; import org.graalvm.buildtools.gradle.dsl.GraalVMExtension; +import org.graalvm.buildtools.gradle.dsl.GraalVMReachabilityMetadataRepositoryExtension; import org.graalvm.buildtools.gradle.tasks.BuildNativeImageTask; import org.gradle.api.JavaVersion; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.file.Directory; import org.gradle.api.file.RegularFile; +import org.gradle.api.plugins.ExtensionAware; import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginExtension; @@ -105,8 +108,18 @@ public class AotSmokeTestPlugin implements Plugin { private void configureNativeImageTests(Project project, SourceSet aotTest, AotSmokeTestExtension extension) { project.getPlugins().withType(NativeImagePlugin.class, (nativeImagePlugin) -> { - project.getExtensions().getByType(GraalVMExtension.class).getAgent().getTasksToInstrumentPredicate() - .set((task) -> false); + GraalVMExtension graalVMExtension = project.getExtensions().getByType(GraalVMExtension.class); + graalVMExtension.getAgent().getTasksToInstrumentPredicate().set((task) -> false); + GraalVMReachabilityMetadataRepositoryExtension metadataRepositoryExtension = ((ExtensionAware) graalVMExtension) + .getExtensions().getByType(GraalVMReachabilityMetadataRepositoryExtension.class); + String reachabilityMetadataVersion = (String) project.getProperties().get("reachabilityMetadataVersion"); + if (reachabilityMetadataVersion != null) { + metadataRepositoryExtension.getVersion().set(reachabilityMetadataVersion); + } + String reachabilityMetadataUrl = (String) project.getProperties().get("reachabilityMetadataUrl"); + if (reachabilityMetadataUrl != null) { + metadataRepositoryExtension.getUri().set(URI.create(reachabilityMetadataUrl)); + } Provider nativeImage = project.getTasks() .named(NativeImagePlugin.NATIVE_COMPILE_TASK_NAME, BuildNativeImageTask.class) .flatMap(BuildNativeImageTask::getOutputFile); diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..10f16546 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +#reachabilityMetadataVersion= +#reachabilityMetadataUrl=