spring-boot/spring-boot-project/spring-boot-tools
Stéphane Nicoll b3f35baed3 Add metadata support for types in arbitrary modules
Previously, if a ConfigurationProperties had a nested type or was
extending from a type located outside the compilation unit, no
metadata discovered on the source code was available (documentation and
explicit default value, if any). This typically happens when such a type
resides in another module.

This commit introduces `@ConfigurationPropertiesSource` as a way to
annotate such type and have metadata generated for them in their own
module.

Type-metadata is generated as one file per type and is reused
transparently whenever that type is used. As for module metadata, an
additional file can be crafted manually and will be merged when the
metadata for the type is generated.

The following is an example structure with two types where one has
an additional metadata:

META-iNF/
  spring/
    configuration-properties/
      additional/
        com.example.SourceOne.json
      com.example.SourceOne.json
      com.example.SourceTwo.json

Those files are used only by the annotation processor and are not meant
to be public API.

See gh-18366
2025-05-13 13:42:55 +02:00
..
spring-boot-antlib Merge branch '3.3.x' into 3.4.x 2025-04-14 16:18:41 -07:00
spring-boot-autoconfigure-processor Merge branch '3.3.x' 2024-10-18 10:49:15 -07:00
spring-boot-buildpack-platform Merge branch '3.4.x' 2025-05-08 12:25:34 -07:00
spring-boot-cli Merge branch '3.4.x' 2025-04-14 16:18:50 -07:00
spring-boot-configuration-metadata Apply conventions plugin to all subprojects 2024-09-24 14:26:32 -07:00
spring-boot-configuration-metadata-changelog-generator Polish "Fix changelog generator missing directly removed properties" 2025-04-25 15:51:29 +01:00
spring-boot-configuration-processor Add metadata support for types in arbitrary modules 2025-05-13 13:42:55 +02:00
spring-boot-gradle-plugin Replace spring-jcl with vanilla commons-logging 2025-05-09 17:38:11 -07:00
spring-boot-gradle-test-support Merge branch '3.3.x' into 3.4.x 2025-04-11 09:42:13 -07:00
spring-boot-jarmode-tools Merge branch '3.4.x' 2025-05-09 11:36:28 +02:00
spring-boot-loader Consistently return non-zero exit codes for jarmode failures 2024-12-06 19:00:50 -08:00
spring-boot-loader-classic Merge branch '3.3.x' 2024-12-13 19:03:48 -08:00
spring-boot-loader-tools Compile project with Java 24 and '-release' Java 17 2025-05-09 17:38:08 -07:00
spring-boot-maven-plugin Migrate to updated native hints API and new reachability JSON 2025-05-09 17:38:12 -07:00
spring-boot-properties-migrator Change relevant Assert calls to throw IllegalStateException 2025-01-11 21:16:36 -08:00
spring-boot-test-support Merge branch '3.4.x' 2025-04-10 16:35:21 +02:00
spring-boot-test-support-docker Merge branch '3.4.x' 2025-04-03 18:05:13 -07:00