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 2012/10/05 21:14:24 UTC

svn commit: r1394740 - in /maven/release/trunk: ./ maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/

Author: rfscholte
Date: Fri Oct  5 19:14:24 2012
New Revision: 1394740

URL: http://svn.apache.org/viewvc?rev=1394740&view=rev
Log:
[MRELEASE-787] release:prepare-with-pom fails when suppressCommitBeforeTag is used.
Contributed by John R Fallows
Reviewed by Robert Scholte
Now also includes junit tests

Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhaseTest.java
    maven/release/trunk/pom.xml

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java?rev=1394740&r1=1394739&r2=1394740&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java Fri Oct  5 19:14:24 2012
@@ -19,6 +19,10 @@ package org.apache.maven.shared.release.
  * under the License.
  */
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -33,10 +37,6 @@ import org.apache.maven.shared.release.e
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * Remove release POMs.
  *
@@ -69,8 +69,6 @@ public class RemoveReleasePomsPhase
 
         if ( releaseDescriptor.isGenerateReleasePoms() )
         {
-            logInfo( result, "Removing release POMs..." );
-
             removeReleasePoms( releaseDescriptor, releaseEnvironment, simulate, result, reactorProjects );
         }
         else
@@ -96,7 +94,29 @@ public class RemoveReleasePomsPhase
             releasePoms.add( ReleaseUtil.getReleasePom( project ) );
         }
 
-        removeReleasePomsFromScm( releaseDescriptor, releaseEnvironment, simulate, result, releasePoms );
+        if ( releaseDescriptor.isSuppressCommitBeforeTagOrBranch() )
+        {
+            removeReleasePomsFromFilesystem( simulate, result, releasePoms );
+        }
+        else
+        {
+            removeReleasePomsFromScm( releaseDescriptor, releaseEnvironment, simulate, result, releasePoms );
+        }
+    }
+
+    private void removeReleasePomsFromFilesystem( boolean simulate, ReleaseResult result, List<File> releasePoms )
+    {
+        if ( simulate )
+        {
+            logInfo( result, "Full run would be removing " + releasePoms );
+        }
+        else
+        {
+            for ( File releasePom : releasePoms )
+            {
+                releasePom.delete();
+            }
+        }
     }
 
     private void removeReleasePomsFromScm( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhaseTest.java?rev=1394740&r1=1394739&r2=1394740&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhaseTest.java Fri Oct  5 19:14:24 2012
@@ -26,7 +26,9 @@ import static org.mockito.Mockito.verify
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
@@ -42,9 +44,11 @@ import org.apache.maven.scm.manager.ScmM
 import org.apache.maven.scm.manager.ScmManagerStub;
 import org.apache.maven.scm.provider.ScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
 import org.apache.maven.shared.release.util.ReleaseUtil;
+import org.codehaus.plexus.util.IOUtil;
 
 /**
  * Test the remove release POMs phase.
@@ -146,6 +150,73 @@ public class RemoveReleasePomsPhaseTest
         // never invoke scmProviderMock
         verifyNoMoreInteractions( scmProviderMock );
     }
+    
+    public void testExecuteWithSuppressCommitBeforeTag() throws Exception
+    {
+        // prepare
+        List<MavenProject> reactorProjects = createReactorProjects( "basic-pom" );
+        ReleaseDescriptor config = createReleaseDescriptor();
+        config.setSuppressCommitBeforeTagOrBranch( true );
+        config.setGenerateReleasePoms( true );
+
+        ScmProvider scmProviderMock = mock( ScmProvider.class );
+
+        ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        stub.setScmProvider( scmProviderMock );
+        
+        // execute
+        ReleaseResult result = phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+        
+        BufferedReader reader = null;
+        try 
+        {
+            reader = new BufferedReader( new StringReader( result.getOutput() ) );
+            
+            assertEquals( "[INFO] Removing release POM for 'Unnamed - groupId:artifactId:jar:1.0-SNAPSHOT'..." , reader.readLine() );
+            assertEquals( "Expected EOF",  null, reader.readLine() );
+        }
+        finally
+        {
+            IOUtil.close( reader );
+        }
+
+        // never invoke scmProviderMock
+        verifyNoMoreInteractions( scmProviderMock );
+    }
+
+    public void testSimulateWithSuppressCommitBeforeTag() throws Exception
+    {
+        // prepare
+        List<MavenProject> reactorProjects = createReactorProjects( "basic-pom" );
+        ReleaseDescriptor config = createReleaseDescriptor();
+        config.setSuppressCommitBeforeTagOrBranch( true );
+        config.setGenerateReleasePoms( true );
+
+        ScmProvider scmProviderMock = mock( ScmProvider.class );
+
+        ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        stub.setScmProvider( scmProviderMock );
+
+        // execute
+        ReleaseResult result = phase.simulate( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+        BufferedReader reader = null;
+        try 
+        {
+            reader = new BufferedReader( new StringReader( result.getOutput() ) );
+            
+            assertEquals( "[INFO] Removing release POM for 'Unnamed - groupId:artifactId:jar:1.0-SNAPSHOT'..." , reader.readLine() );
+            assertEquals( "[INFO] Full run would be removing [" + reactorProjects.get( 0 ).getFile().getParent() + File.separator + "release-pom.xml]", reader.readLine() );
+            assertEquals( "Expected EOF",  null, reader.readLine() );
+        }
+        finally
+        {
+            IOUtil.close( reader );
+        }
+
+        // never invoke scmProviderMock
+        verifyNoMoreInteractions( scmProviderMock );
+    }
 
     private List<MavenProject> createReactorProjects( String path )
         throws Exception

Modified: maven/release/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/pom.xml?rev=1394740&r1=1394739&r2=1394740&view=diff
==============================================================================
--- maven/release/trunk/pom.xml (original)
+++ maven/release/trunk/pom.xml Fri Oct  5 19:14:24 2012
@@ -127,6 +127,12 @@
     <system>Jenkins</system>
     <url>https://builds.apache.org/hudson/job/maven-release/</url>
   </ciManagement>
+  
+  <contributors>
+    <contributor>
+      <name>John R Fallows</name>
+    </contributor>
+  </contributors>
 
   <properties>
     <scmVersion>1.8</scmVersion>