Skip to content

Commit adbeb7a

Browse files
committed
Include in the appendix properties described using only manual metadata
Closes gh-48073
1 parent 0458fa7 commit adbeb7a

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

buildSrc/src/main/java/org/springframework/boot/build/context/properties/ConfigurationMetadataPlugin.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import org.gradle.api.Plugin;
2222
import org.gradle.api.Project;
23+
import org.gradle.api.attributes.Category;
24+
import org.gradle.api.attributes.Usage;
2325
import org.gradle.api.plugins.JavaPlugin;
2426
import org.gradle.api.plugins.JavaPluginExtension;
2527
import org.gradle.api.provider.Provider;
@@ -38,6 +40,8 @@
3840
*/
3941
public class ConfigurationMetadataPlugin implements Plugin<Project> {
4042

43+
private static final String CONFIGURATION_PROPERTIES_METADATA_CONFIGURATION_NAME = "configurationPropertiesMetadata";
44+
4145
/**
4246
* Name of the {@link CheckAdditionalSpringConfigurationMetadata} task.
4347
*/
@@ -52,25 +56,38 @@ private void registerCheckAdditionalMetadataTask(Project project) {
5256
TaskProvider<CheckManualSpringConfigurationMetadata> checkConfigurationMetadata = project.getTasks()
5357
.register(CHECK_MANUAL_SPRING_CONFIGURATION_METADATA_TASK_NAME,
5458
CheckManualSpringConfigurationMetadata.class);
59+
SourceSet mainSourceSet = project.getExtensions()
60+
.getByType(JavaPluginExtension.class)
61+
.getSourceSets()
62+
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
63+
Provider<File> manualMetadataLocation = project.getTasks()
64+
.named(mainSourceSet.getProcessResourcesTaskName(), ProcessResources.class)
65+
.map((processResources) -> new File(processResources.getDestinationDir(),
66+
"META-INF/spring-configuration-metadata.json"));
5567
checkConfigurationMetadata.configure((check) -> {
56-
SourceSet mainSourceSet = project.getExtensions()
57-
.getByType(JavaPluginExtension.class)
58-
.getSourceSets()
59-
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
60-
61-
Provider<File> manualMetadataLocation = project.getTasks()
62-
.named(mainSourceSet.getProcessResourcesTaskName(), ProcessResources.class)
63-
.map((processResources) -> new File(processResources.getDestinationDir(),
64-
"META-INF/spring-configuration-metadata.json"));
6568
check.getMetadataLocation().set(manualMetadataLocation);
6669
check.getReportLocation()
6770
.set(project.getLayout()
6871
.getBuildDirectory()
6972
.file("reports/manual-spring-configuration-metadata/check.txt"));
7073
});
74+
addMetadataArtifact(project, manualMetadataLocation);
7175
project.getTasks()
7276
.named(LifecycleBasePlugin.CHECK_TASK_NAME)
7377
.configure((check) -> check.dependsOn(checkConfigurationMetadata));
7478
}
7579

80+
private void addMetadataArtifact(Project project, Provider<File> metadataLocation) {
81+
project.getConfigurations()
82+
.consumable(CONFIGURATION_PROPERTIES_METADATA_CONFIGURATION_NAME, (configuration) -> {
83+
configuration.attributes((attributes) -> {
84+
attributes.attribute(Category.CATEGORY_ATTRIBUTE,
85+
project.getObjects().named(Category.class, Category.DOCUMENTATION));
86+
attributes.attribute(Usage.USAGE_ATTRIBUTE,
87+
project.getObjects().named(Usage.class, "configuration-properties-metadata"));
88+
});
89+
});
90+
project.getArtifacts().add(CONFIGURATION_PROPERTIES_METADATA_CONFIGURATION_NAME, metadataLocation);
91+
}
92+
7693
}

0 commit comments

Comments
 (0)