You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2022/05/26 21:02:26 UTC

[maven-release] branch MRELEASE-1079 updated: [MRELEASE-1079] add edge case support: root pom inherits scm

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch MRELEASE-1079
in repository https://gitbox.apache.org/repos/asf/maven-release.git


The following commit(s) were added to refs/heads/MRELEASE-1079 by this push:
     new 1c6f2c3f [MRELEASE-1079] add edge case support: root pom inherits scm
1c6f2c3f is described below

commit 1c6f2c3f2564c28fc71b8e236ba3f0c4ea9222b0
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Thu May 26 23:02:23 2022 +0200

    [MRELEASE-1079] add edge case support: root pom inherits scm
---
 .../release/phase/AbstractRewritePomsPhase.java    | 26 ++++++++++++----------
 .../release/phase/RewritePomVersionsPhase.java     |  5 +++--
 .../release/phase/RewritePomsForBranchPhase.java   |  7 +++---
 .../phase/RewritePomsForDevelopmentPhase.java      |  7 +++---
 .../release/phase/RewritePomsForReleasePhase.java  |  7 +++---
 .../phase/RewritePomsForReleasePhaseTest.java      |  4 ++--
 6 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
index 47525a46..00667a83 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
@@ -199,17 +199,18 @@ public abstract class AbstractRewritePomsPhase
     {
         result.setStartTime( ( startTime >= 0 ) ? startTime : System.currentTimeMillis() );
 
+        boolean first = true;
         for ( MavenProject project : reactorProjects )
         {
             logInfo( result, "Transforming '" + project.getName() + "'..." );
 
-            transformProject( project, releaseDescriptor, releaseEnvironment, simulate, result );
+            transformProject( project, first, releaseDescriptor, releaseEnvironment, simulate, result );
+            first = false;
         }
     }
 
-    private void transformProject( MavenProject project, ReleaseDescriptor releaseDescriptor,
-                                   ReleaseEnvironment releaseEnvironment, boolean simulate,
-                                   ReleaseResult result )
+    private void transformProject( MavenProject project, boolean first, ReleaseDescriptor releaseDescriptor,
+                                   ReleaseEnvironment releaseEnvironment, boolean simulate, ReleaseResult result )
             throws ReleaseExecutionException, ReleaseFailureException
     {
         File pomFile = ReleaseUtil.getStandardPom( project );
@@ -244,7 +245,7 @@ public abstract class AbstractRewritePomsPhase
             }
         }
 
-        transformDocument( project, etl.getModel(), releaseDescriptor, scmRepository, result,
+        transformDocument( project, first, etl.getModel(), releaseDescriptor, scmRepository, result,
                 simulate );
 
         File outputFile;
@@ -261,9 +262,9 @@ public abstract class AbstractRewritePomsPhase
 
     }
 
-    private void transformDocument( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
-                                    ScmRepository scmRepository, ReleaseResult result,
-                                    boolean simulate )
+    private void transformDocument( MavenProject project, boolean first, Model modelTarget,
+                                    ReleaseDescriptor releaseDescriptor, ScmRepository scmRepository,
+                                    ReleaseResult result, boolean simulate )
             throws ReleaseExecutionException, ReleaseFailureException
     {
         Model model = project.getModel();
@@ -356,7 +357,7 @@ public abstract class AbstractRewritePomsPhase
             }
         }
 
-        transformScm( project, modelTarget, releaseDescriptor, projectId, scmRepository, result );
+        transformScm( project, first, modelTarget, releaseDescriptor, projectId, scmRepository, result );
 
         if ( properties != null )
         {
@@ -646,6 +647,7 @@ public abstract class AbstractRewritePomsPhase
      * <p>transformScm.</p>
      *
      * @param project           a {@link org.apache.maven.project.MavenProject} object
+     * @param first             is first project in reactor
      * @param modelTarget       a {@link org.apache.maven.model.Model} object
      * @param releaseDescriptor a {@link org.apache.maven.shared.release.config.ReleaseDescriptor} object
      * @param projectId         a {@link java.lang.String} object
@@ -653,9 +655,9 @@ public abstract class AbstractRewritePomsPhase
      * @param result            a {@link org.apache.maven.shared.release.ReleaseResult} object
      * @throws org.apache.maven.shared.release.ReleaseExecutionException if any.
      */
-    protected abstract void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
-                                          String projectId, ScmRepository scmRepository,
-                                          ReleaseResult result )
+    protected abstract void transformScm( MavenProject project, boolean first, Model modelTarget,
+                                          ReleaseDescriptor releaseDescriptor, String projectId,
+                                          ScmRepository scmRepository, ReleaseResult result )
             throws ReleaseExecutionException;
 
     /**
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
index d95ee1ad..571a9151 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
@@ -59,8 +59,9 @@ public class RewritePomVersionsPhase
     }
 
     @Override
-    protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
-                                 String projectId, ScmRepository scmRepository, ReleaseResult result )
+    protected void transformScm( MavenProject project, boolean first, Model modelTarget,
+                                 ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
+                                 ReleaseResult result )
     {
         // We are only updating versions no mods to scm needed
     }
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
index 20893f72..313fa0bf 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
@@ -68,9 +68,10 @@ public class RewritePomsForBranchPhase
     }
 
     @Override
-    protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
-                                 String projectId, ScmRepository scmRepository, ReleaseResult result )
-            throws ReleaseExecutionException
+    protected void transformScm( MavenProject project, boolean first, Model modelTarget,
+                                 ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
+                                 ReleaseResult result )
+        throws ReleaseExecutionException
     {
         // If SCM is null in original model, it is inherited, no mods needed
         if ( project.getScm() != null )
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
index b9914c72..e12e7eb9 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
@@ -61,11 +61,12 @@ public class RewritePomsForDevelopmentPhase
     }
 
     @Override
-    protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
-                                 String projectId, ScmRepository scmRepository, ReleaseResult result )
+    protected void transformScm( MavenProject project, boolean first, Model modelTarget,
+                                 ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
+                                 ReleaseResult result )
     {
         // If SCM is null in original model, it is inherited, no mods needed
-        if ( project.getScm() != null )
+        if ( project.getOriginalModel().getScm() != null || ( first && project.getScm() != null ) )
         {
             Scm scmRoot = modelTarget.getScm();
             if ( scmRoot != null )
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
index 4c1f46de..c4c6a5d3 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
@@ -68,12 +68,13 @@ public class RewritePomsForReleasePhase
     }
 
     @Override
-    protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
-                                 String projectId, ScmRepository scmRepository, ReleaseResult result )
+    protected void transformScm( MavenProject project, boolean first, Model modelTarget,
+                                 ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
+                                 ReleaseResult result )
             throws ReleaseExecutionException
     {
         // If SCM is null in original model, it is inherited, no mods needed
-        if ( project.getOriginalModel().getScm() != null )
+        if ( project.getOriginalModel().getScm() != null || ( first && project.getScm() != null ) )
         {
             Scm scmRoot = modelTarget.getScm();
             if ( scmRoot != null )
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
index dfebf3ce..f221f4ef 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
@@ -333,7 +333,7 @@ public class RewritePomsForReleasePhaseTest
         }
     }
 
-    //@Test TODO fix
+    @Test
     public void testRewriteBasicPomWithInheritedScm()
         throws Exception
     {
@@ -449,7 +449,7 @@ public class RewritePomsForReleasePhaseTest
         return builder;
     }
 
-    //@Test TODO fix
+    @Test
     public void testRewritePomWithExternallyReleasedParent()
         throws Exception
     {