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 6a64874585 Keep sample poms on the released version automatically
6a64874585 is described below

commit 6a648745852b39b17b0e410e3682ec422df20c9b
Author: Robert Lazarski <[email protected]>
AuthorDate: Sun Sep 6 07:42:14 2026 -1000

    Keep sample poms on the released version automatically
    
    swagger-server sat at parent 2.0.1-SNAPSHOT for the whole 2.0.1 cycle and
    shipped that way, because release:prepare only rewrites reactor modules. It 
is a
    reactor module now, which also subjected it to tidy:pom for the first time. 
The
    three Spring Boot userguide samples cannot join the reactor -- they inherit
    spring-boot-starter-parent -- so an antrun execution rewrites their single
    axis2.version property, invoked by id from the release plugin's preparation 
and
    completion goals. It is bound to no phase, so ordinary builds leave the 
checked-in
    poms alone.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
---
 modules/samples/swagger-server/pom.xml | 10 ++++-----
 pom.xml                                | 39 ++++++++++++++++++++++++++++++++++
 src/site/markdown/release-process.md   | 22 +++++++++++++++++--
 3 files changed, 63 insertions(+), 8 deletions(-)

diff --git a/modules/samples/swagger-server/pom.xml 
b/modules/samples/swagger-server/pom.xml
index 0c39e9f1ff..8f92f9f3cc 100644
--- a/modules/samples/swagger-server/pom.xml
+++ b/modules/samples/swagger-server/pom.xml
@@ -18,22 +18,20 @@
   ~ 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
-                             http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+<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>
+        <version>2.0.2-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
     <artifactId>axis2-swagger-server</artifactId>
-    <name>Apache Axis2 - Swagger REST Server Sample</name>
     <packaging>war</packaging>
+
+    <name>Apache Axis2 - Swagger REST Server Sample</name>
     <description>
         Financial data services server using Axis2 REST services with 
OpenAPI/Swagger documentation.
         Demonstrates Axis2 REST capabilities with comprehensive OpenAPI 
integration.
diff --git a/pom.xml b/pom.xml
index 8b3533fabc..7984696492 100644
--- a/pom.xml
+++ b/pom.xml
@@ -393,6 +393,7 @@
         <module>modules/mtompolicy</module>
         <module>modules/mtompolicy-mar</module>
         <module>modules/ping</module>
+        <module>modules/samples/swagger-server</module>
         <module>modules/samples/version</module>
         <!-- SOAPMonitor removed: AXIS2-6105 (Java Applets removed from JDK in 
Java 11) -->
         <module>modules/schema-validation</module>
@@ -1000,6 +1001,14 @@
                     <configuration>
                         <autoVersionSubmodules>true</autoVersionSubmodules>
                         <tagNameFormat>v@{project.version}</tagNameFormat>
+                        <!-- The Spring Boot userguide samples cannot join the 
reactor: they
+                             inherit spring-boot-starter-parent, so 
release:prepare never sees
+                             them and their <axis2.version> would keep 
pointing at a SNAPSHOT
+                             that does not exist once the release is out. 
Running the sync
+                             here means the rewrite lands in the release 
commit and the tag,
+                             next to the versions release:prepare rewrites 
itself. -->
+                        <preparationGoals>clean verify 
antrun:run@sync-userguide-sample-versions</preparationGoals>
+                        
<completionGoals>antrun:run@sync-userguide-sample-versions</completionGoals>
                     </configuration>
                 </plugin>
                 <plugin>
@@ -1344,6 +1353,36 @@
                     <attach>true</attach>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <!-- Deliberately bound to no phase: an ordinary build 
must not
+                             rewrite checked-in sample poms. 
maven-release-plugin invokes
+                             it by id (see preparationGoals above); it can 
also be run by
+                             hand as
+                                 mvn antrun:run@sync-userguide-sample-versions
+                             which is what the release guide tells the RM to 
do when
+                             cutting by hand rather than with release:prepare. 
-->
+                        <id>sync-userguide-sample-versions</id>
+                        <goals>
+                            <goal>run</goal>
+                        </goals>
+                        <configuration>
+                            <target>
+                                <echo message="Setting axis2.version to 
${project.version} in the userguide Spring Boot samples"/>
+                                <replaceregexp
+                                        
match="&lt;axis2\.version&gt;[^&lt;]*&lt;/axis2\.version&gt;"
+                                        
replace="&lt;axis2.version&gt;${project.version}&lt;/axis2.version&gt;"
+                                        byline="true">
+                                    <fileset 
dir="${basedir}/modules/samples/userguide/src/userguide"
+                                             includes="*/pom.xml"/>
+                                </replaceregexp>
+                            </target>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
             <plugin>
                 <groupId>org.codehaus.gmavenplus</groupId>
                 <artifactId>gmavenplus-plugin</artifactId>
diff --git a/src/site/markdown/release-process.md 
b/src/site/markdown/release-process.md
index 96fd7da8fa..685fbb6795 100644
--- a/src/site/markdown/release-process.md
+++ b/src/site/markdown/release-process.md
@@ -122,9 +122,27 @@ You may also execute a dry run of the release process: mvn 
release:prepare -Ddry
     `src/site/markdown/release-notes/` (e.g., `2.0.2.md`). The distribution 
assembly
     references this file and the build will fail without it.
 
-5.  Check that the source distribution is buildable.
+5.  The Spring Boot userguide samples under
+    `modules/samples/userguide/src/userguide/` inherit 
`spring-boot-starter-parent`,
+    so they cannot be reactor modules and `release:prepare` does not rewrite 
their
+    versions. Each declares a single `<axis2.version>` property, and the 
release
+    plugin's `preparationGoals`/`completionGoals` invoke
 
-6.  Check that the source tree is buildable with an empty local Maven 
repository.
+        mvn antrun:run@sync-userguide-sample-versions
+
+    which rewrites that property to the version being built. Nothing to do when
+    releasing with `release:prepare` -- but check the release commit contains 
the
+    rewrite, and run the goal by hand if you are cutting a release any other 
way.
+    Left unsynced, the shipped samples point at a SNAPSHOT that does not exist.
+
+    The same class of problem bites any sample kept out of the reactor:
+    `swagger-server` sat at `2.0.1-SNAPSHOT` through the whole 2.0.1 cycle 
because
+    of it. It is a reactor module now, which is the preferred fix where the 
sample's
+    parent allows it.
+
+6.  Check that the source distribution is buildable.
+
+7.  Check that the source tree is buildable with an empty local Maven 
repository.
 
 If any problems are detected, they should be fixed on the trunk (except for 
issues specific to the
 release branch) and then merged to the release branch.

Reply via email to