From 5e0897c61de2e4b3eaabd6d4872e3093b667a832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 11 Mar 2025 15:07:40 +0100 Subject: [PATCH] Add Automatic-Module-Name to manifest file This commit updates the build to add an `Automatic-Module-Name` entry to the manifest of each published jar. The names follow a convention where the hyphen is replaced by a dot: * `spring-xml`: `spring.xml` * `spring-ws-core`: `spring.ws.core` * `spring-ws-security`: `spring.ws.security` * `spring-ws-support`: `spring.ws.support` * `spring-ws-test`: `spring.ws.test` Closes gh-1208 --- .../gradle/conventions/JavaPluginConventions.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaPluginConventions.java b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaPluginConventions.java index 87f06646..93042830 100644 --- a/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaPluginConventions.java +++ b/gradle/plugins/conventions-plugin/src/main/java/org/springframework/ws/gradle/conventions/JavaPluginConventions.java @@ -17,6 +17,7 @@ package org.springframework.ws.gradle.conventions; import java.util.Map; +import java.util.TreeMap; import io.spring.javaformat.gradle.SpringJavaFormatPlugin; import org.gradle.api.JavaVersion; @@ -79,11 +80,15 @@ class JavaPluginConventions { } private void configureJarManifest(Project project) { - project.getTasks() - .named("jar", Jar.class, - (jar) -> jar.manifest((manifest) -> manifest.attributes(Map.of("Build-Jdk-Spec", - JAVA_BASELINE.getMajorVersion(), "Built-By", "Spring", "Implementation-Title", - project.getDescription(), "Implementation-Version", project.getVersion())))); + project.getTasks().named("jar", Jar.class, (jar) -> jar.manifest((manifest) -> { + Map attributes = new TreeMap<>(); + attributes.put("Automatic-Module-Name", project.getName().replace("-", ".")); + attributes.put("Build-Jdk-Spec", JAVA_BASELINE.getMajorVersion()); + attributes.put("Built-By", "Spring"); + attributes.put("Implementation-Title", project.getDescription()); + attributes.put("Implementation-Version", project.getVersion()); + manifest.attributes(attributes); + })); } private void configureToolchain(Project project, JavaPluginExtension java) {