You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2018/02/10 16:03:00 UTC

[maven-release] 12/21: Move adding originalScm to plugin, should not be decided during a pahse

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

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

commit de559729ae4b22f7a6ab29f42ab7e81d6ebe2958
Author: rfscholte <rf...@apache.org>
AuthorDate: Fri Feb 2 15:03:12 2018 +0100

    Move adding originalScm to plugin, should not be decided during a pahse
---
 .../release/config/ReleaseDescriptorBuilder.java   | 18 ++++--------
 .../release/phase/AbstractRewritePomsPhase.java    | 21 -------------
 .../release/phase/RewritePomsForBranchPhase.java   |  5 ----
 .../release/phase/RewritePomsForReleasePhase.java  |  5 ----
 .../AbstractRewritingReleasePhaseTestCase.java     | 10 +++++--
 .../phase/RewritePomsForBranchPhaseTest.java       |  1 +
 .../phase/RewritePomsForDevelopmentPhaseTest.java  |  8 ++++-
 .../it/projects/prepare/MRELEASE-420/verify.groovy |  1 -
 .../plugins/release/AbstractScmReleaseMojo.java    | 32 ++++++++++++++++++++
 .../plugins/release/PrepareReleaseMojoTest.java    | 34 ++++++++++++++++++----
 10 files changed, 81 insertions(+), 54 deletions(-)

diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
index f1a0f98..98b602a 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
@@ -38,29 +38,21 @@ public class ReleaseDescriptorBuilder
      */
     static final class BuilderReleaseDescriptor extends ReleaseDescriptor implements ReleaseDescriptorNew
     {
-        @Override
-        public void putDependencyReleaseVersion( String artifactKey, String version )
-        {
-        }
 
         @Override
-        public void putDependencyDevelopmentVersion( String artifactKey, String version )
+        public void addDependencyReleaseVersion( String artifactKey, String version )
         {
             // TODO Auto-generated method stub
             
         }
 
         @Override
-        public void putProjectReleaseVersion( String projectId, String nextVersion )
+        public void addDependencyDevelopmentVersion( String artifactKey, String version )
         {
-            addReleaseVersion( projectId, nextVersion );
-        }
-
-        @Override
-        public void putProjectDevelopmentVersion( String projectId, String nextVersion )
-        {
-            addDevelopmentVersion( projectId, nextVersion );
+            // TODO Auto-generated method stub
+            
         }
+        
     }
     
     private final BuilderReleaseDescriptor releaseDescriptor;
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 d7414fb..ac6a682 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
@@ -35,7 +35,6 @@ import org.apache.maven.model.Model;
 import org.apache.maven.model.ModelBase;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.Profile;
-import org.apache.maven.model.Scm;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -49,7 +48,6 @@ import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.ReleaseEnvironment;
-import org.apache.maven.shared.release.scm.IdentifiedScm;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
@@ -589,25 +587,6 @@ public abstract class AbstractRewritePomsPhase
         return releaseDescriptor.getDependencyOriginalVersion( artifactVersionlessKey );
     }
 
-    protected Scm buildScm( MavenProject project )
-    {
-        IdentifiedScm scm;
-        if ( project.getOriginalModel().getScm() == null )
-        {
-            scm = null;
-        }
-        else
-        {
-            scm = new IdentifiedScm();
-            scm.setConnection( project.getOriginalModel().getScm().getConnection() );
-            scm.setDeveloperConnection( project.getOriginalModel().getScm().getDeveloperConnection() );
-            scm.setTag( project.getOriginalModel().getScm().getTag() );
-            scm.setUrl( project.getOriginalModel().getScm().getUrl() );
-            scm.setId( project.getProperties().getProperty( "project.scm.id" ) );
-        }
-        return scm;
-    }
-
     /**
      * Determines the relative path from trunk to tag, and adds this relative path
      * to the url.
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 371383e..d58d911 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
@@ -62,9 +62,6 @@ public class RewritePomsForBranchPhase
 
             if ( scmRoot != null )
             {
-                Scm scm = buildScm( project );
-                releaseDescriptor.addOriginalScmInfo( projectId, scm );
-
                 try
                 {
                     translateScm( project, releaseDescriptor, scmRoot, scmRepository, result, commonBasedir );
@@ -76,8 +73,6 @@ public class RewritePomsForBranchPhase
             }
             else
             {
-                releaseDescriptor.addOriginalScmInfo( projectId, null );
-
                 MavenProject parent = project.getParent();
                 if ( parent != 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 d4a7725..bcf2254 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
@@ -60,9 +60,6 @@ public class RewritePomsForReleasePhase
             Scm scmRoot = modelTarget.getScm();
             if ( scmRoot != null )
             {
-                Scm scm = buildScm( project );
-                releaseDescriptor.addOriginalScmInfo( projectId, scm );
-
                 try
                 {
                     translateScm( project, releaseDescriptor, scmRoot, scmRepository, result, commonBasedir );
@@ -74,8 +71,6 @@ public class RewritePomsForReleasePhase
             }
             else
             {
-                releaseDescriptor.addOriginalScmInfo( projectId, null );
-
                 MavenProject parent = project.getParent();
                 if ( parent != null )
                 {
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
index 397a25e..427371c 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
@@ -745,12 +745,18 @@ public abstract class AbstractRewritingReleasePhaseTestCase
 
     protected ReleaseDescriptorBuilder createDescriptorFromProjects( List<MavenProject> reactorProjects )
     {
-        ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+      return createDescriptorFromProjects( new ReleaseDescriptorBuilder(), reactorProjects );
+    }
+    
+    protected ReleaseDescriptorBuilder createDescriptorFromProjects( ReleaseDescriptorBuilder builder, List<MavenProject> reactorProjects )
+    {
         MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
         
         for ( MavenProject project : reactorProjects )
         {
-            builder.putOriginalVersion( project.getGroupId() + ':' + project.getArtifactId(), project.getVersion() );
+            String key = project.getGroupId() + ':' + project.getArtifactId();
+            builder.putOriginalVersion( key, project.getVersion() );
+            builder.addOriginalScmInfo( key, project.getScm() );
         }
         
         if ( rootProject.getScm() == null )
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
index 378509e..6eb74b2 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
@@ -28,6 +28,7 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Objects;
 
+import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.config.ReleaseUtils;
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
index 00ff534..0f3045d 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
@@ -161,7 +161,13 @@ public class RewritePomsForDevelopmentPhaseTest
     {
         List<MavenProject> reactorProjects = prepareReactorProjects( "basic-pom", true );
 
-        ReleaseDescriptorBuilder builder = createDescriptorFromProjects( reactorProjects );
+        ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder() {
+            public ReleaseDescriptorBuilder addOriginalScmInfo(String key, Scm value) {
+                // do nothing
+                return this;
+            };
+        }; 
+        builder = createDescriptorFromProjects( builder, reactorProjects );
 
         mapNextVersion( builder, "groupId:artifactId" );
 
diff --git a/maven-release-plugin/src/it/projects/prepare/MRELEASE-420/verify.groovy b/maven-release-plugin/src/it/projects/prepare/MRELEASE-420/verify.groovy
index bc7b56b..a41f9c3 100644
--- a/maven-release-plugin/src/it/projects/prepare/MRELEASE-420/verify.groovy
+++ b/maven-release-plugin/src/it/projects/prepare/MRELEASE-420/verify.groovy
@@ -22,4 +22,3 @@ File releaseProperties = new File( basedir, 'release.properties' )
 assert releaseProperties.exists()
 
 assert 1 == releaseProperties.getText().count("scm.id=it-server")
-assert 1 == releaseProperties.getText().count("project.scm.org.apache.maven.plugin.release.its\\:mrelease-420.id=it-server")
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
index 5e2f47e..d75064e 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
@@ -21,10 +21,13 @@ package org.apache.maven.plugins.release;
 
 import java.util.Map;
 
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.model.Scm;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 
@@ -154,7 +157,36 @@ public abstract class AbstractScmReleaseMojo
         
         // As long as Scm.getId() does not exist, read it as a property
         descriptor.setScmId( project.getProperties().getProperty( "project.scm.id" ) );
+        
+        for ( MavenProject reactorProject : session.getProjects() )
+        {
+            if ( reactorProject.getScm() != null )
+            {
+                String projectId =
+                    ArtifactUtils.versionlessKey( reactorProject.getGroupId(), reactorProject.getArtifactId() );
+                
+                descriptor.addOriginalScmInfo( projectId, buildScm( project ) );
+            }
+        }
 
         return descriptor;
     }
+    
+    protected Scm buildScm( MavenProject project )
+    {
+        Scm scm;
+        if ( project.getOriginalModel().getScm() == null )
+        {
+            scm = null;
+        }
+        else
+        {
+            scm = new Scm();
+            scm.setConnection( project.getOriginalModel().getScm().getConnection() );
+            scm.setDeveloperConnection( project.getOriginalModel().getScm().getDeveloperConnection() );
+            scm.setTag( project.getOriginalModel().getScm().getTag() );
+            scm.setUrl( project.getOriginalModel().getScm().getUrl() );
+        }
+        return scm;
+    }
 }
diff --git a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
index 61d2fa7..876044b 100644
--- a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
+++ b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
@@ -32,12 +32,15 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 
 import java.io.File;
+import java.util.Collections;
+import java.util.List;
 import java.util.Properties;
 
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleaseManager;
@@ -64,14 +67,21 @@ public class PrepareReleaseMojoTest
         throws Exception
     {
         File testFile = getTestFile( "target/test-classes/mojos/prepare/prepare.xml" );
-        PrepareReleaseMojo mojo = (PrepareReleaseMojo) lookupMojo( "prepare", testFile );
+        final PrepareReleaseMojo mojo = (PrepareReleaseMojo) lookupMojo( "prepare", testFile );
         setDefaults( mojo );
         mojo.setBasedir( testFile.getParentFile() );
         mojo.session = new MavenSession( null, null, null, null, null, null, null, null, null )
         {
-          public Properties getExecutionProperties(){
-              return new Properties();
-          };
+            public Properties getExecutionProperties()
+            {
+                return new Properties();
+            };
+
+            @Override
+            public List<MavenProject> getProjects()
+            {
+                return Collections.singletonList( mojo.project );
+            }
         };
         
         ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
@@ -101,7 +111,7 @@ public class PrepareReleaseMojoTest
         throws Exception
     {
         File testFile = getTestFile( "target/test-classes/mojos/prepare/prepare.xml" );
-        PrepareReleaseMojo mojo = (PrepareReleaseMojo) lookupMojo( "prepare", testFile );
+        final PrepareReleaseMojo mojo = (PrepareReleaseMojo) lookupMojo( "prepare", testFile );
         setDefaults( mojo );
         mojo.setBasedir( testFile.getParentFile() );
         mojo.session = new MavenSession( null, null, null, null, null, null, null, null, null )
@@ -109,6 +119,12 @@ public class PrepareReleaseMojoTest
           public Properties getExecutionProperties(){
               return new Properties();
           };
+
+          @Override
+          public List<MavenProject> getProjects()
+          {
+              return Collections.singletonList( mojo.project );
+          }
         };
 
         ReleaseManager mock = mock( ReleaseManager.class );
@@ -136,7 +152,7 @@ public class PrepareReleaseMojoTest
         throws Exception
     {
         File testFile = getTestFile( "target/test-classes/mojos/prepare/prepare.xml" );
-        PrepareReleaseMojo mojo = (PrepareReleaseMojo) lookupMojo( "prepare", testFile );
+        final PrepareReleaseMojo mojo = (PrepareReleaseMojo) lookupMojo( "prepare", testFile );
         setDefaults( mojo );
         mojo.setBasedir( testFile.getParentFile() );
         mojo.session = new MavenSession( null, null, null, null, null, null, null, null, null )
@@ -144,6 +160,12 @@ public class PrepareReleaseMojoTest
           public Properties getExecutionProperties(){
               return new Properties();
           };
+          
+          @Override
+          public List<MavenProject> getProjects()
+          {
+              return Collections.singletonList( mojo.project );
+          }
         };
         
         ReleaseManager mock = mock( ReleaseManager.class );

-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.