Skip to content

Commit d6a9295

Browse files
committed
Allow additional build info properties to have provided values
Closes gh-37889
1 parent 19db6b2 commit d6a9295

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/integrating-with-actuator.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,5 @@ include::../gradle/integrating-with-actuator/build-info-additional.gradle[tags=a
9595
----
9696
include::../gradle/integrating-with-actuator/build-info-additional.gradle.kts[tags=additional]
9797
----
98+
99+
An additional property's value can be computed lazily by using a `Provider`.

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/buildinfo/BuildInfoProperties.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.gradle.api.Project;
3131
import org.gradle.api.provider.MapProperty;
3232
import org.gradle.api.provider.Property;
33+
import org.gradle.api.provider.Provider;
3334
import org.gradle.api.provider.SetProperty;
3435
import org.gradle.api.tasks.Input;
3536
import org.gradle.api.tasks.Internal;
@@ -155,7 +156,12 @@ private <T> T getIfNotExcluded(Property<T> property, String name, Supplier<T> de
155156

156157
private Map<String, String> coerceToStringValues(Map<String, Object> input) {
157158
Map<String, String> output = new HashMap<>();
158-
input.forEach((key, value) -> output.put(key, (value != null) ? value.toString() : null));
159+
input.forEach((key, value) -> {
160+
if (value instanceof Provider<?> provider) {
161+
value = provider.getOrNull();
162+
}
163+
output.put(key, (value != null) ? value.toString() : null);
164+
});
159165
return output;
160166
}
161167

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/dsl/BuildInfoDslIntegrationTests-additionalProperties.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ springBoot {
1010
buildInfo {
1111
properties {
1212
additional = [
13-
'a': 'alpha', 'b': 'bravo'
13+
'a': 'alpha',
14+
'b': providers.provider({'bravo'})
1415
]
1516
}
1617
}

0 commit comments

Comments
 (0)