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>