Skip to content

Commit 8e7fcd9

Browse files
committed
ix(smoke-tests): restore spring.factories key-aware merge for Shadow fat jars
SpringCloudStream smoke was failing because META-INF/spring.factories entries were appended as plain text, causing auto-configuration keys to be effectively overwritten. Switch back to PropertiesFileTransformer merge behavior for spring.factories (with duplicate resources included), so Spring Cloud Stream binder auto-config is preserved. Validated by passing SpringCloudStream Java21 smoke and focused regression checks.
1 parent f4874ab commit 8e7fcd9

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

buildSrc/src/main/kotlin/ai.smoke-test-jar.gradle.kts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2-
import com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer
2+
import com.github.jengelman.gradle.plugins.shadow.transformers.PropertiesFileTransformer
33
import com.microsoft.applicationinsights.gradle.AiSmokeTestExtension
44

55
plugins {
@@ -19,11 +19,13 @@ tasks.named<ShadowJar>("shadowJar") {
1919
filesMatching("META-INF/spring.factories") {
2020
duplicatesStrategy = DuplicatesStrategy.INCLUDE
2121
}
22-
23-
// Keep entries newline-delimited; malformed spring.factories breaks auto-configuration.
24-
transform(AppendingTransformer::class.java) {
25-
resource = "META-INF/spring.factories"
26-
separator = "\n"
22+
23+
// Properly merge spring.factories files from all dependencies
24+
// This is required for Spring Boot auto-configuration to work
25+
// Use PropertiesFileTransformer to merge duplicate keys instead of simple append
26+
transform(PropertiesFileTransformer::class.java) {
27+
paths = listOf("META-INF/spring.factories")
28+
mergeStrategy = PropertiesFileTransformer.MergeStrategy.Append
2729
}
2830

2931
// Set main class - can be overridden by individual projects via mainClassName property

0 commit comments

Comments
 (0)