From 007ca201e14d7f03def15c5209762eff81b4e91c Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 9 Sep 2026 14:44:51 +0100 Subject: [PATCH] Polish "Add SBOM manifest attributes to repackaged Maven wars" See gh-51551 Signed-off-by: Andy Wilkinson --- .../loader/tools/AbstractPackagerTests.java | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java b/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java index 52bb7b98468..0af59e83c54 100644 --- a/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java +++ b/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java @@ -687,31 +687,26 @@ abstract class AbstractPackagerTests

{ } @Test - void sbomManifestEntriesAreWritten() throws IOException { - this.testJarFile.addClass("com/example/Application.class", ClassWithMainMethod.class); - this.testJarFile.addFile("META-INF/sbom/application.cdx.json", new ByteArrayInputStream(new byte[0])); - P packager = createPackager(this.testJarFile.getFile()); - execute(packager, NO_LIBRARIES); - Manifest manifest = getPackagedManifest(); - assertThat(manifest).isNotNull(); - assertThat(manifest.getMainAttributes().getValue("Sbom-Format")).isEqualTo("CycloneDX"); - assertThat(manifest.getMainAttributes().getValue("Sbom-Location")) - .isEqualTo("META-INF/sbom/application.cdx.json"); + void sbomManifestEntriesAreWrittenForJar() throws IOException { + sbomManifestEntriesAreWritten(new Layouts.Jar(), ""); } @Test void sbomManifestEntriesAreWrittenForWar() throws IOException { - this.testJarFile.addClass("WEB-INF/classes/com/example/Application.class", ClassWithMainMethod.class); - this.testJarFile.addFile("WEB-INF/classes/META-INF/sbom/application.cdx.json", - new ByteArrayInputStream(new byte[0])); + sbomManifestEntriesAreWritten(new Layouts.War(), "WEB-INF/classes/"); + } + + private void sbomManifestEntriesAreWritten(Layout layout, String prefix) throws IOException { + this.testJarFile.addClass(prefix + "com/example/Application.class", ClassWithMainMethod.class); + this.testJarFile.addFile(prefix + "META-INF/sbom/application.cdx.json", new ByteArrayInputStream(new byte[0])); P packager = createPackager(this.testJarFile.getFile()); - packager.setLayout(new Layouts.War()); + packager.setLayout(layout); execute(packager, NO_LIBRARIES); Manifest manifest = getPackagedManifest(); assertThat(manifest).isNotNull(); assertThat(manifest.getMainAttributes().getValue("Sbom-Format")).isEqualTo("CycloneDX"); assertThat(manifest.getMainAttributes().getValue("Sbom-Location")) - .isEqualTo("WEB-INF/classes/META-INF/sbom/application.cdx.json"); + .isEqualTo(prefix + "META-INF/sbom/application.cdx.json"); } private File createLibraryJar() throws IOException {