From fde18f4523caa047530dd140f9fb6f7e5067d650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Sat, 7 Mar 2026 11:13:18 +0100 Subject: [PATCH] Upgrade to Native Build Tools Plugin 0.11.5 Closes gh-49498 --- ...rary-and-framework-list-schema-v1.0.0.json | 100 +++++++++++++++++ .../metadata-library-index-schema-v1.0.0.json | 106 ++++++++++++++++++ .../metadata-root-index-schema-v1.0.0.json | 67 +++++++++++ gradle.properties | 2 +- 4 files changed, 274 insertions(+), 1 deletion(-) create mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/library-and-framework-list-schema-v1.0.0.json create mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v1.0.0.json create mode 100644 build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-root-index-schema-v1.0.0.json diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/library-and-framework-list-schema-v1.0.0.json b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/library-and-framework-list-schema-v1.0.0.json new file mode 100644 index 00000000000..0c6861ec0f8 --- /dev/null +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/library-and-framework-list-schema-v1.0.0.json @@ -0,0 +1,100 @@ +{ + "$id": "https://raw.githubusercontent.com/oracle/graalvm-reachability-metadata/master/metadata/schemas/library-and-framework-support-schema-v1.0.0.json", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "default": [], + "examples": [ + { + "artifact": "io.netty:netty5-parent", + "details": [ + { + "minimum_version": "4.1", + "metadata_locations": [ + "https://github.com/netty/netty/tree/main/common/src/main/resources/META-INF/native-image" + ], + "tests_locations": [ + "https://github.com/netty/netty/actions" + ], + "test_level": "fully-tested" + } + ] + } + ], + "items": { + "properties": { + "artifact": { + "default": "", + "description": "The artifact name in the groupId:artifactId format", + "pattern": "^[a-zA-Z0-9._-]+:[a-zA-Z0-9._*-]+$", + "title": "The name of the artifact", + "type": "string" + }, + "description": { + "default": "", + "title": "Short description of the library or framework", + "type": "string" + }, + "details": { + "default": [], + "items": { + "default": {}, + "properties": { + "maximal_version": { + "default": "", + "description": "Maximum version for which this entry applies. If not defined, it is assumed to be supported for all versions starting from the minimum_version", + "title": "Maximal version for which this entry applies", + "type": "string" + }, + "metadata_locations": { + "default": [], + "items": { + "default": "", + "type": "string" + }, + "title": "Web URLs of provided metadata", + "type": "array" + }, + "minimum_version": { + "default": "", + "title": "Minimal version for which this entry applies", + "type": "string" + }, + "test_level": { + "default": "Untested", + "enum": [ + "untested", + "community-tested", + "fully-tested" + ], + "title": "Testing level of reachability metadata for the library or framework", + "type": "string" + }, + "tests_locations": { + "default": [], + "items": { + "default": "", + "type": "string" + }, + "title": "Web URLs to tests (sources, CI dashboards/configurations, ...)", + "type": "array" + } + }, + "required": [ + "minimum_version", + "metadata_locations", + "tests_locations", + "test_level" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "artifact", + "details" + ], + "type": "object" + }, + "title": "Schema for the 'library-and-framework-list.json'", + "type": "array" +} 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-v1.0.0.json new file mode 100644 index 00000000000..2461661166e --- /dev/null +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-library-index-schema-v1.0.0.json @@ -0,0 +1,106 @@ +{ + "$id": "https://raw.githubusercontent.com/oracle/graalvm-reachability-metadata/master/metadata/schemas/metadata-library-index-schema-v1.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", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "module", + "metadata-version", + "tested-versions" + ], + "properties": { + "module": { + "$ref": "#/$defs/moduleCoordinate", + "description": "Maven coordinates in the form ':'." + }, + "metadata-version": { + "type": "string", + "minLength": 1, + "description": "Subdirectory name where the metadata files for this entry reside, e.g. '7.1.0.Final'." + }, + "tested-versions": { + "type": "array", + "description": "Explicitly tested upstream library versions that this metadata is known to support.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "test-version": { + "type": "string", + "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." + }, + "latest": { + "type": "boolean", + "description": "Marks this entry as the latest/default metadata for currently supported versions." + }, + "default-for": { + "type": "string", + "description": "Java regular expression describing the version range for which this entry should be used by default (e.g. '7\\\\.1\\\\..*')." + }, + "override": { + "type": "boolean", + "description": "When true, expresses the intent to exclude outdated built-in metadata shipped with Native Image for the matched versions." + }, + "skipped-versions": { + "type": "array", + "description": "Versions explicitly excluded from support, each with a reason.", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ "version", "reason" ], + "properties": { + "version": { + "type": "string", + "minLength": 1 + }, + "reason": { + "type": "string", + "minLength": 1 + } + } + } + } + } + }, + "$defs": { + "moduleCoordinate": { + "type": "string", + "pattern": "^[^:]+:[^:]+$" + } + }, + "examples": [ + [ + { + "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" + }, + { + "latest": true, + "metadata-version": "1.0.0", + "module": "org.example:library", + "tested-versions": [ "1.0.0", "1.1.0" , "1.2.0"] + }, + { + "metadata-version": "1.19.0", + "module": "io.opentelemetry:opentelemetry-sdk-trace", + "tested-versions": [ "1.19.0" ], + "override": true, + "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 new file mode 100644 index 00000000000..7087aaa1d29 --- /dev/null +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/reachability-metadata-repository/schemas/metadata-root-index-schema-v1.0.0.json @@ -0,0 +1,67 @@ +{ + "$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/gradle.properties b/gradle.properties index 9ee8a7f7ae9..29bfd05cefe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,7 +18,7 @@ junitJupiterVersion=6.0.3 kotlinVersion=2.3.10 mavenVersion=3.9.10 mockitoVersion=5.22.0 -nativeBuildToolsVersion=0.11.4 +nativeBuildToolsVersion=0.11.5 nullabilityPluginVersion=0.0.11 snakeYamlVersion=2.5 springFrameworkVersion=7.0.6-SNAPSHOT