From d7334fed642fd7f2afb601f6ae52ed2600e5bcd5 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 7 Apr 2026 09:31:33 +0200 Subject: [PATCH] Upgrade to Native Build Tools Plugin 1.0.0 Closes gh-49920 --- ...tiveImagePluginActionIntegrationTests.java | 14 +- .../logback-classic/1.2.11/index.json | 3 - .../1.2.11/reachability-metadata.json | 297 ++++++++++++ .../1.2.11/reflect-config.json | 299 ------------ .../org.jline/jline/3.21.0/index.json | 6 - .../org.jline/jline/3.21.0/jni-config.json | 128 ----- .../org.jline/jline/3.21.0/proxy-config.json | 10 - .../jline/3.21.0/reachability-metadata.json | 380 +++++++++++++++ .../jline/3.21.0/reflect-config.json | 104 ---- .../jline/3.21.0/resource-config.json | 139 ------ ...metadata-library-index-schema-v2.0.0.json} | 61 ++- .../metadata-root-index-schema-v1.0.0.json | 67 --- .../reachability-metadata-schema-v1.2.0.json | 458 ++++++++++++++++++ gradle.properties | 2 +- 14 files changed, 1190 insertions(+), 778 deletions(-) delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/index.json create mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reachability-metadata.json delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reflect-config.json delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/index.json delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/jni-config.json delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/proxy-config.json create mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reachability-metadata.json delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reflect-config.json delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/resource-config.json rename build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/{metadata-library-index-schema-v1.0.0.json => metadata-library-index-schema-v2.0.0.json} (61%) delete mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-root-index-schema-v1.0.0.json create mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/reachability-metadata-schema-v1.2.0.json diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java b/build-plugin/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java index 688ef99de8f..9dccd61391c 100644 --- a/build-plugin/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java +++ b/build-plugin/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/NativeImagePluginActionIntegrationTests.java @@ -67,11 +67,8 @@ class NativeImagePluginActionIntegrationTests { File jarFile = new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".jar"); assertThat(buildLibs.listFiles()).contains(jarFile); assertThat(getEntryNames(jarFile)).contains( - "META-INF/native-image/ch.qos.logback/logback-classic/1.2.11/reflect-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/jni-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/proxy-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/reflect-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/resource-config.json"); + "META-INF/native-image/ch.qos.logback/logback-classic/1.2.11/reachability-metadata.json", + "META-INF/native-image/org.jline/jline/3.21.0/reachability-metadata.json"); } @TestTemplate @@ -87,11 +84,8 @@ class NativeImagePluginActionIntegrationTests { File jarFile = new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".jar"); assertThat(buildLibs.listFiles()).contains(jarFile); assertThat(getEntryNames(jarFile)).contains( - "META-INF/native-image/ch.qos.logback/logback-classic/1.2.11/reflect-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/jni-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/proxy-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/reflect-config.json", - "META-INF/native-image/org.jline/jline/3.21.0/resource-config.json"); + "META-INF/native-image/ch.qos.logback/logback-classic/1.2.11/reachability-metadata.json", + "META-INF/native-image/org.jline/jline/3.21.0/reachability-metadata.json"); } @TestTemplate diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/index.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/index.json deleted file mode 100644 index 768b5502a0b..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/index.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "reflect-config.json" -] diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reachability-metadata.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reachability-metadata.json new file mode 100644 index 00000000000..d42db680a78 --- /dev/null +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reachability-metadata.json @@ -0,0 +1,297 @@ +{ + "reflection": [ + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.CallerDataConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.ClassOfCallerConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.ContextNameConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.DateConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.FileOfCallerConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.LevelConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.LineOfCallerConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.LineSeparatorConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.LocalSequenceNumberConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.LoggerConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.MDCConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.MarkerConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.MessageConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.MethodOfCallerConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.NopThrowableInformationConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.PrefixCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.PropertyConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.RelativeTimeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.RootCauseFirstThrowableProxyConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.ThreadConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.ThrowableProxyConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.IdentityCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.ReplacingCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BlackCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BlueCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BoldBlueCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BoldCyanCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BoldGreenCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BoldMagentaCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BoldRedCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BoldWhiteCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.BoldYellowCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.CyanCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.GrayCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.GreenCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.MagentaCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.RedCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.WhiteCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "ch.qos.logback.core.pattern.color.YellowCompositeConverter", + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "ch.qos.logback.classic.LoggerContext" + }, + "type": "org.slf4j.impl.StaticLoggerBinder" + } + ] +} \ No newline at end of file diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reflect-config.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reflect-config.json deleted file mode 100644 index a0856ee205b..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/ch.qos.logback/logback-classic/1.2.11/reflect-config.json +++ /dev/null @@ -1,299 +0,0 @@ -[ - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.CallerDataConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.CallerDataConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.ClassOfCallerConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.ContextNameConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.DateConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.FileOfCallerConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.LevelConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.LineOfCallerConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.LineSeparatorConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.LocalSequenceNumberConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.LoggerConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.MDCConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.MarkerConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.MessageConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.MethodOfCallerConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.NopThrowableInformationConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.PrefixCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.PropertyConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.RelativeTimeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.RootCauseFirstThrowableProxyConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.ThreadConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.ThrowableProxyConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.IdentityCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.ReplacingCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BlackCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BlueCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BoldBlueCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BoldCyanCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BoldGreenCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BoldMagentaCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BoldRedCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BoldWhiteCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.BoldYellowCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.CyanCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.GrayCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.GreenCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.MagentaCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.RedCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.WhiteCompositeConverter", - "allPublicConstructors": true - }, - { - "condition": { - "typeReachable": "ch.qos.logback.classic.LoggerContext" - }, - "name": "ch.qos.logback.core.pattern.color.YellowCompositeConverter", - "allPublicConstructors": true - }, - { - "name": "org.slf4j.impl.StaticLoggerBinder" - } -] diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/index.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/index.json deleted file mode 100644 index 554ddf047aa..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/index.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - "jni-config.json", - "proxy-config.json", - "reflect-config.json", - "resource-config.json" -] diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/jni-config.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/jni-config.json deleted file mode 100644 index 85d5b8db21c..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/jni-config.json +++ /dev/null @@ -1,128 +0,0 @@ -[ - { - "condition": { - "typeReachable": "org.jline.terminal.impl.jansi.JansiNativePty" - }, - "fields": [ - { - "name": "HAVE_ISATTY" - }, - { - "name": "HAVE_TTYNAME" - }, - { - "name": "TCSADRAIN" - }, - { - "name": "TCSAFLUSH" - }, - { - "name": "TCSANOW" - }, - { - "name": "TIOCGETD" - }, - { - "name": "TIOCGWINSZ" - }, - { - "name": "TIOCSETD" - }, - { - "name": "TIOCSWINSZ" - } - ], - "name": "org.fusesource.jansi.internal.CLibrary" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.CLibrary$WinSize" - }, - "name": "org.fusesource.jansi.internal.CLibrary$WinSize" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.CLibrary$Termios" - }, - "name": "org.fusesource.jansi.internal.CLibrary$Termios" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32" - }, - "name": "org.fusesource.jansi.internal.Kernel32" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$SMALL_RECT" - }, - "name": "org.fusesource.jansi.internal.Kernel32$SMALL_RECT" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$COORD" - }, - "name": "org.fusesource.jansi.internal.Kernel32$COORD" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$CONSOLE_SCREEN_BUFFER_INFO" - }, - "name": "org.fusesource.jansi.internal.Kernel32$CONSOLE_SCREEN_BUFFER_INFO" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$CHAR_INFO" - }, - "name": "org.fusesource.jansi.internal.Kernel32$CHAR_INFO" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$KEY_EVENT_RECORD" - }, - "name": "org.fusesource.jansi.internal.Kernel32$KEY_EVENT_RECORD" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$MOUSE_EVENT_RECORD" - }, - "name": "org.fusesource.jansi.internal.Kernel32$MOUSE_EVENT_RECORD" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$WINDOW_BUFFER_SIZE_RECORD" - }, - "name": "org.fusesource.jansi.internal.Kernel32$WINDOW_BUFFER_SIZE_RECORD" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$FOCUS_EVENT_RECORD" - }, - "name": "org.fusesource.jansi.internal.Kernel32$FOCUS_EVENT_RECORD" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$MENU_EVENT_RECORD" - }, - "name": "org.fusesource.jansi.internal.Kernel32$MENU_EVENT_RECORD" - }, - { - "allDeclaredFields": true, - "condition": { - "typeReachable": "org.fusesource.jansi.internal.Kernel32$INPUT_RECORD" - }, - "name": "org.fusesource.jansi.internal.Kernel32$INPUT_RECORD" - } -] diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/proxy-config.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/proxy-config.json deleted file mode 100644 index 30918f9df6f..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/proxy-config.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "condition": { - "typeReachable": "org.jline.utils.Signals" - }, - "interfaces": [ - "sun.misc.SignalHandler" - ] - } -] diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reachability-metadata.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reachability-metadata.json new file mode 100644 index 00000000000..9e039ee47e0 --- /dev/null +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reachability-metadata.json @@ -0,0 +1,380 @@ +{ + "reflection": [ + { + "condition": { + "typeReached": "org.jline.terminal.impl.jansi.JansiNativePty" + }, + "type": "java.io.FileDescriptor" + }, + { + "condition": { + "typeReached": "org.jline.terminal.TerminalBuilder" + }, + "type": "java.lang.ProcessHandle", + "methods": [ + { + "name": "current", + "parameterTypes": [] + }, + { + "name": "info", + "parameterTypes": [] + }, + { + "name": "parent", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "org.jline.terminal.TerminalBuilder" + }, + "type": "java.lang.ProcessHandle$Info", + "methods": [ + { + "name": "command", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.jansi.JansiNativePty" + }, + "type": "org.fusesource.jansi.internal.CLibrary", + "jniAccessible": true, + "fields": [ + { + "name": "HAVE_ISATTY" + }, + { + "name": "HAVE_TTYNAME" + }, + { + "name": "TCSADRAIN" + }, + { + "name": "TCSAFLUSH" + }, + { + "name": "TCSANOW" + }, + { + "name": "TIOCGETD" + }, + { + "name": "TIOCGWINSZ" + }, + { + "name": "TIOCSETD" + }, + { + "name": "TIOCSWINSZ" + } + ] + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.CLibrary$Termios" + }, + "type": "org.fusesource.jansi.internal.CLibrary$Termios", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.CLibrary$WinSize" + }, + "type": "org.fusesource.jansi.internal.CLibrary$WinSize", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32" + }, + "type": "org.fusesource.jansi.internal.Kernel32", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$CHAR_INFO" + }, + "type": "org.fusesource.jansi.internal.Kernel32$CHAR_INFO", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$CONSOLE_SCREEN_BUFFER_INFO" + }, + "type": "org.fusesource.jansi.internal.Kernel32$CONSOLE_SCREEN_BUFFER_INFO", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$COORD" + }, + "type": "org.fusesource.jansi.internal.Kernel32$COORD", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$FOCUS_EVENT_RECORD" + }, + "type": "org.fusesource.jansi.internal.Kernel32$FOCUS_EVENT_RECORD", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$INPUT_RECORD" + }, + "type": "org.fusesource.jansi.internal.Kernel32$INPUT_RECORD", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$KEY_EVENT_RECORD" + }, + "type": "org.fusesource.jansi.internal.Kernel32$KEY_EVENT_RECORD", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$MENU_EVENT_RECORD" + }, + "type": "org.fusesource.jansi.internal.Kernel32$MENU_EVENT_RECORD", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$MOUSE_EVENT_RECORD" + }, + "type": "org.fusesource.jansi.internal.Kernel32$MOUSE_EVENT_RECORD", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$SMALL_RECT" + }, + "type": "org.fusesource.jansi.internal.Kernel32$SMALL_RECT", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.fusesource.jansi.internal.Kernel32$WINDOW_BUFFER_SIZE_RECORD" + }, + "type": "org.fusesource.jansi.internal.Kernel32$WINDOW_BUFFER_SIZE_RECORD", + "allDeclaredFields": true, + "jniAccessible": true + }, + { + "condition": { + "typeReached": "org.jline.builtins.Styles" + }, + "type": "org.jline.console.SystemRegistry", + "methods": [ + { + "name": "get", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "org.jline.utils.Signals" + }, + "type": "sun.misc.Signal", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "handle", + "parameterTypes": [ + "sun.misc.Signal", + "sun.misc.SignalHandler" + ] + } + ] + }, + { + "condition": { + "typeReached": "org.jline.terminal.TerminalBuilder" + }, + "type": "sun.misc.SignalHandler", + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredConstructors": true, + "allPublicConstructors": true + }, + { + "condition": { + "typeReached": "org.jline.utils.Signals" + }, + "type": "sun.misc.SignalHandler", + "fields": [ + { + "name": "SIG_DFL" + } + ] + }, + { + "condition": { + "typeReached": "org.jline.utils.Signals" + }, + "type": { + "proxy": [ + "sun.misc.SignalHandler" + ] + } + } + ], + "resources": [ + { + "condition": { + "typeReached": "org.jline.terminal.impl.jansi.JansiNativePty" + }, + "glob": "META-INF/native/windows64/jansi.dll" + }, + { + "condition": { + "typeReached": "org.jline.terminal.TerminalBuilder" + }, + "glob": "META-INF/services/org.jline.terminal.spi.JansiSupport" + }, + { + "condition": { + "typeReached": "org.jline.terminal.TerminalBuilder" + }, + "glob": "META-INF/services/org.jline.terminal.spi.JnaSupport" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.jansi.JansiNativePty" + }, + "glob": "org/fusesource/jansi/internal/native/Linux/x86_64/libjansi.so" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.jansi.JansiNativePty" + }, + "glob": "org/fusesource/jansi/jansi.properties" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.jansi.JansiSupportImpl" + }, + "glob": "org/fusesource/jansi/jansi.properties" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/ansi.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/capabilities.txt" + }, + { + "condition": { + "typeReached": "org.jline.utils.Colors" + }, + "glob": "org/jline/utils/colors.txt" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.DumbTerminal" + }, + "glob": "org/jline/utils/dumb-color.caps" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.DumbTerminal" + }, + "glob": "org/jline/utils/dumb.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/rxvt-basic.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/rxvt-unicode-256color.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/rxvt-unicode.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/rxvt.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/screen-256color.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/screen.caps" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.AbstractWindowsTerminal" + }, + "glob": "org/jline/utils/windows-256color.caps" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.AbstractWindowsTerminal" + }, + "glob": "org/jline/utils/windows-conemu.caps" + }, + { + "condition": { + "typeReached": "org.jline.terminal.impl.AbstractWindowsTerminal" + }, + "glob": "org/jline/utils/windows.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/xterm-256color.caps" + }, + { + "condition": { + "typeReached": "org.jline.utils.InfoCmp" + }, + "glob": "org/jline/utils/xterm.caps" + } + ] +} diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reflect-config.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reflect-config.json deleted file mode 100644 index 665ebda9477..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/reflect-config.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "condition": { - "typeReachable": "org.jline.terminal.impl.jansi.JansiNativePty" - }, - "name": "java.io.FileDescriptor", - "queriedMethods": [ - { - "name": "", - "parameterTypes": [ - "int" - ] - } - ] - }, - { - "condition": { - "typeReachable": "org.jline.terminal.TerminalBuilder" - }, - "methods": [ - { - "name": "current", - "parameterTypes": [] - }, - { - "name": "info", - "parameterTypes": [] - }, - { - "name": "parent", - "parameterTypes": [] - } - ], - "name": "java.lang.ProcessHandle" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.TerminalBuilder" - }, - "methods": [ - { - "name": "command", - "parameterTypes": [] - } - ], - "name": "java.lang.ProcessHandle$Info" - }, - { - "condition": { - "typeReachable": "org.jline.builtins.Styles" - }, - "methods": [ - { - "name": "get", - "parameterTypes": [] - } - ], - "name": "org.jline.console.SystemRegistry" - }, - { - "condition": { - "typeReachable": "org.jline.utils.Signals" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "handle", - "parameterTypes": [ - "sun.misc.Signal", - "sun.misc.SignalHandler" - ] - } - ], - "name": "sun.misc.Signal" - }, - { - "condition": { - "typeReachable": "org.jline.utils.Signals" - }, - "fields": [ - { - "name": "SIG_DFL" - } - ], - "name": "sun.misc.SignalHandler" - }, - { - "allDeclaredClasses": true, - "allDeclaredConstructors": true, - "allDeclaredMethods": true, - "allPublicClasses": true, - "allPublicConstructors": true, - "allPublicMethods": true, - "condition": { - "typeReachable": "org.jline.terminal.TerminalBuilder" - }, - "name": "sun.misc.SignalHandler" - } -] diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/resource-config.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/resource-config.json deleted file mode 100644 index 65fed15e105..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/org.jline/jline/3.21.0/resource-config.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "bundles": [], - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "org.jline.terminal.TerminalBuilder" - }, - "pattern": "\\QMETA-INF/services/org.jline.terminal.spi.JansiSupport\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.TerminalBuilder" - }, - "pattern": "\\QMETA-INF/services/org.jline.terminal.spi.JnaSupport\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.jansi.JansiNativePty" - }, - "pattern": "\\Qorg/fusesource/jansi/internal/native/Linux/x86_64/libjansi.so\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.jansi.JansiNativePty" - }, - "pattern": "\\QMETA-INF/native/windows64/jansi.dll\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.jansi.JansiNativePty" - }, - "pattern": "\\Qorg/fusesource/jansi/jansi.properties\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.jansi.JansiSupportImpl" - }, - "pattern": "\\Qorg/fusesource/jansi/jansi.properties\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/capabilities.txt\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.Colors" - }, - "pattern": "\\Qorg/jline/utils/colors.txt\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/ansi.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.DumbTerminal" - }, - "pattern": "\\Qorg/jline/utils/dumb.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.DumbTerminal" - }, - "pattern": "\\Qorg/jline/utils/dumb-color.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/rxvt.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/rxvt-basic.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/rxvt-unicode.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/rxvt-unicode-256color.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/screen.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/screen-256color.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.AbstractWindowsTerminal" - }, - "pattern": "\\Qorg/jline/utils/windows.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.AbstractWindowsTerminal" - }, - "pattern": "\\Qorg/jline/utils/windows-256color.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.terminal.impl.AbstractWindowsTerminal" - }, - "pattern": "\\Qorg/jline/utils/windows-conemu.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/xterm.caps\\E" - }, - { - "condition": { - "typeReachable": "org.jline.utils.InfoCmp" - }, - "pattern": "\\Qorg/jline/utils/xterm-256color.caps\\E" - } - ] - } -} diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v1.0.0.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v2.0.0.json similarity index 61% rename from build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v1.0.0.json rename to build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v2.0.0.json index 2461661166e..ef7edc27ba2 100644 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v1.0.0.json +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v2.0.0.json @@ -1,5 +1,5 @@ { - "$id": "https://raw.githubusercontent.com/oracle/graalvm-reachability-metadata/master/metadata/schemas/metadata-library-index-schema-v1.0.0.json", + "$id": "https://raw.githubusercontent.com/oracle/graalvm-reachability-metadata/master/metadata/schemas/metadata-library-index-schema-v2.0.0.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "Schema for metadata///index.json. Each entry describes a metadata bundle for a range of library versions.", "type": "array", @@ -8,15 +8,11 @@ "type": "object", "additionalProperties": false, "required": [ - "module", + "allowed-packages", "metadata-version", "tested-versions" ], "properties": { - "module": { - "$ref": "#/$defs/moduleCoordinate", - "description": "Maven coordinates in the form ':'." - }, "metadata-version": { "type": "string", "minLength": 1, @@ -37,6 +33,26 @@ "minLength": 1, "description": "Overrides 'metadata-version' for use in test directories. This allows one metadata entry to share tests defined for a different version's metadata directory." }, + "source-code-url": { + "type": "string", + "minLength": 1, + "description": "Optional URL pointing to the metadata source code for this entry." + }, + "repository-url": { + "type": "string", + "minLength": 1, + "description": "Optional URL pointing to the canonical project repository for this entry." + }, + "documentation-url": { + "type": "string", + "minLength": 1, + "description": "Optional URL pointing to the project documentation for this entry." + }, + "test-code-url": { + "type": "string", + "minLength": 1, + "description": "Optional URL pointing to the test source code for this entry." + }, "latest": { "type": "boolean", "description": "Marks this entry as the latest/default metadata for currently supported versions." @@ -49,6 +65,16 @@ "type": "boolean", "description": "When true, expresses the intent to exclude outdated built-in metadata shipped with Native Image for the matched versions." }, + "allowed-packages": { + "type": "array", + "description": "Packages expected to contain metadata entries for this library. Used by CI checks.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, "skipped-versions": { "type": "array", "description": "Versions explicitly excluded from support, each with a reason.", @@ -68,6 +94,15 @@ } } } + }, + "requires": { + "type": "array", + "description": "List of dependent modules (group:artifact) whose metadata is required at runtime.", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/$defs/moduleCoordinate" + } } } }, @@ -81,22 +116,26 @@ [ { "metadata-version": "0.0.1", - "module": "org.example:library", "tested-versions": [ "0.0.1", "0.0.2" ], "default-for": "0\\.0\\..*", - "test-version": "0.0.1" + "test-version": "0.0.1", + "source-code-url": "https://github.com/example/project/tree/main/metadata/org.example/library/0.0.1", + "repository-url": "https://github.com/example/project", + "test-code-url": "https://github.com/example/project/tree/main/tests/src/org.example/library/0.0.1", + "documentation-url": "https://github.com/example/project/tree/main/README.md", + "allowed-packages": [ "org.example.library" ] }, { "latest": true, "metadata-version": "1.0.0", - "module": "org.example:library", - "tested-versions": [ "1.0.0", "1.1.0" , "1.2.0"] + "tested-versions": [ "1.0.0", "1.1.0" , "1.2.0"], + "allowed-packages": [ "org.example.library" ] }, { "metadata-version": "1.19.0", - "module": "io.opentelemetry:opentelemetry-sdk-trace", "tested-versions": [ "1.19.0" ], "override": true, + "allowed-packages": [ "io.opentelemetry" ], "skipped-versions": [ { "version": "1.34.0", "reason": "Dependency io.opentelemetry:opentelemetry-api:1.34.0 provides reflect-config.json which does not parse." } ] diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-root-index-schema-v1.0.0.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-root-index-schema-v1.0.0.json deleted file mode 100644 index 7087aaa1d29..00000000000 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-root-index-schema-v1.0.0.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "$id": "https://raw.githubusercontent.com/oracle/graalvm-reachability-metadata/master/metadata/schemas/metadata-root-index-schema-v1.0.0.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "description": "Schema for metadata/index.json. This file lists modules known to the repository and optionally the directory where their metadata is stored, the allowed package prefixes for metadata, and inter-module requirements. See docs/CONTRIBUTING.md (Metadata structure).", - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "required": ["module"], - "properties": { - "module": { - "$ref": "#/$defs/moduleCoordinate", - "description": "Maven coordinates for the module in the form ':'." - }, - "directory": { - "type": "string", - "minLength": 1, - "pattern": "^[^\\s].*$", - "description": "Repository-relative path under 'metadata/' containing this module's metadata (e.g. 'org.example/library'). If omitted, the entry may reference requirements only." - }, - "allowed-packages": { - "type": "array", - "description": "List of package (or fully-qualified name) prefixes considered valid sources of metadata entries for this module. Used to filter-in relevant JSON entries.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "minLength": 1 - } - }, - "requires": { - "type": "array", - "description": "Optional list of module coordinates this module depends on. Each item is ':'.", - "minItems": 1, - "uniqueItems": true, - "items": { - "$ref": "#/$defs/moduleCoordinate" - } - } - } - }, - "$defs": { - "moduleCoordinate": { - "type": "string", - "pattern": "^[^:]+:[^:]+$" - } - }, - "examples": [ - [ - { - "directory": "org.example/library", - "module": "org.example:library" - }, - { - "allowed-packages": ["org.package.name"], - "module": "org.example:dependant-library", - "requires": ["org.example:library"] - }, - { - "allowed-packages" : [ "org.hibernate", "jakarta" ], - "directory" : "org.hibernate.orm/hibernate-envers", - "module" : "org.hibernate.orm:hibernate-envers", - "requires" : [ "org.hibernate.orm:hibernate-core" ] - } - ] - ] -} diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/reachability-metadata-schema-v1.2.0.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/reachability-metadata-schema-v1.2.0.json new file mode 100644 index 00000000000..ef4ca27a589 --- /dev/null +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/reachability-metadata-schema-v1.2.0.json @@ -0,0 +1,458 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "$id": "https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/reachability-metadata-schema-v1.2.0.json", + "title": "JSON schema for the reachability metadata used by GraalVM Native Image", + "version": "1.2.0", + "type": "object", + "default": {}, + "properties": { + "comment": { + "title": "Comment(s) applying to the whole file (e.g., generation date, author, etc.)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "default": "" + }, + "reflection": { + "title": "Metadata to ensure elements are accessible via reflection", + "type": "array", + "default": [], + "items": { + "title": "Elements that should be registered for reflection for a specified type", + "type": "object", + "required": ["type"], + "properties": { + "reason": { + "$ref": "#/$defs/reason" + }, + "condition": { + "$ref": "#/$defs/condition" + }, + "type": { + "title": "Type descriptor of the class that should be registered for reflection", + "$ref": "#/$defs/type" + }, + "methods": { + "title": "List of methods that should be registered for the type declared in ", + "type": "array", + "default": [], + "items": { + "title": "Method descriptor of the method that should be registered for reflection", + "$ref": "#/$defs/method" + } + }, + "fields": { + "title": "List of class fields that can be read or written to for the type declared in ", + "type": "array", + "default": [], + "items": { + "title": "Field descriptor of the field that should be registered for reflection", + "type": "object", + "properties": { + "name": { + "title": "Name of the field that should be registered for reflection", + "type": "string", + "pattern": "^[^.;\\[/]+$" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + } + }, + "allDeclaredMethods": { + "title": "Register all declared methods from the type for reflective invocation", + "type": "boolean", + "default": false + }, + "allDeclaredFields": { + "title": "Register all declared fields from the type for reflective access", + "type": "boolean", + "default": false + }, + "allDeclaredConstructors": { + "title": "Register all declared constructors from the type for reflective invocation", + "type": "boolean", + "default": false + }, + "allPublicMethods": { + "title": "Register all public methods from the type for reflective invocation", + "type": "boolean", + "default": false + }, + "allPublicFields": { + "title": "Register all public fields from the type for reflective access", + "type": "boolean", + "default": false + }, + "allPublicConstructors": { + "title": "Register all public constructors from the type for reflective invocation", + "type": "boolean", + "default": false + }, + "unsafeAllocated": { + "title": "Allow objects of this class to be instantiated with a call to jdk.internal.misc.Unsafe#allocateInstance or JNI's AllocObject", + "type": "boolean", + "default": false + }, + "serializable": { + "title": "Allow objects of this class to be serialized and deserialized", + "type": "boolean", + "default": false + }, + "jniAccessible": { + "title": "Register the type, including all registered fields and methods, for runtime JNI access", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "resources": { + "title": "Metadata to ensure resources are accessible", + "type": "array", + "default": [], + "items": { + "oneOf": [ + { + "title": "Resource that should be accessible", + "type": "object", + "properties": { + "reason": { + "$ref": "#/$defs/reason" + }, + "condition": { + "$ref": "#/$defs/condition" + }, + "module": { + "title": "Module containing the resource", + "type": "string", + "default": "" + }, + "glob": { + "title": "Resource name or pattern matching multiple resources (accepts * and ** wildcards)", + "type": "string" + } + }, + "required": [ + "glob" + ], + "additionalProperties": false + }, + { + "title": "Resource bundle that should be available", + "type": "object", + "properties": { + "reason": { + "$ref": "#/$defs/reason" + }, + "condition": { + "$ref": "#/$defs/condition" + }, + "module": { + "title": "Module containing the resource bundle", + "type": "string", + "default": "" + }, + "bundle": { + "title": "Resource bundle name", + "type": "string" + } + }, + "required": [ + "bundle" + ], + "additionalProperties": false + } + ] + } + }, + "foreign": { + "properties": { + "downcalls": { + "default": [], + "items": { + "properties": { + "reason": { + "$ref": "#/$defs/reason" + }, + "condition": { + "$ref": "#/$defs/condition" + }, + "returnType": { + "type": "string", + "title": "Memory layout definition (allows canonical layouts; see `java.lang.foreign.Linker`)" + }, + "parameterTypes": { + "default": [], + "items": { + "type": "string", + "title": "Memory layout definition (allows canonical layouts; see `java.lang.foreign.Linker`)" + }, + "type": "array", + "title": "List of the function descriptor's parameter types" + }, + "options": { + "type": "object", + "title": "Linker options (see `java.lang.foreign.Linker.Option`)", + "properties": { + "captureCallState": { + "type": "boolean", + "title": "Specifies whether a call state should be captured. The specific states to capture are determined at run time. See also: `java.lang.foreign.Linker.Option.captureCallState`" + }, + "critical": { + "type": "object", + "title": "See `java.lang.foreign.Linker.Option.critical`", + "properties": { + "allowHeapAccess": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "firstVariadicArg": { + "type": "integer", + "title": "See `java.lang.foreign.Linker.Option.firstVariadicArg`" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": ["returnType", "parameterTypes"], + "type": "object", + "title": "Function descriptor to be registered for a downcall" + }, + "type": "array", + "title": "List of function descriptors that should be registered for downcalls" + }, + "upcalls": { + "default": [], + "items": { + "properties": { + "reason": { + "$ref": "#/$defs/reason" + }, + "condition": { + "$ref": "#/$defs/condition" + }, + "returnType": { + "type": "string", + "title": "Memory layout definition (allows canonical layouts; see `java.lang.foreign.Linker`)" + }, + "parameterTypes": { + "default": [], + "items": { + "type": "string", + "title": "Memory layout definition (allows canonical layouts; see `java.lang.foreign.Linker`)" + }, + "type": "array", + "title": "List of the function descriptor's parameter types" + }, + "options": { + "type": "object", + "title": "Linker options (see `java.lang.foreign.Linker.Option`)", + "description": "Currently, no linker options are allowed for upcalls. This may change in the future.", + "properties": { }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": ["returnType", "parameterTypes"], + "type": "object", + "title": "Function descriptor to be registered for an upcall" + }, + "type": "array", + "title": "List of function descriptors that should be registered for upcalls" + }, + "directUpcalls": { + "default": [], + "items": { + "properties": { + "reason": { + "$ref": "#/$defs/reason" + }, + "condition": { + "$ref": "#/$defs/condition" + }, + "class": { + "$ref": "#/$defs/className", + "title": "Fully-qualified class name (e.g., `org.package.OuterClass$InnerClass`)" + }, + "method": { + "type": "string", + "title": "Method name" + }, + "returnType": { + "type": "string", + "title": "Memory layout definition (allows canonical layouts; see `java.lang.foreign.Linker`)" + }, + "parameterTypes": { + "default": [], + "items": { + "type": "string", + "title": "Memory layout definition (allows canonical layouts; see `java.lang.foreign.Linker`)" + }, + "type": "array", + "title": "List of the function descriptor's parameter types" + }, + "options": { + "type": "object", + "title": "Linker options (see `java.lang.foreign.Linker.Option`)", + "description": "Currently, no linker options are allowed for direct upcalls. This may change in the future.", + "properties": { }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": ["class", "method"], + "type": "object", + "title": "Java method and function descriptor to be registered for a direct upcall" + }, + "type": "array", + "title": "List of Java methods and function descriptors that should be registered for direct upcalls" + } + }, + "type": "object", + "additionalProperties": false, + "title": "JSON schema for the FFM API configuration used by GraalVM Native Image", + "description": "For a description and examples of writing an FFM API configuration, see: https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/FFM-API.md" + } + }, + "required": [], + "additionalProperties": false, + + "$defs": { + "className": { + "type": "string", + "pattern": "^[^.;\\[/]+(\\.[^.;\\[/]+)*$" + }, + "typeName": { + "type": "string", + "pattern": "^[^.;\\[/]+(\\.[^.;\\[/]+)*(\\[])*$" + }, + "reason": { + "title": "Reason(s) for including this element (e.g., needed for establishing connections, or needed by method X#Y for task Z)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "default": "" + }, + "condition": { + "title": "Condition used to determine if the element will be accessible at run time", + "type": "object", + "properties": { + "typeReached": { + "title": "Type descriptor of a class that must be reached in order to allow access to the element", + "$ref": "#/$defs/type" + } + }, + "required": [ + "typeReached" + ], + "additionalProperties": false + }, + "type": { + "title": "Type descriptors used by GraalVM Native Image metadata files", + "oneOf": [ + { + "$ref": "#/$defs/typeName" + }, + { + "type": "object", + "properties": { + "proxy": { + "title": "A list of interfaces defining the proxy class", + "type": "array", + "items": { + "title": "Fully-qualified name of the interface defining the proxy class", + "$ref": "#/$defs/className" + } + }, + "lambda": { + "title": "Lambda class descriptor", + "type": "object", + "properties": { + "declaringClass": { + "title": "The class in which the lambda class is defined", + "$ref": "#/$defs/className" + }, + "declaringMethod": { + "title": "The method in which the lambda class is defined", + "$ref": "#/$defs/method" + }, + "interfaces": { + "title": "Non-empty list of interfaces implemented by the lambda class", + "type": "array", + "items": { + "title": "Fully-qualified name of the interface implemented by the lambda class", + "$ref": "#/$defs/className" + }, + "minItems": 1 + } + }, + "required": [ + "declaringClass", + "interfaces" + ], + "additionalProperties": false + } + }, + "oneOf": [ + { + "required": [ + "proxy" + ] + }, + { + "required": [ + "lambda" + ] + } + ], + "additionalProperties": false + } + ] + }, + "method": { + "title": "Method descriptors used by GraalVM Native Image metadata files", + "type": "object", + "properties": { + "name": { + "title": "Method name that should be registered for this class", + "type": "string", + "pattern": "^[^.;\\[/]+$" + }, + "parameterTypes": { + "items": { + "title": "List of the method's parameter types", + "$ref": "#/$defs/typeName" + }, + "type": "array" + } + }, + "required": [ + "name", "parameterTypes" + ], + "additionalProperties": false + } + } +} diff --git a/gradle.properties b/gradle.properties index 6f186151dac..f46b720dadc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,7 +18,7 @@ junitJupiterVersion=6.0.3 kotlinVersion=2.3.20 mavenVersion=3.9.13 mockitoVersion=5.23.0 -nativeBuildToolsVersion=0.11.5 +nativeBuildToolsVersion=1.0.0 nullabilityPluginVersion=0.0.11 snakeYamlVersion=2.6 springFrameworkVersion=7.0.6