This is an automated email from the ASF dual-hosted git repository.
robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
The following commit(s) were added to refs/heads/master by this push:
new d208475d45 AXIS2-6040 Add Automatic-Module-Name to all 24
JAR-producing modules
d208475d45 is described below
commit d208475d459e2c9e0bb2579fee8e57caab77b876
Author: Robert Lazarski <[email protected]>
AuthorDate: Tue Apr 21 05:16:39 2026 -1000
AXIS2-6040 Add Automatic-Module-Name to all 24 JAR-producing modules
Each module now defines its own Automatic-Module-Name in the
maven-jar-plugin configuration with hyphens replaced by dots:
axis2-kernel -> org.apache.axis2.kernel
axis2-json -> org.apache.axis2.json
axis2-transport-http -> org.apache.axis2.transport.http
axis2-resource-bundle -> org.apache.axis2.resource.bundle
(... 20 more modules)
A global parent POM approach using ${project.artifactId} was attempted
previously but produced invalid module names because Java module names
cannot contain hyphens. The per-module approach avoids this by
explicitly declaring each name.
This is a passive manifest attribute — it has no effect on the
classpath. It only provides a stable module name for users who use
Java 9+ JPMS with module-info.java, resolving the "unstable module
name" IDE warnings reported in this issue.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
---
modules/adb-codegen/pom.xml | 11 ++
modules/adb/pom.xml | 11 ++
modules/codegen/pom.xml | 11 ++
modules/corba/pom.xml | 11 ++
modules/java2wsdl/pom.xml | 11 ++
modules/jaxbri-codegen/pom.xml | 11 ++
modules/jaxws-mar/pom.xml | 11 ++
modules/jaxws/pom.xml | 11 ++
modules/json/pom.xml | 11 ++
modules/kernel/pom.xml | 11 ++
modules/mcp-bridge/pom.xml | 257 +++++++++++++++++++-----------------
modules/metadata/pom.xml | 11 ++
modules/mtompolicy/pom.xml | 11 ++
modules/openapi/pom.xml | 16 +++
modules/resource-bundle/pom.xml | 11 ++
modules/saaj/pom.xml | 11 ++
modules/spring-boot-starter/pom.xml | 16 +++
modules/spring/pom.xml | 11 ++
modules/testutils/pom.xml | 11 ++
modules/transport-h2/pom.xml | 8 ++
modules/transport/http/pom.xml | 8 ++
modules/transport/local/pom.xml | 11 ++
modules/xmlbeans-codegen/pom.xml | 11 ++
modules/xmlbeans/pom.xml | 11 ++
pom.xml | 9 +-
25 files changed, 396 insertions(+), 127 deletions(-)
diff --git a/modules/adb-codegen/pom.xml b/modules/adb-codegen/pom.xml
index 09c4d1b8e6..ea6f66fa4b 100644
--- a/modules/adb-codegen/pom.xml
+++ b/modules/adb-codegen/pom.xml
@@ -143,6 +143,17 @@
</goals>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.adb.codegen</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/adb/pom.xml b/modules/adb/pom.xml
index 61bb9dde52..d7bcab5b9d 100644
--- a/modules/adb/pom.xml
+++ b/modules/adb/pom.xml
@@ -141,6 +141,17 @@
<include>**/*Test.java</include>
</includes>
</configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.adb</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index 17d706b692..3eea297da1 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -252,6 +252,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.codegen</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/corba/pom.xml b/modules/corba/pom.xml
index d256a56c22..c6cbe75845 100644
--- a/modules/corba/pom.xml
+++ b/modules/corba/pom.xml
@@ -97,6 +97,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.corba</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/java2wsdl/pom.xml b/modules/java2wsdl/pom.xml
index d5c4c9551f..0d3c156c1d 100644
--- a/modules/java2wsdl/pom.xml
+++ b/modules/java2wsdl/pom.xml
@@ -216,6 +216,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.java2wsdl</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/jaxbri-codegen/pom.xml b/modules/jaxbri-codegen/pom.xml
index 0370d8f223..deaabbfc37 100644
--- a/modules/jaxbri-codegen/pom.xml
+++ b/modules/jaxbri-codegen/pom.xml
@@ -179,6 +179,17 @@
<include>**/*Test.java</include>
</includes>
</configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.jaxbri.codegen</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/jaxws-mar/pom.xml b/modules/jaxws-mar/pom.xml
index 215b205881..075ab17337 100644
--- a/modules/jaxws-mar/pom.xml
+++ b/modules/jaxws-mar/pom.xml
@@ -110,6 +110,17 @@
<configuration>
<includeDependencies>false</includeDependencies>
</configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.jaxws.mar</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/jaxws/pom.xml b/modules/jaxws/pom.xml
index e27b251aa7..794cdbca3d 100644
--- a/modules/jaxws/pom.xml
+++ b/modules/jaxws/pom.xml
@@ -357,6 +357,17 @@
<java.awt.headless>true</java.awt.headless>
</systemPropertyVariables>
</configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.jaxws</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/json/pom.xml b/modules/json/pom.xml
index 81668c6e04..ad11d20781 100644
--- a/modules/json/pom.xml
+++ b/modules/json/pom.xml
@@ -320,6 +320,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.json</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/kernel/pom.xml b/modules/kernel/pom.xml
index ebfc1f5968..0543fa47bf 100644
--- a/modules/kernel/pom.xml
+++ b/modules/kernel/pom.xml
@@ -265,6 +265,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.kernel</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/mcp-bridge/pom.xml b/modules/mcp-bridge/pom.xml
index 666def4f1f..dee3073046 100644
--- a/modules/mcp-bridge/pom.xml
+++ b/modules/mcp-bridge/pom.xml
@@ -1,123 +1,134 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
-
- <artifactId>axis2-mcp-bridge</artifactId>
- <packaging>jar</packaging>
-
- <name>Apache Axis2 - MCP Bridge</name>
- <description>
- Stdio MCP (Model Context Protocol) bridge for Apache Axis2. Fetches the
- /openapi-mcp.json tool catalog from a running Axis2 deployment and
exposes
- those operations as MCP tools to Claude Desktop and other MCP clients.
- Runs as a subprocess launched by an MCP client; communicates via
- newline-delimited JSON-RPC 2.0 on stdin/stdout.
- </description>
-
- <properties>
- <jackson.version>2.21.1</jackson.version>
- </properties>
-
- <dependencies>
- <!-- JSON parsing — Apache 2.0 -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${jackson.version}</version>
- </dependency>
-
- <!-- HTTP client — same stack as all Axis2/Java transports -->
- <dependency>
- <groupId>org.apache.httpcomponents.client5</groupId>
- <artifactId>httpclient5</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents.core5</groupId>
- <artifactId>httpcore5</artifactId>
- </dependency>
-
- <!-- Test -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>17</source>
- <target>17</target>
- </configuration>
- </plugin>
-
- <!-- Build a self-contained executable JAR for use as an MCP stdio
server. -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>3.6.0</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
-
<createDependencyReducedPom>false</createDependencyReducedPom>
-
<shadedArtifactAttached>true</shadedArtifactAttached>
- <shadedClassifierName>exe</shadedClassifierName>
- <transformers>
- <transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-
<mainClass>org.apache.axis2.mcp.bridge.McpBridgeMain</mainClass>
- </transformer>
- <transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
- </transformers>
- <filters>
- <filter>
- <artifact>*:*</artifact>
- <excludes>
- <exclude>META-INF/*.SF</exclude>
- <exclude>META-INF/*.DSA</exclude>
- <exclude>META-INF/*.RSA</exclude>
- </excludes>
- </filter>
- </filters>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>2.0.1-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>axis2-mcp-bridge</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Apache Axis2 - MCP Bridge</name>
+ <description>
+ Stdio MCP (Model Context Protocol) bridge for Apache Axis2. Fetches the
+ /openapi-mcp.json tool catalog from a running Axis2 deployment and
exposes
+ those operations as MCP tools to Claude Desktop and other MCP clients.
+ Runs as a subprocess launched by an MCP client; communicates via
+ newline-delimited JSON-RPC 2.0 on stdin/stdout.
+ </description>
+
+ <properties>
+ <jackson.version>2.21.1</jackson.version>
+ </properties>
+
+ <dependencies>
+ <!-- JSON parsing — Apache 2.0 -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+
+ <!-- HTTP client — same stack as all Axis2/Java transports -->
+ <dependency>
+ <groupId>org.apache.httpcomponents.client5</groupId>
+ <artifactId>httpclient5</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents.core5</groupId>
+ <artifactId>httpcore5</artifactId>
+ </dependency>
+
+ <!-- Test -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>17</source>
+ <target>17</target>
+ </configuration>
+ </plugin>
+
+ <!-- Build a self-contained executable JAR for use as an MCP stdio
server. -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.6.0</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+
<createDependencyReducedPom>false</createDependencyReducedPom>
+
<shadedArtifactAttached>true</shadedArtifactAttached>
+ <shadedClassifierName>exe</shadedClassifierName>
+ <transformers>
+ <transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+
<mainClass>org.apache.axis2.mcp.bridge.McpBridgeMain</mainClass>
+ </transformer>
+ <transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+ </transformers>
+ <filters>
+ <filter>
+ <artifact>*:*</artifact>
+ <excludes>
+ <exclude>META-INF/*.SF</exclude>
+ <exclude>META-INF/*.DSA</exclude>
+ <exclude>META-INF/*.RSA</exclude>
+ </excludes>
+ </filter>
+ </filters>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.mcp.bridge</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/modules/metadata/pom.xml b/modules/metadata/pom.xml
index 462a96ecf5..6ff52c3381 100755
--- a/modules/metadata/pom.xml
+++ b/modules/metadata/pom.xml
@@ -222,6 +222,17 @@
<org.apache.axis2.jaxws.repo.path>./target/repository</org.apache.axis2.jaxws.repo.path>
</systemPropertyVariables>
</configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.metadata</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/mtompolicy/pom.xml b/modules/mtompolicy/pom.xml
index 171c2a796a..3b93568e0f 100644
--- a/modules/mtompolicy/pom.xml
+++ b/modules/mtompolicy/pom.xml
@@ -90,6 +90,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.mtompolicy</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/openapi/pom.xml b/modules/openapi/pom.xml
index 0a54f060b2..270e206de8 100644
--- a/modules/openapi/pom.xml
+++ b/modules/openapi/pom.xml
@@ -107,4 +107,20 @@
<scope>test</scope>
</dependency>
</dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.openapi</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git a/modules/resource-bundle/pom.xml b/modules/resource-bundle/pom.xml
index 71311a36d2..ea0c892315 100644
--- a/modules/resource-bundle/pom.xml
+++ b/modules/resource-bundle/pom.xml
@@ -53,6 +53,17 @@
</goals>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.resource.bundle</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/saaj/pom.xml b/modules/saaj/pom.xml
index a2791a1808..574c382a4c 100644
--- a/modules/saaj/pom.xml
+++ b/modules/saaj/pom.xml
@@ -201,6 +201,17 @@
<java.awt.headless>true</java.awt.headless>
</systemPropertyVariables>
</configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.saaj</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/spring-boot-starter/pom.xml
b/modules/spring-boot-starter/pom.xml
index e69da4ece9..127a842b36 100644
--- a/modules/spring-boot-starter/pom.xml
+++ b/modules/spring-boot-starter/pom.xml
@@ -136,4 +136,20 @@
<scope>test</scope>
</dependency>
</dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.spring.boot.starter</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index 355997b6fe..6f3cffe623 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -87,6 +87,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.spring</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/testutils/pom.xml b/modules/testutils/pom.xml
index 569d40d374..7a5accf2d5 100644
--- a/modules/testutils/pom.xml
+++ b/modules/testutils/pom.xml
@@ -103,6 +103,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.testutils</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/transport-h2/pom.xml b/modules/transport-h2/pom.xml
index 4dd44fe914..36d04a5295 100644
--- a/modules/transport-h2/pom.xml
+++ b/modules/transport-h2/pom.xml
@@ -165,6 +165,14 @@
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.transport.h2</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
<executions>
<execution>
<goals>
diff --git a/modules/transport/http/pom.xml b/modules/transport/http/pom.xml
index 07678b356a..68058bc749 100644
--- a/modules/transport/http/pom.xml
+++ b/modules/transport/http/pom.xml
@@ -108,6 +108,14 @@
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.transport.http</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
<executions>
<execution>
<goals>
diff --git a/modules/transport/local/pom.xml b/modules/transport/local/pom.xml
index b1393d216a..e1e07011d6 100644
--- a/modules/transport/local/pom.xml
+++ b/modules/transport/local/pom.xml
@@ -115,6 +115,17 @@
</Export-Package>
</instructions>
</configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.transport.local</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/xmlbeans-codegen/pom.xml b/modules/xmlbeans-codegen/pom.xml
index 9bb9641c04..871ae3079e 100644
--- a/modules/xmlbeans-codegen/pom.xml
+++ b/modules/xmlbeans-codegen/pom.xml
@@ -70,6 +70,17 @@
</configuration>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.xmlbeans.codegen</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/modules/xmlbeans/pom.xml b/modules/xmlbeans/pom.xml
index 00167f386c..3bbbb14cdb 100644
--- a/modules/xmlbeans/pom.xml
+++ b/modules/xmlbeans/pom.xml
@@ -139,6 +139,17 @@
</goals>
</execution>
</executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <!-- AXIS2-6040: Stable module name for Java 9+
JPMS -->
+
<Automatic-Module-Name>org.apache.axis2.xmlbeans</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
</plugins>
</build>
diff --git a/pom.xml b/pom.xml
index ebab0368f9..1e1ce2e8b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1046,10 +1046,11 @@
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.5.0</version>
- <!-- AXIS2-6040: Automatic-Module-Name removed from global
config.
- Hyphens in artifactIds (e.g., axis2-resource-bundle)
produce
- invalid Java module names. Modules that need stable
JPMS names
- should define Automatic-Module-Name in their own
pom.xml. -->
+ <!-- AXIS2-6040: Automatic-Module-Name defined per-module
(not global).
+ A global ${project.artifactId} approach fails because
hyphens in
+ artifactIds (e.g., axis2-resource-bundle) are invalid
in Java
+ module names. Each module defines its own name with
hyphens
+ replaced by dots (e.g.,
org.apache.axis2.resource.bundle). -->
</plugin>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>