You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ro...@apache.org on 2026/09/06 14:51:04 UTC
(axis-axis2-java-core) 04/05: Fix the springbootdemo build and align the three sample poms
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
commit ca4f27877f86bec374c39951803db3aadd6b9f62
Author: Robert Lazarski <ro...@gmail.com>
AuthorDate: Sat Sep 5 13:06:52 2026 -1000
Fix the springbootdemo build and align the three sample poms
springbootdemo's antrun step unzipped the packaged WAR at prepare-package,
before package had produced it; war:exploded is now the only producer of
the deployable directory. All three samples move to Spring Boot 3.5.16 and
Axis2 2.0.2-SNAPSHOT and take BOM-managed versions from properties. The
wildfly pom was the repo's only CRLF pom and is now LF, so review it with
--ignore-cr-at-eol.
Co-Authored-By: Claude Opus 5 (1M context) <no...@anthropic.com>
---
.../src/userguide/springbootdemo-tomcat11/pom.xml | 162 ++--
.../src/userguide/springbootdemo-wildfly/pom.xml | 930 +++++++++++----------
.../userguide/src/userguide/springbootdemo/pom.xml | 280 ++++---
3 files changed, 736 insertions(+), 636 deletions(-)
diff --git a/modules/samples/userguide/src/userguide/springbootdemo-tomcat11/pom.xml b/modules/samples/userguide/src/userguide/springbootdemo-tomcat11/pom.xml
index 278fb52d1c..8b05dbdd72 100644
--- a/modules/samples/userguide/src/userguide/springbootdemo-tomcat11/pom.xml
+++ b/modules/samples/userguide/src/userguide/springbootdemo-tomcat11/pom.xml
@@ -19,6 +19,15 @@
~ under the License.
-->
+<!--
+ springbootdemo-tomcat11 — Spring Boot + Axis2 demo for Tomcat 11 / Java 21+.
+ Shares its Java source with springbootdemo-wildfly, which adds only the
+ WildFly WEB-INF descriptors and reads src/main/java from here.
+
+ Build: mvn clean package
+ Output: target/deploy/axis2-json-api/ — an exploded WAR directory, deliberately
+ without a .war suffix; see README.md.
+-->
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -33,7 +42,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>3.4.3</version>
+ <version>3.5.16</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
@@ -41,15 +50,41 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>21</java.version>
- <spring-boot.version>3.4.3</spring-boot.version>
- <axis2.version>2.0.1-SNAPSHOT</axis2.version>
+
+ <axis2.version>2.0.2-SNAPSHOT</axis2.version>
+
+ <!-- Exploded WAR handed to the application server; see the header comment. -->
+ <deploy.dir>${project.build.directory}/deploy/axis2-json-api</deploy.dir>
+
+ <!--
+ Versions spring-boot-dependencies already manages, overridden here by
+ setting the BOM's own property. Do not replace these with a <version>
+ on the dependency: that pins the direct dependency only and leaves
+ transitive users of the same artifact on the Boot version, which is how
+ log4j-jul 2.25.x previously ended up beside log4j-core 2.24.3.
+ -->
+ <commons-codec.version>1.22.1</commons-codec.version>
+ <commons-lang3.version>3.20.0</commons-lang3.version>
+ <httpclient5.version>5.6.3</httpclient5.version>
+ <httpcore5.version>5.4.3</httpcore5.version>
+ <jakarta-servlet.version>6.1.0</jakarta-servlet.version>
+ <log4j2.version>2.25.4</log4j2.version>
+
+ <!-- Versions Spring Boot does not manage. -->
+ <axiom.version>2.0.0</axiom.version>
+ <commons-collections4.version>4.4</commons-collections4.version>
+ <commons-fileupload2.version>2.0.0-M5</commons-fileupload2.version>
+ <commons-io.version>2.22.0</commons-io.version>
+ <commons-validator.version>1.10.1</commons-validator.version>
+ <esapi.version>2.7.0.0</esapi.version>
+ <stax2-api.version>4.2.1</stax2-api.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
- <!-- Required in this userguide for
- org.springframework.dao.DataAccessException
+ <!-- Required in this userguide for
+ org.springframework.dao.DataAccessException
-->
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
@@ -62,32 +97,26 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
- <version>3.20.0</version>
</dependency>
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
- <version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>angus-activation</artifactId>
- <version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
- <version>4.0.5</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-xjc</artifactId>
- <version>4.0.5</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
- <version>4.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -96,18 +125,17 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
- <version>2.25.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
- <version>4.4</version>
- </dependency>
+ <version>${commons-collections4.version}</version>
+ </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
@@ -118,7 +146,7 @@
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
@@ -135,34 +163,31 @@
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
- <version>6.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
- <version>3.4.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.21.0</version>
+ <version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
- <version>1.19.0</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
- <version>1.10.1</version>
+ <version>${commons-validator.version}</version>
</dependency>
<!-- Axis2 core (JSON-RPC/MCP only — SOAP deps excluded) -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
<exclusions>
<!-- SOAP/WS-* deps not needed for JSON-RPC/MCP -->
<exclusion><groupId>org.apache.axis2</groupId><artifactId>axis2-saaj</artifactId></exclusion>
@@ -174,27 +199,27 @@
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-json</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-spring</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
@@ -205,126 +230,123 @@
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-h2</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5-h2</artifactId>
- <version>5.4.3</version>
</dependency>
<!-- Axiom (XML object model — still needed by kernel internals) -->
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-impl</artifactId>
- <version>2.0.0</version>
+ <version>${axiom.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-jakarta-activation</artifactId>
- <version>2.0.0</version>
+ <version>${axiom.version}</version>
</dependency>
<!-- Deps still needed at runtime (transitive from kernel) -->
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
- <version>4.2.1</version>
+ <version>${stax2-api.version}</version>
</dependency>
<!-- commons-fileupload -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-core</artifactId>
- <version>2.0.0-M5</version>
+ <version>${commons-fileupload2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
- <version>2.0.0-M5</version>
+ <version>${commons-fileupload2.version}</version>
</dependency>
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
- <version>2.7.0.0</version>
+ <version>${esapi.version}</version>
<classifier>jakarta</classifier>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
- <version>5.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
- <version>5.6.3</version>
</dependency>
</dependencies>
+
<build>
<plugins>
+ <!--
+ The openapi module has to reach WEB-INF/modules as openapi-<version>.mar.
+ Resolving it as an artifact rather than copying it out of
+ ${settings.localRepository} keeps it working with a mirror, a
+ non-default repository path, and timestamped remote snapshots.
+ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.1</version>
<executions>
<execution>
- <id>unpack</id>
- <phase>package</phase>
+ <id>copy-openapi-mar</id>
+ <phase>prepare-package</phase>
<goals>
- <goal>unpack</goal>
+ <goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
- <groupId>userguide.springboot</groupId>
- <artifactId>axis2-json-api</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <type>war</type>
- <overWrite>false</overWrite>
- <outputDirectory>${project.build.directory}/deploy/axis2-json-api</outputDirectory>
- <includes>**/*.class,**/*.xml</includes>
- <excludes>**/*test.class</excludes>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-openapi</artifactId>
+ <version>${axis2.version}</version>
+ <type>jar</type>
+ <outputDirectory>${deploy.dir}/WEB-INF/modules</outputDirectory>
+ <destFileName>openapi-${axis2.version}.mar</destFileName>
</artifactItem>
</artifactItems>
- <includes>**/*.java</includes>
- <excludes>**/*.properties</excludes>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
+ <!--
+ Each service archive is a jar holding nothing but META-INF/services.xml;
+ the implementation classes are loaded from WEB-INF/classes.
+ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
- <id>install</id>
+ <id>axis2-repository</id>
<phase>prepare-package</phase>
<configuration>
<target>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/Login.aar">
+ <jar jarfile="${deploy.dir}/WEB-INF/services/Login.aar">
<metainf file="resources-axis2/login_resources/services.xml"/>
</jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/testws.aar">
+ <jar jarfile="${deploy.dir}/WEB-INF/services/testws.aar">
<metainf file="resources-axis2/test_service_resources/services.xml"/>
</jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/BigDataH2Service.aar">
+ <jar jarfile="${deploy.dir}/WEB-INF/services/BigDataH2Service.aar">
<metainf file="resources-axis2/bigdata_h2_resources/services.xml"/>
</jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/FinancialBenchmarkService.aar">
+ <jar jarfile="${deploy.dir}/WEB-INF/services/FinancialBenchmarkService.aar">
<metainf file="resources-axis2/finbench_resources/services.xml"/>
</jar>
- <copy todir="${project.build.directory}/deploy/axis2-json-api/WEB-INF/conf">
+ <copy todir="${deploy.dir}/WEB-INF/conf">
<fileset dir="resources-axis2/conf">
<include name="axis2.xml"/>
</fileset>
</copy>
- <mkdir dir="${project.build.directory}/deploy/axis2-json-api/WEB-INF/modules"/>
- <copy file="${settings.localRepository}/org/apache/axis2/axis2-openapi/${axis2.version}/axis2-openapi-${axis2.version}.jar"
- tofile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/modules/openapi-${axis2.version}.mar"
- overwrite="true"/>
- <!-- The exploded WAR is at target/deploy/axis2-json-api/ (produced by
- maven-war-plugin's exploded goal). No separate unzip step needed.
- For Tomcat deployment, copy this directory to webapps/axis2-json-api. -->
</target>
</configuration>
<goals>
@@ -333,6 +355,13 @@
</execution>
</executions>
</plugin>
+ <!--
+ war:exploded writes into ${deploy.dir} during package, merging with the
+ services, conf and modules put there above. It is the only producer of
+ the deployable directory - do not add a step that unpacks the packaged
+ .war on top of it, since at prepare-package that file does not exist yet.
+ For Tomcat, copy this directory to webapps/.
+ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
@@ -349,11 +378,11 @@
<filtering>true</filtering>
</resource>
</webResources>
- <webappDirectory>${project.build.directory}/deploy/axis2-json-api</webappDirectory>
+ <webappDirectory>${deploy.dir}</webappDirectory>
</configuration>
<executions>
<execution>
- <id>enforce-java</id>
+ <id>exploded</id>
<goals>
<goal>exploded</goal>
</goals>
@@ -383,7 +412,6 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
- <version>3.4.3</version>
</dependency>
</dependencies>
</profile>
diff --git a/modules/samples/userguide/src/userguide/springbootdemo-wildfly/pom.xml b/modules/samples/userguide/src/userguide/springbootdemo-wildfly/pom.xml
index a476996372..c6b72cbef0 100644
--- a/modules/samples/userguide/src/userguide/springbootdemo-wildfly/pom.xml
+++ b/modules/samples/userguide/src/userguide/springbootdemo-wildfly/pom.xml
@@ -1,434 +1,496 @@
-<?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.
- -->
-
-<!--
- springbootdemo-wildfly — WildFly 32+ / Java 21+ deployment of the same
- Spring Boot + Axis2 demo that springbootdemo-tomcat11 targets for Tomcat 11.
- Tested on WildFly 39.0.1.Final / OpenJDK 25.
-
- Java source is shared from ../springbootdemo-tomcat11/src/main/java via
- build-helper-maven-plugin. The only new artifacts here are:
- src/main/webapp/WEB-INF/jboss-deployment-structure.xml
- src/main/webapp/WEB-INF/jboss-web.xml
-
- Build: mvn package -DskipTests
- Deploy: see README.md (rsync + touch .dodeploy)
- JDK: Compiled at Java 21 source level; tested on OpenJDK 21 and OpenJDK 25.
--->
-<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>userguide.springboot</groupId>
- <artifactId>axis2-json-api</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>war</packaging>
- <name>axis2-json-api-wildfly</name>
- <description>Spring Boot + Axis2 demo — WildFly 32+ / Java 21+ (tested on WildFly 39 / Java 25)</description>
-
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>3.4.3</version>
- <relativePath/>
- </parent>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <java.version>21</java.version>
- <spring-boot.version>3.4.3</spring-boot.version>
- <axis2.version>2.0.1-SNAPSHOT</axis2.version>
- <!-- Shared source root — avoids duplicating 37 Java files -->
- <tomcat11.src>${project.basedir}/../springbootdemo-tomcat11</tomcat11.src>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- <exclusions>
- <exclusion>
- <groupId>com.zaxxer</groupId>
- <artifactId>HikariCP</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.20.0</version>
- </dependency>
- <dependency>
- <groupId>jakarta.activation</groupId>
- <artifactId>jakarta.activation-api</artifactId>
- <version>2.1.4</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.angus</groupId>
- <artifactId>angus-activation</artifactId>
- <version>2.0.3</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jaxb</groupId>
- <artifactId>jaxb-runtime</artifactId>
- <version>4.0.5</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jaxb</groupId>
- <artifactId>jaxb-xjc</artifactId>
- <version>4.0.5</version>
- </dependency>
- <dependency>
- <groupId>jakarta.xml.bind</groupId>
- <artifactId>jakarta.xml.bind-api</artifactId>
- <version>4.0.4</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-log4j2</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-jul</artifactId>
- <version>2.25.3</version>
- </dependency>
- <!-- No spring-boot-devtools: WildFly hot-reload works differently -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-collections4</artifactId>
- <version>4.4</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configuration-processor</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-validation</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- Servlet API is provided by WildFly (Undertow) -->
- <dependency>
- <groupId>jakarta.servlet</groupId>
- <artifactId>jakarta.servlet-api</artifactId>
- <version>6.1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- <version>3.4.3</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.21.0</version>
- </dependency>
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.19.0</version>
- </dependency>
- <dependency>
- <groupId>commons-validator</groupId>
- <artifactId>commons-validator</artifactId>
- <version>1.10.1</version>
- </dependency>
- <!-- axis2 -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-fileupload2-core</artifactId>
- <version>2.0.0-M5</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
- <version>2.0.0-M5</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-kernel</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-transport-http</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <!-- HTTP/2 Transport for Enterprise Big Data Processing -->
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-transport-h2</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <!-- HTTP/2 Dependencies -->
- <dependency>
- <groupId>org.apache.httpcomponents.core5</groupId>
- <artifactId>httpcore5-h2</artifactId>
- <version>5.4.3</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-transport-local</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-json</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-ant-plugin</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-adb</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-java2wsdl</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-metadata</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-spring</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-jaxws</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-openapi</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.neethi</groupId>
- <artifactId>neethi</artifactId>
- <version>3.2.2</version>
- </dependency>
- <dependency>
- <groupId>wsdl4j</groupId>
- <artifactId>wsdl4j</artifactId>
- <version>1.6.3</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws.xmlschema</groupId>
- <artifactId>xmlschema-core</artifactId>
- <version>2.3.1</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>stax2-api</artifactId>
- <version>4.2.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.woden</groupId>
- <artifactId>woden-core</artifactId>
- <version>1.0M10</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws.commons.axiom</groupId>
- <artifactId>axiom-impl</artifactId>
- <version>2.0.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws.commons.axiom</groupId>
- <artifactId>axiom-dom</artifactId>
- <version>2.0.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws.commons.axiom</groupId>
- <artifactId>axiom-jakarta-activation</artifactId>
- <version>2.0.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws.commons.axiom</groupId>
- <artifactId>axiom-legacy-attachments</artifactId>
- <version>2.0.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws.commons.axiom</groupId>
- <artifactId>axiom-jakarta-jaxb</artifactId>
- <version>2.0.0</version>
- </dependency>
- <dependency>
- <groupId>javax.ws.rs</groupId>
- <artifactId>jsr311-api</artifactId>
- <version>1.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.owasp.esapi</groupId>
- <artifactId>esapi</artifactId>
- <version>2.7.0.0</version>
- <classifier>jakarta</classifier>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents.core5</groupId>
- <artifactId>httpcore5</artifactId>
- <version>5.4.3</version>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents.client5</groupId>
- <artifactId>httpclient5</artifactId>
- <version>5.6.3</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <!--
- Share Java source and resources from springbootdemo-tomcat11.
- No Java files live in this module — it only adds WildFly WEB-INF resources.
- -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>3.6.0</version>
- <executions>
- <execution>
- <id>add-source</id>
- <phase>generate-sources</phase>
- <goals><goal>add-source</goal></goals>
- <configuration>
- <sources>
- <source>${tomcat11.src}/src/main/java</source>
- </sources>
- </configuration>
- </execution>
- <execution>
- <id>add-resource</id>
- <phase>generate-resources</phase>
- <goals><goal>add-resource</goal></goals>
- <configuration>
- <resources>
- <resource>
- <directory>${tomcat11.src}/src/main/resources</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
-<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>3.1.0</version>
- <executions>
- <execution>
- <id>install</id>
- <phase>prepare-package</phase>
- <configuration>
- <target>
- <!-- .aar files reference resources-axis2 in the shared tomcat11 dir -->
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/Login.aar">
- <metainf file="${tomcat11.src}/resources-axis2/login_resources/services.xml"/>
- </jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/testws.aar">
- <metainf file="${tomcat11.src}/resources-axis2/test_service_resources/services.xml"/>
- </jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/BigDataH2Service.aar">
- <metainf file="${tomcat11.src}/resources-axis2/bigdata_h2_resources/services.xml"/>
- </jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/services/FinancialBenchmarkService.aar">
- <metainf file="${tomcat11.src}/resources-axis2/finbench_resources/services.xml"/>
- </jar>
- <copy todir="${project.build.directory}/deploy/axis2-json-api/WEB-INF/conf">
- <fileset dir="${tomcat11.src}/resources-axis2/conf">
- <include name="axis2.xml"/>
- </fileset>
- </copy>
- <mkdir dir="${project.build.directory}/deploy/axis2-json-api/WEB-INF/modules"/>
- <copy file="${settings.localRepository}/org/apache/axis2/axis2-openapi/${axis2.version}/axis2-openapi-${axis2.version}.jar"
- tofile="${project.build.directory}/deploy/axis2-json-api/WEB-INF/modules/openapi-${axis2.version}.mar"
- overwrite="true"/>
- <!-- exploded/ view is produced by maven-war-plugin's exploded goal (package phase) -->
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <!--
- src/main/webapp/WEB-INF/ contains jboss-deployment-structure.xml
- and jboss-web.xml — picked up automatically from here.
- -->
- <webResources>
- <resource>
- <directory>${tomcat11.src}/src/main/resources</directory>
- <includes>
- <include>**/*.xml</include>
- <include>**/application.properties</include>
- </includes>
- <targetPath>WEB-INF/classes</targetPath>
- <filtering>true</filtering>
- </resource>
- </webResources>
- <webappDirectory>${project.build.directory}/deploy/axis2-json-api</webappDirectory>
- </configuration>
- <executions>
- <execution>
- <id>enforce-java</id>
- <goals>
- <goal>exploded</goal>
- </goals>
- </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.
+ -->
+
+<!--
+ springbootdemo-wildfly — WildFly 32+ / Java 21+ deployment of the same
+ Spring Boot + Axis2 demo that springbootdemo-tomcat11 targets for Tomcat 11.
+ Tested on WildFly 39.0.1.Final / OpenJDK 25.
+
+ Java source, resources and the Axis2 repository content are all shared from
+ ../springbootdemo-tomcat11 — keep the dependency list here in step with that
+ module's. The only new artifacts here are:
+ src/main/webapp/WEB-INF/jboss-deployment-structure.xml
+ src/main/webapp/WEB-INF/jboss-web.xml
+
+ Build: mvn package -DskipTests
+ Deploy: see README.md (rsync + touch .dodeploy)
+ JDK: Compiled at Java 21 source level; tested on OpenJDK 21 and OpenJDK 25.
+-->
+<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>userguide.springboot</groupId>
+ <artifactId>axis2-json-api</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <packaging>war</packaging>
+ <name>axis2-json-api-wildfly</name>
+ <description>Spring Boot + Axis2 demo — WildFly 32+ / Java 21+ (tested on WildFly 39 / Java 25)</description>
+
+ <parent>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-parent</artifactId>
+ <version>3.5.16</version>
+ <relativePath/>
+ </parent>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <java.version>21</java.version>
+
+ <axis2.version>2.0.2-SNAPSHOT</axis2.version>
+
+ <!-- Shared source root — avoids duplicating 37 Java files -->
+ <tomcat11.src>${project.basedir}/../springbootdemo-tomcat11</tomcat11.src>
+ <!-- Exploded WAR handed to WildFly; see README.md. -->
+ <deploy.dir>${project.build.directory}/deploy/axis2-json-api</deploy.dir>
+
+ <!--
+ Versions spring-boot-dependencies already manages, overridden here by
+ setting the BOM's own property. Do not replace these with a <version>
+ on the dependency: that pins the direct dependency only and leaves
+ transitive users of the same artifact on the Boot version, which is how
+ log4j-jul 2.25.x previously ended up beside log4j-core 2.24.3.
+ -->
+ <commons-codec.version>1.22.1</commons-codec.version>
+ <commons-lang3.version>3.20.0</commons-lang3.version>
+ <httpclient5.version>5.6.3</httpclient5.version>
+ <httpcore5.version>5.4.3</httpcore5.version>
+ <jakarta-servlet.version>6.1.0</jakarta-servlet.version>
+ <log4j2.version>2.25.4</log4j2.version>
+
+ <!-- Versions Spring Boot does not manage. -->
+ <axiom.version>2.0.0</axiom.version>
+ <commons-collections4.version>4.4</commons-collections4.version>
+ <commons-fileupload2.version>2.0.0-M5</commons-fileupload2.version>
+ <commons-io.version>2.22.0</commons-io.version>
+ <commons-validator.version>1.10.1</commons-validator.version>
+ <esapi.version>2.7.0.0</esapi.version>
+ <jsr311.version>1.1.1</jsr311.version>
+ <neethi.version>3.2.3</neethi.version>
+ <stax2-api.version>4.2.1</stax2-api.version>
+ <woden.version>1.0M10</woden.version>
+ <xmlschema.version>2.3.2</xmlschema.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>com.zaxxer</groupId>
+ <artifactId>HikariCP</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.activation</groupId>
+ <artifactId>jakarta.activation-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.angus</groupId>
+ <artifactId>angus-activation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-runtime</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-xjc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-log4j2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-jul</artifactId>
+ </dependency>
+ <!-- No spring-boot-devtools: WildFly hot-reload works differently -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commons-collections4.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-configuration-processor</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-validation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Servlet API is provided by WildFly (Undertow) -->
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-security</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons-io.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <version>${commons-validator.version}</version>
+ </dependency>
+ <!-- axis2 -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-fileupload2-core</artifactId>
+ <version>${commons-fileupload2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
+ <version>${commons-fileupload2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-kernel</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-http</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <!-- HTTP/2 Transport for Enterprise Big Data Processing -->
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-h2</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <!-- HTTP/2 Dependencies -->
+ <dependency>
+ <groupId>org.apache.httpcomponents.core5</groupId>
+ <artifactId>httpcore5-h2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-local</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-json</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-ant-plugin</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-adb</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-java2wsdl</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-metadata</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-spring</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-jaxws</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-openapi</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.neethi</groupId>
+ <artifactId>neethi</artifactId>
+ <version>${neethi.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>wsdl4j</groupId>
+ <artifactId>wsdl4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.xmlschema</groupId>
+ <artifactId>xmlschema-core</artifactId>
+ <version>${xmlschema.version}</version>
+ </dependency>
+ <!--
+ stax2-api only. The Woodstox implementation comes in transitively with
+ Axiom (com.fasterxml.woodstox:woodstox-core); adding the retired
+ org.codehaus.woodstox:woodstox-core-asl on top of it puts two StAX
+ implementations on the classpath, and which one wins is then decided by
+ ServiceLoader ordering.
+ -->
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>stax2-api</artifactId>
+ <version>${stax2-api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.woden</groupId>
+ <artifactId>woden-core</artifactId>
+ <version>${woden.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-impl</artifactId>
+ <version>${axiom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-dom</artifactId>
+ <version>${axiom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-jakarta-activation</artifactId>
+ <version>${axiom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-legacy-attachments</artifactId>
+ <version>${axiom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-jakarta-jaxb</artifactId>
+ <version>${axiom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ <version>${jsr311.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.owasp.esapi</groupId>
+ <artifactId>esapi</artifactId>
+ <version>${esapi.version}</version>
+ <classifier>jakarta</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents.core5</groupId>
+ <artifactId>httpcore5</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents.client5</groupId>
+ <artifactId>httpclient5</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <!--
+ Share Java source and resources from springbootdemo-tomcat11.
+ No Java files live in this module — it only adds WildFly WEB-INF resources.
+ -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>3.6.0</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals><goal>add-source</goal></goals>
+ <configuration>
+ <sources>
+ <source>${tomcat11.src}/src/main/java</source>
+ </sources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>add-resource</id>
+ <phase>generate-resources</phase>
+ <goals><goal>add-resource</goal></goals>
+ <configuration>
+ <resources>
+ <resource>
+ <directory>${tomcat11.src}/src/main/resources</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!--
+ The openapi module has to reach WEB-INF/modules as openapi-<version>.mar.
+ Resolving it as an artifact rather than copying it out of
+ ${settings.localRepository} keeps it working with a mirror, a
+ non-default repository path, and timestamped remote snapshots.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>3.8.1</version>
+ <executions>
+ <execution>
+ <id>copy-openapi-mar</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-openapi</artifactId>
+ <version>${axis2.version}</version>
+ <type>jar</type>
+ <outputDirectory>${deploy.dir}/WEB-INF/modules</outputDirectory>
+ <destFileName>openapi-${axis2.version}.mar</destFileName>
+ </artifactItem>
+ </artifactItems>
+ <overWriteReleases>true</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!--
+ Each service archive is a jar holding nothing but META-INF/services.xml;
+ the implementation classes are loaded from WEB-INF/classes. The
+ services.xml files live in the shared tomcat11 directory.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>3.1.0</version>
+ <executions>
+ <execution>
+ <id>axis2-repository</id>
+ <phase>prepare-package</phase>
+ <configuration>
+ <target>
+ <jar jarfile="${deploy.dir}/WEB-INF/services/Login.aar">
+ <metainf file="${tomcat11.src}/resources-axis2/login_resources/services.xml"/>
+ </jar>
+ <jar jarfile="${deploy.dir}/WEB-INF/services/testws.aar">
+ <metainf file="${tomcat11.src}/resources-axis2/test_service_resources/services.xml"/>
+ </jar>
+ <jar jarfile="${deploy.dir}/WEB-INF/services/BigDataH2Service.aar">
+ <metainf file="${tomcat11.src}/resources-axis2/bigdata_h2_resources/services.xml"/>
+ </jar>
+ <jar jarfile="${deploy.dir}/WEB-INF/services/FinancialBenchmarkService.aar">
+ <metainf file="${tomcat11.src}/resources-axis2/finbench_resources/services.xml"/>
+ </jar>
+ <copy todir="${deploy.dir}/WEB-INF/conf">
+ <fileset dir="${tomcat11.src}/resources-axis2/conf">
+ <include name="axis2.xml"/>
+ </fileset>
+ </copy>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!--
+ war:exploded writes into ${deploy.dir} during package, merging with the
+ services, conf and modules put there above. It is the only producer of
+ the deployable directory - do not add a step that unpacks the packaged
+ .war on top of it, since at prepare-package that file does not exist yet.
+ src/main/webapp/WEB-INF/ contributes jboss-deployment-structure.xml and
+ jboss-web.xml, picked up automatically from there.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>3.5.1</version>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>${tomcat11.src}/src/main/resources</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/application.properties</include>
+ </includes>
+ <targetPath>WEB-INF/classes</targetPath>
+ <filtering>true</filtering>
+ </resource>
+ </webResources>
+ <webappDirectory>${deploy.dir}</webappDirectory>
+ </configuration>
+ <executions>
+ <execution>
+ <id>exploded</id>
+ <goals>
+ <goal>exploded</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/modules/samples/userguide/src/userguide/springbootdemo/pom.xml b/modules/samples/userguide/src/userguide/springbootdemo/pom.xml
index fade7d9f0e..27fd54036a 100644
--- a/modules/samples/userguide/src/userguide/springbootdemo/pom.xml
+++ b/modules/samples/userguide/src/userguide/springbootdemo/pom.xml
@@ -19,6 +19,14 @@
~ under the License.
-->
+<!--
+ springbootdemo — Spring Boot + Axis2 demo deployed to an external application
+ server (no embedded container). See src/site/xdoc/docs/json-springboot-userguide.xml.
+
+ Build: mvn clean package
+ Output: target/deploy/axis2-json-api.war/ — an exploded WAR directory, named
+ with the .war suffix because WildFly takes the deployment name from it.
+-->
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -33,7 +41,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>3.4.3</version>
+ <version>3.5.16</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
@@ -41,15 +49,45 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>17</java.version>
- <spring-boot.version>3.4.3</spring-boot.version>
- <axis2.version>2.0.1-SNAPSHOT</axis2.version>
+
+ <axis2.version>2.0.2-SNAPSHOT</axis2.version>
+
+ <!-- Exploded WAR handed to the application server; see the header comment. -->
+ <deploy.dir>${project.build.directory}/deploy/axis2-json-api.war</deploy.dir>
+
+ <!--
+ Versions spring-boot-dependencies already manages, overridden here by
+ setting the BOM's own property. Do not replace these with a <version>
+ on the dependency: that pins the direct dependency only and leaves
+ transitive users of the same artifact on the Boot version, which is how
+ log4j-jul 2.25.x previously ended up beside log4j-core 2.24.3.
+ -->
+ <commons-codec.version>1.22.1</commons-codec.version>
+ <commons-lang3.version>3.20.0</commons-lang3.version>
+ <httpclient5.version>5.6.3</httpclient5.version>
+ <httpcore5.version>5.4.3</httpcore5.version>
+ <jakarta-servlet.version>6.1.0</jakarta-servlet.version>
+ <log4j2.version>2.25.4</log4j2.version>
+
+ <!-- Versions Spring Boot does not manage. -->
+ <axiom.version>2.0.0</axiom.version>
+ <commons-collections4.version>4.4</commons-collections4.version>
+ <commons-fileupload2.version>2.0.0-M5</commons-fileupload2.version>
+ <commons-io.version>2.22.0</commons-io.version>
+ <commons-validator.version>1.10.1</commons-validator.version>
+ <esapi.version>2.7.0.0</esapi.version>
+ <jsr311.version>1.1.1</jsr311.version>
+ <neethi.version>3.2.3</neethi.version>
+ <stax2-api.version>4.2.1</stax2-api.version>
+ <woden.version>1.0M10</woden.version>
+ <xmlschema.version>2.3.2</xmlschema.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
- <!-- Required in this userguide for
- org.springframework.dao.DataAccessException
+ <!-- Required in this userguide for
+ org.springframework.dao.DataAccessException
-->
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
@@ -62,32 +100,22 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
- <version>3.18.0</version>
</dependency>
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
- <version>2.1.3</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.angus</groupId>
- <artifactId>angus-activation</artifactId>
- <version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
- <version>4.0.3</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-xjc</artifactId>
- <version>4.0.3</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
- <version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -96,18 +124,17 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
- <version>2.24.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
- <version>4.4</version>
- </dependency>
+ <version>${commons-collections4.version}</version>
+ </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
@@ -118,7 +145,7 @@
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
@@ -135,267 +162,244 @@
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
- <version>6.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
- <version>3.4.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.18.0</version>
+ <version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
- <version>1.15</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
- <version>1.7</version>
+ <version>${commons-validator.version}</version>
</dependency>
<!-- axis2 -->
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-core</artifactId>
- <version>2.0.0-M2</version>
+ <version>${commons-fileupload2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
- <version>2.0.0-M2</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-kernel</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-transport-http</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- </dependency>
- <!-- HTTP/2 Transport for Enterprise Big Data Processing -->
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-transport-h2</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- </dependency>
- <!-- HTTP/2 Dependencies -->
- <dependency>
- <groupId>org.apache.httpcomponents.core5</groupId>
- <artifactId>httpcore5-h2</artifactId>
- <version>5.4.3</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-transport-local</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-json</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- </dependency>
+ <version>${commons-fileupload2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-kernel</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-http</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <!-- HTTP/2 Transport for Enterprise Big Data Processing -->
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-h2</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <!-- HTTP/2 Dependencies -->
+ <dependency>
+ <groupId>org.apache.httpcomponents.core5</groupId>
+ <artifactId>httpcore5-h2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-local</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-json</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-ant-plugin</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-java2wsdl</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-metadata</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-spring</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-jaxws</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-openapi</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.neethi</groupId>
<artifactId>neethi</artifactId>
- <version>3.2.2</version>
+ <version>${neethi.version}</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
- <version>1.6.3</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>woodstox-core-asl</artifactId>
- <version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.ws.xmlschema</groupId>
<artifactId>xmlschema-core</artifactId>
- <version>2.3.0</version>
+ <version>${xmlschema.version}</version>
</dependency>
+ <!--
+ stax2-api only. The Woodstox implementation comes in transitively with
+ Axiom (com.fasterxml.woodstox:woodstox-core); adding the retired
+ org.codehaus.woodstox:woodstox-core-asl on top of it puts two StAX
+ implementations on the classpath, and which one wins is then decided by
+ ServiceLoader ordering.
+ -->
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
- <version>4.2.1</version>
+ <version>${stax2-api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.woden</groupId>
<artifactId>woden-core</artifactId>
- <version>1.0M10</version>
+ <version>${woden.version}</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-impl</artifactId>
- <version>2.0.0</version>
+ <version>${axiom.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-dom</artifactId>
- <version>2.0.0</version>
+ <version>${axiom.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-jakarta-activation</artifactId>
- <version>2.0.0</version>
+ <version>${axiom.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-legacy-attachments</artifactId>
- <version>2.0.0</version>
+ <version>${axiom.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-jakarta-jaxb</artifactId>
- <version>2.0.0</version>
+ <version>${axiom.version}</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
- <version>1.1.1</version>
+ <version>${jsr311.version}</version>
</dependency>
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
- <version>2.6.0.0</version>
+ <version>${esapi.version}</version>
<classifier>jakarta</classifier>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
- <version>5.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
- <version>5.6.3</version>
</dependency>
</dependencies>
+
<build>
<plugins>
+ <!--
+ The openapi module has to reach WEB-INF/modules as openapi-<version>.mar.
+ Resolving it as an artifact rather than copying it out of
+ ${settings.localRepository} keeps it working with a mirror, a
+ non-default repository path, and timestamped remote snapshots.
+ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.1</version>
<executions>
<execution>
- <id>unpack</id>
- <phase>package</phase>
+ <id>copy-openapi-mar</id>
+ <phase>prepare-package</phase>
<goals>
- <goal>unpack</goal>
+ <goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
- <groupId>userguide.springboot</groupId>
- <artifactId>axis2-json-api</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <type>war</type>
- <overWrite>false</overWrite>
- <outputDirectory>${project.build.directory}/deploy/axis2-json-api.war</outputDirectory>
- <includes>**/*.class,**/*.xml</includes>
- <excludes>**/*test.class</excludes>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-openapi</artifactId>
+ <version>${axis2.version}</version>
+ <type>jar</type>
+ <outputDirectory>${deploy.dir}/WEB-INF/modules</outputDirectory>
+ <destFileName>openapi-${axis2.version}.mar</destFileName>
</artifactItem>
</artifactItems>
- <includes>**/*.java</includes>
- <excludes>**/*.properties</excludes>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
+ <!--
+ Each service archive is a jar holding nothing but META-INF/services.xml;
+ the implementation classes are loaded from WEB-INF/classes.
+ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
- <id>install</id>
+ <id>axis2-repository</id>
<phase>prepare-package</phase>
<configuration>
<target>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api.war/WEB-INF/services/Login.aar">
- <metainf file="resources-axis2/login_resources/services.xml"/>
- </jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api.war/WEB-INF/services/testws.aar">
- <metainf file="resources-axis2/test_service_resources/services.xml"/>
- </jar>
- <jar jarfile="${project.build.directory}/deploy/axis2-json-api.war/WEB-INF/services/BigDataH2Service.aar">
- <metainf file="resources-axis2/bigdata_h2_resources/services.xml"/>
- </jar>
- <copy todir="${project.build.directory}/deploy/axis2-json-api.war/WEB-INF/conf">
- <fileset dir="resources-axis2/conf">
- <include name="axis2.xml"/>
- </fileset>
- </copy>
- <!-- Create openapi module archive for WEB-INF/modules -->
- <mkdir dir="${project.build.directory}/deploy/axis2-json-api.war/WEB-INF/modules"/>
- <copy file="${settings.localRepository}/org/apache/axis2/axis2-openapi/${axis2.version}/axis2-openapi-${axis2.version}.jar"
- tofile="${project.build.directory}/deploy/axis2-json-api.war/WEB-INF/modules/openapi-${axis2.version}.mar"
- overwrite="true"/>
- <unzip src="${project.build.directory}/axis2-json-api-0.0.1-SNAPSHOT.war" dest="${project.build.directory}/exploded"/>
- <jar jarfile="${project.build.directory}/exploded/WEB-INF/services/Login.aar">
+ <jar jarfile="${deploy.dir}/WEB-INF/services/Login.aar">
<metainf file="resources-axis2/login_resources/services.xml"/>
</jar>
- <jar jarfile="${project.build.directory}/exploded/WEB-INF/services/testws.aar">
+ <jar jarfile="${deploy.dir}/WEB-INF/services/testws.aar">
<metainf file="resources-axis2/test_service_resources/services.xml"/>
</jar>
- <jar jarfile="${project.build.directory}/exploded/WEB-INF/services/BigDataH2Service.aar">
+ <jar jarfile="${deploy.dir}/WEB-INF/services/BigDataH2Service.aar">
<metainf file="resources-axis2/bigdata_h2_resources/services.xml"/>
</jar>
- <copy todir="${project.build.directory}/exploded/WEB-INF/conf">
+ <copy todir="${deploy.dir}/WEB-INF/conf">
<fileset dir="resources-axis2/conf">
<include name="axis2.xml"/>
</fileset>
</copy>
- <!-- Create openapi module archive for exploded WEB-INF/modules -->
- <mkdir dir="${project.build.directory}/exploded/WEB-INF/modules"/>
- <copy file="${settings.localRepository}/org/apache/axis2/axis2-openapi/${axis2.version}/axis2-openapi-${axis2.version}.jar"
- tofile="${project.build.directory}/exploded/WEB-INF/modules/openapi-${axis2.version}.mar"
- overwrite="true"/>
</target>
</configuration>
<goals>
@@ -404,10 +408,16 @@
</execution>
</executions>
</plugin>
+ <!--
+ war:exploded writes into ${deploy.dir} during package, merging with the
+ services, conf and modules put there above. It is the only producer of
+ the deployable directory - do not add a step that unpacks the packaged
+ .war on top of it, since at prepare-package that file does not exist yet.
+ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
- <version>3.4.0</version>
+ <version>3.5.1</version>
<configuration>
<webResources>
<resource>
@@ -420,11 +430,11 @@
<filtering>true</filtering>
</resource>
</webResources>
- <webappDirectory>${project.build.directory}/deploy/axis2-json-api.war</webappDirectory>
+ <webappDirectory>${deploy.dir}</webappDirectory>
</configuration>
<executions>
<execution>
- <id>enforce-java</id>
+ <id>exploded</id>
<goals>
<goal>exploded</goal>
</goals>