Skip to content

Commit b94c80c

Browse files
build: declare Automatic-Module-Name for all published jars
Modular (JPMS) applications cannot depend on this project because none of its published jars declare module information, so the JDK falls back to deriving an automatic module name from the jar filename - a mechanism the JDK itself documents as unstable across releases and unsuitable to depend on in a `requires` clause. This adds an explicit, stable Automatic-Module-Name to every module, configured centrally in the parent's maven-jar-plugin management and set per-module via a new automatic.module.name property. Names are chosen to match each module's root Java package (e.g. io.awspring.cloud.sqs for spring-cloud-aws-sqs) so they remain valid if any module later migrates to a real module-info.java. This is intentionally scoped to the automatic-module-name step only, not full JPMS modularization (module-info.java per module), which would need further design input on package/export boundaries. Verified by building affected modules and inspecting the resulting jars with `jar --describe-module`, confirming each now resolves as a named automatic module instead of a filename-derived one. Fixes #1635 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent b4d7c40 commit b94c80c

16 files changed

Lines changed: 68 additions & 0 deletions

File tree

‎pom.xml‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,17 @@
145145
</java>
146146
</configuration>
147147
</plugin>
148+
<plugin>
149+
<groupId>org.apache.maven.plugins</groupId>
150+
<artifactId>maven-jar-plugin</artifactId>
151+
<configuration>
152+
<archive>
153+
<manifestEntries>
154+
<Automatic-Module-Name>${automatic.module.name}</Automatic-Module-Name>
155+
</manifestEntries>
156+
</archive>
157+
</configuration>
158+
</plugin>
148159
</plugins>
149160
</pluginManagement>
150161
<plugins>

‎spring-cloud-aws-app-config/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
<artifactId>spring-cloud-aws-app-config</artifactId>
1313
<name>Spring Cloud AWS App Config Integration</name>
1414

15+
<properties>
16+
<automatic.module.name>io.awspring.cloud.appconfig</automatic.module.name>
17+
</properties>
18+
1519
<dependencies>
1620
<dependency>
1721
<groupId>org.springframework</groupId>

‎spring-cloud-aws-autoconfigure/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
<artifactId>spring-cloud-aws-autoconfigure</artifactId>
1414
<name>Spring Cloud AWS Autoconfigure</name>
1515

16+
<properties>
17+
<automatic.module.name>io.awspring.cloud.autoconfigure</automatic.module.name>
18+
</properties>
19+
1620
<dependencies>
1721
<dependency>
1822
<groupId>org.springframework.boot</groupId>

‎spring-cloud-aws-core/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
<artifactId>spring-cloud-aws-core</artifactId>
1414
<name>Spring Cloud AWS Core</name>
1515

16+
<properties>
17+
<automatic.module.name>io.awspring.cloud.core</automatic.module.name>
18+
</properties>
19+
1620
<dependencies>
1721
<dependency>
1822
<groupId>software.amazon.awssdk</groupId>

‎spring-cloud-aws-docker-compose/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
<name>Spring Cloud AWS Docker Compose</name>
1515
<description>Spring Cloud AWS Docker Compose Integration</description>
1616

17+
<properties>
18+
<automatic.module.name>io.awspring.cloud.docker.compose</automatic.module.name>
19+
</properties>
20+
1721
<dependencies>
1822
<dependency>
1923
<groupId>io.awspring.cloud</groupId>

‎spring-cloud-aws-dynamodb/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
<artifactId>spring-cloud-aws-dynamodb</artifactId>
1212
<name>Spring Cloud AWS DynamoDb Integration</name>
1313

14+
<properties>
15+
<automatic.module.name>io.awspring.cloud.dynamodb</automatic.module.name>
16+
</properties>
17+
1418
<dependencies>
1519
<dependency>
1620
<groupId>software.amazon.awssdk</groupId>

‎spring-cloud-aws-kinesis-stream-binder/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
<artifactId>spring-cloud-aws-kinesis-stream-binder</artifactId>
1313
<name>Spring Cloud Stream AWS Kinesis Binder</name>
1414

15+
<properties>
16+
<automatic.module.name>io.awspring.cloud.kinesis.stream.binder</automatic.module.name>
17+
</properties>
18+
1519
<dependencies>
1620
<dependency>
1721
<groupId>io.awspring.cloud</groupId>

‎spring-cloud-aws-kinesis/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
<artifactId>spring-cloud-aws-kinesis</artifactId>
1313
<name>Spring Cloud AWS Kinesis Integration</name>
1414

15+
<properties>
16+
<automatic.module.name>io.awspring.cloud.kinesis</automatic.module.name>
17+
</properties>
18+
1519
<dependencies>
1620
<dependency>
1721
<groupId>software.amazon.awssdk</groupId>

‎spring-cloud-aws-parameter-store/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
<artifactId>spring-cloud-aws-parameter-store</artifactId>
1313
<name>Spring Cloud AWS Parameter Store Integration</name>
1414

15+
<properties>
16+
<automatic.module.name>io.awspring.cloud.parameterstore</automatic.module.name>
17+
</properties>
18+
1519
<dependencies>
1620
<dependency>
1721
<groupId>io.awspring.cloud</groupId>

‎spring-cloud-aws-s3/pom.xml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
<artifactId>spring-cloud-aws-s3</artifactId>
1414
<name>Spring Cloud AWS S3 Integration</name>
1515

16+
<properties>
17+
<automatic.module.name>io.awspring.cloud.s3</automatic.module.name>
18+
</properties>
19+
1620
<dependencies>
1721
<dependency>
1822
<groupId>org.springframework</groupId>

0 commit comments

Comments
 (0)