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/08/26 23:19:53 UTC
svn commit: r1377520 - in /maven/release/trunk/maven-release-manager/src:
main/java/org/apache/maven/shared/release/phase/
test/java/org/apache/maven/shared/release/phase/
Author: rfscholte
Date: Sun Aug 26 21:19:53 2012
New Revision: 1377520
URL: http://svn.apache.org/viewvc?rev=1377520&view=rev
Log:
Refactoring for MRELEASE-511: release:prepare "Error parsing version, cannot determine next version: Unable to parse the version string" when running in batch mode.
Modified:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java?rev=1377520&r1=1377519&r2=1377520&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePhase.java Sun Aug 26 21:19:53 2012
@@ -29,6 +29,8 @@ import org.apache.maven.shared.release.e
import org.codehaus.plexus.logging.AbstractLogEnabled;
import java.util.List;
+import java.util.Locale;
+import java.util.ResourceBundle;
/**
* Base class for all phases.
@@ -39,6 +41,11 @@ public abstract class AbstractReleasePha
extends AbstractLogEnabled
implements ReleasePhase
{
+ protected ResourceBundle getResourceBundle( Locale locale )
+ {
+ return ResourceBundle.getBundle( "release-messages", locale, this.getClass().getClassLoader() );
+ }
+
public ReleaseResult clean( List<MavenProject> reactorProjects )
{
// nothing to do by default
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java?rev=1377520&r1=1377519&r2=1377520&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java Sun Aug 26 21:19:53 2012
@@ -21,7 +21,6 @@ package org.apache.maven.shared.release.
import java.text.MessageFormat;
import java.util.List;
-import java.util.Locale;
import java.util.ResourceBundle;
import org.apache.maven.artifact.ArtifactUtils;
@@ -32,20 +31,40 @@ import org.apache.maven.shared.release.c
import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.apache.maven.shared.release.util.ReleaseUtil;
import org.apache.maven.shared.release.versions.DefaultVersionInfo;
-import org.apache.maven.shared.release.versions.VersionInfo;
import org.apache.maven.shared.release.versions.VersionParseException;
import org.codehaus.plexus.components.interactivity.Prompter;
import org.codehaus.plexus.components.interactivity.PrompterException;
/**
* Map projects to their new versions after release / into the next development cycle.
+ *
+ * The map-phases per goal are:
+ * <dl>
+ * <dt>release:prepare</dt><dd>map-release-versions + map-development-versions; RD.isBranchCreation() = false</dd>
+ * <dt>release:branch</dt><dd>map-branch-versions + map-development-versions; RD.isBranchCreation() = true</dd>
+ * <dt>release:update-versions</dt><dd>map-development-versions; RD.isBranchCreation() = false</dd>
+ * </dl>
+ *
+ * <p>
+ * <table>
+ * <tr>
+ * <th>MapVersionsPhase field</th><th>map-release-versions</th><th>map-branch-versions</th><th>map-development-versions</th>
+ * </tr>
+ * <tr>
+ * <td>convertToSnapshot</td> <td>false</td> <td>true</td> <td>true</td>
+ * </tr>
+ * <tr>
+ * <td>convertToBranch</td> <td>false</td> <td>true</td> <td>false</td>
+ * </tr>
+ * </table>
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @author Robert Scholte
*/
public class MapVersionsPhase
extends AbstractReleasePhase
{
- private ResourceBundle resourceBundle = ResourceBundle.getBundle( "release-messages", Locale.ENGLISH, MapVersionsPhase.class.getClassLoader() );
+ private ResourceBundle resourceBundle;
/**
* Whether to convert to a snapshot or a release.
@@ -72,6 +91,8 @@ public class MapVersionsPhase
throws ReleaseExecutionException
{
ReleaseResult result = new ReleaseResult();
+
+ resourceBundle = getResourceBundle( releaseEnvironment.getLocale() );
MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
@@ -82,7 +103,7 @@ public class MapVersionsPhase
String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
- String nextVersion = getNextVersion( project, projectId, releaseDescriptor, result );
+ String nextVersion = resolveNextVersion( project, projectId, releaseDescriptor, result );
if ( convertToSnapshot )
{
@@ -138,7 +159,7 @@ public class MapVersionsPhase
{
String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
- String nextVersion = getNextVersion( project, projectId, releaseDescriptor, result );
+ String nextVersion = resolveNextVersion( project, projectId, releaseDescriptor, result );
if ( convertToSnapshot )
{
@@ -163,197 +184,119 @@ public class MapVersionsPhase
return result;
}
- private String getNextVersion( MavenProject project,
+ private String resolveNextVersion( MavenProject project,
String projectId,
ReleaseDescriptor releaseDescriptor,
ReleaseResult result )
throws ReleaseExecutionException
{
- String nextVersion = null;
-
- VersionInfo currentVersionInfo = null;
- VersionInfo releaseVersionInfo = null;
- boolean releaseVersionIsExplicit = false;
-
- VersionInfo nextSnapshotVersionInfo = null;
- boolean nextSnapshotVersionIsExplicit = false;
-
- try
+ String nextVersion;
+ if ( convertToBranch )
{
- currentVersionInfo = new DefaultVersionInfo( project.getVersion() );
-
- // The release/branch version defaults to currentVersionInfo (snapshot for branch, and release for tag)
- releaseVersionInfo = currentVersionInfo;
-
- // Check if the user specified a release version
- if ( releaseDescriptor.getDefaultReleaseVersion() != null )
+ // no branch modification
+ if( !( releaseDescriptor.isUpdateBranchVersions()
+ && ( ArtifactUtils.isSnapshot( project.getVersion() ) || releaseDescriptor.isUpdateVersionsToSnapshot() ) ) )
{
- releaseVersionInfo = new DefaultVersionInfo( releaseDescriptor.getDefaultReleaseVersion() );
- releaseVersionIsExplicit = true;
+ return project.getVersion();
}
-
- String releaseVersion = ( String ) releaseDescriptor.getReleaseVersions().get( projectId );
- if ( releaseVersion != null )
- {
- releaseVersionInfo = new DefaultVersionInfo( releaseVersion );
- releaseVersionIsExplicit = true;
- }
-
- // The next snapshot version defaults to the next version after the release version
- nextSnapshotVersionInfo = releaseVersionInfo.getNextVersion();
-
- // Check if the user specified a new snapshot version
- if ( releaseDescriptor.getDefaultDevelopmentVersion() != null )
+
+ nextVersion = getReleaseVersion( projectId, releaseDescriptor );
+ }
+ else if ( !convertToSnapshot ) // map-release-version
+ {
+ nextVersion = getReleaseVersion( projectId, releaseDescriptor );
+ }
+ else if ( releaseDescriptor.isBranchCreation() )
+ {
+ // no working copy modification
+ if( !( ArtifactUtils.isSnapshot( project.getVersion() )
+ && releaseDescriptor.isUpdateWorkingCopyVersions() ) )
{
- nextSnapshotVersionInfo = new DefaultVersionInfo( releaseDescriptor.getDefaultDevelopmentVersion() );
- nextSnapshotVersionIsExplicit = true;
+ return project.getVersion();
}
-
- String nextDevVersion = ( String ) releaseDescriptor.getDevelopmentVersions().get( projectId );
- if ( nextDevVersion != null )
+
+ nextVersion = releaseDescriptor.getDefaultDevelopmentVersion();
+ if ( nextVersion == null )
{
- nextSnapshotVersionInfo = new DefaultVersionInfo( nextDevVersion );
- nextSnapshotVersionIsExplicit = true;
+ nextVersion = ( String ) releaseDescriptor.getDevelopmentVersions().get( projectId );
}
-
}
- catch ( VersionParseException e )
+ else
{
- String msg = "Error parsing version, cannot determine next version: " + e.getMessage();
- if ( releaseDescriptor.isInteractive() )
+ // no working copy modification
+ if( !( releaseDescriptor.isUpdateWorkingCopyVersions() ) )
{
- logWarn( result, msg );
- logDebug( result, e.getMessage(), e );
-
- // set defaults for resume in interactive mode
- if ( releaseVersionInfo == null )
- {
- try
- {
- releaseVersionInfo = new DefaultVersionInfo( "1.0" );
- }
- catch ( VersionParseException e1 )
- {
- // if that happens we are in serious trouble!
- throw new ReleaseExecutionException( "Version 1.0 could not be parsed!", e1 );
- }
- }
-
- if ( nextSnapshotVersionInfo == null )
- {
- nextSnapshotVersionInfo = releaseVersionInfo.getNextVersion();
- }
+ return project.getVersion();
}
- else
+
+ nextVersion = releaseDescriptor.getDefaultDevelopmentVersion();
+ if ( nextVersion == null )
{
- // cannot proceed without a next value in batch mode
- throw new ReleaseExecutionException( msg, e );
+ nextVersion = ( String ) releaseDescriptor.getDevelopmentVersions().get( projectId );
}
}
-
+
+ String suggestedVersion = null;
+ String messageKey = null;
try
{
- if ( convertToSnapshot )
+ while( nextVersion == null || ArtifactUtils.isSnapshot( nextVersion ) != convertToSnapshot )
{
- if ( releaseDescriptor.isBranchCreation() )
+ if ( suggestedVersion == null )
{
- if ( convertToBranch )
+ DefaultVersionInfo versionInfo;
+ try
{
- // branch modification
- if ( releaseDescriptor.isUpdateBranchVersions()
- && ( ArtifactUtils.isSnapshot( project.getVersion() ) || releaseDescriptor.isUpdateVersionsToSnapshot() ) )
+ String baseVersion = null;
+ if( convertToSnapshot )
{
- String suggestedVersion = releaseVersionInfo.getSnapshotVersionString();
-
- if ( !releaseVersionIsExplicit && releaseDescriptor.isInteractive() )
- {
- String message =
- MessageFormat.format( resourceBundle.getString( "mapversion.prompt.branch" ),
- project.getName(), projectId );
- nextVersion = prompter.prompt( message, suggestedVersion );
- }
- else
- {
- nextVersion = suggestedVersion;
- }
+ baseVersion = getReleaseVersion( projectId, releaseDescriptor );
}
- else
+ // unspecified and unmapped version, so use project version
+ if( baseVersion == null )
{
- nextVersion = project.getVersion();
+ baseVersion = project.getVersion();
}
-
+ versionInfo = new DefaultVersionInfo( baseVersion );
}
- else
+ catch ( VersionParseException e )
{
- // working copy modification
- if ( ArtifactUtils.isSnapshot( project.getVersion() )
- && releaseDescriptor.isUpdateWorkingCopyVersions() )
+ if( releaseDescriptor.isInteractive() )
{
- String suggestedVersion = nextSnapshotVersionInfo.getSnapshotVersionString();
-
- if ( releaseDescriptor.isInteractive() && !nextSnapshotVersionIsExplicit )
+ try
{
- String message =
- MessageFormat.format( resourceBundle.getString( "mapversion.prompt.workingcopy" ),
- project.getName(), projectId );
- nextVersion = prompter.prompt( message, suggestedVersion );
+ versionInfo = new DefaultVersionInfo( "1.0" );
}
- else
+ catch ( VersionParseException e1 )
{
- nextVersion = suggestedVersion;
+ // if that happens we are in serious trouble!
+ throw new ReleaseExecutionException( "Version 1.0 could not be parsed!", e1 );
}
}
else
{
- nextVersion = project.getVersion();
+ throw new ReleaseExecutionException( "Error parsing version, cannot determine next version: " + e.getMessage(), e );
}
}
+ suggestedVersion =
+ convertToSnapshot ? versionInfo.getNextVersion().getSnapshotVersionString()
+ : versionInfo.getReleaseVersionString();
}
- else
+
+ if( releaseDescriptor.isInteractive() )
{
- if( releaseDescriptor.isUpdateWorkingCopyVersions() )
+ if( messageKey == null )
{
- String suggestedVersion = nextSnapshotVersionInfo.getSnapshotVersionString();
-
- if ( releaseDescriptor.isInteractive() && !nextSnapshotVersionIsExplicit )
- {
- String message =
- MessageFormat.format( resourceBundle.getString( "mapversion.prompt.development" ),
- project.getName(), projectId );
- nextVersion = prompter.prompt( message, suggestedVersion );
- }
- else
- {
- nextVersion = suggestedVersion;
- }
- }
- else
- {
- nextVersion = project.getVersion();
- }
- }
- }
- else
- {
- if ( ArtifactUtils.isSnapshot( project.getVersion() ) )
- {
- String suggestedVersion = releaseVersionInfo.getReleaseVersionString();
-
- if ( releaseDescriptor.isInteractive() && !releaseVersionIsExplicit )
- {
- String message =
- MessageFormat.format( resourceBundle.getString( "mapversion.prompt.release" ),
- project.getName(), projectId );
- nextVersion = prompter.prompt( message, suggestedVersion );
- }
- else
- {
- nextVersion = suggestedVersion;
+ messageKey = getMapversionPromptKey( releaseDescriptor );
}
+ String message =
+ MessageFormat.format( resourceBundle.getString( messageKey ),
+ project.getName(), projectId );
+ nextVersion = prompter.prompt( message, suggestedVersion );
}
else
{
- nextVersion = project.getVersion();
+ nextVersion = suggestedVersion;
}
}
}
@@ -361,9 +304,44 @@ public class MapVersionsPhase
{
throw new ReleaseExecutionException( "Error reading version from input handler: " + e.getMessage(), e );
}
+ return nextVersion;
+ }
+ private String getReleaseVersion( String projectId, ReleaseDescriptor releaseDescriptor )
+ {
+ String nextVersion = releaseDescriptor.getDefaultReleaseVersion();
+ if ( nextVersion == null )
+ {
+ nextVersion = ( String ) releaseDescriptor.getReleaseVersions().get( projectId );
+ }
return nextVersion;
}
+
+
+ private String getMapversionPromptKey( ReleaseDescriptor releaseDescriptor )
+ {
+ String messageKey;
+ if ( convertToBranch )
+ {
+ messageKey = "mapversion.prompt.branch";
+ }
+ else if ( convertToSnapshot )
+ {
+ if ( releaseDescriptor.isBranchCreation() )
+ {
+ messageKey = "mapversion.prompt.workingcopy";
+ }
+ else
+ {
+ messageKey = "mapversion.prompt.development";
+ }
+ }
+ else
+ {
+ messageKey = "mapversion.prompt.release";
+ }
+ return messageKey;
+ }
public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
List<MavenProject> reactorProjects )
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java?rev=1377520&r1=1377519&r2=1377520&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java Sun Aug 26 21:19:53 2012
@@ -1150,7 +1150,10 @@ public class MapVersionsPhaseTest
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "1.2-SNAPSHOT" ),
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "1.3-SNAPSHOT" ),
releaseDescriptor.getReleaseVersions() );
assertNull( "Check development versions", releaseDescriptor.getDevelopmentVersions().get( "groupId:artifactId" ) );
}
@@ -1172,7 +1175,10 @@ public class MapVersionsPhaseTest
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "1.2-SNAPSHOT" ),
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "1.3-SNAPSHOT" ),
releaseDescriptor.getReleaseVersions() );
assertNull( "Check development versions", releaseDescriptor.getDevelopmentVersions().get( "groupId:artifactId" ) );
}
@@ -1279,14 +1285,19 @@ public class MapVersionsPhaseTest
releaseDescriptor.setBranchCreation( true );
releaseDescriptor.setUpdateBranchVersions( true );
- when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
phase.setPrompter( mockPrompter );
// test
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) );
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) );
}
public void testSimulateSnapshotBranchCreation_UpdateBranchVersions_MapBranch()
@@ -1301,14 +1312,19 @@ public class MapVersionsPhaseTest
releaseDescriptor.setBranchCreation( true );
releaseDescriptor.setUpdateBranchVersions( true );
- when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
phase.setPrompter( mockPrompter );
// test
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) );
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) );
}
public void testExecuteReleaseBranchCreation_UpdateBranchVersions_UpdateVersionsToSnapshot_MapBranch()
@@ -1324,15 +1340,19 @@ public class MapVersionsPhaseTest
releaseDescriptor.setUpdateBranchVersions( true );
releaseDescriptor.setUpdateVersionsToSnapshot( true );
- when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) ) ).thenReturn( "2.1-SNAPSHOT" );
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT (yes, one step back!)
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) ) ).thenReturn( "2.1-SNAPSHOT" );
phase.setPrompter( mockPrompter );
// test
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- // @TODO FIX: this should have been 1.3-SNAPSHOT, not a step back
- verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) );
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT (yes, one step back!)
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) );
assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "2.1-SNAPSHOT" ),
releaseDescriptor.getReleaseVersions() );
assertNull( "Check development versions", releaseDescriptor.getDevelopmentVersions().get( "groupId:artifactId" ) );
@@ -1351,15 +1371,19 @@ public class MapVersionsPhaseTest
releaseDescriptor.setUpdateBranchVersions( true );
releaseDescriptor.setUpdateVersionsToSnapshot( true );
- when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) ) ).thenReturn( "2.1-SNAPSHOT" );
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT (yes, one step back!)
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) ) ).thenReturn( "2.1-SNAPSHOT" );
phase.setPrompter( mockPrompter );
// test
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- // @TODO FIX: this should have been 1.3-SNAPSHOT, not a step back
- verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) );
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT (yes, one step back!)
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) );
assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "2.1-SNAPSHOT" ),
releaseDescriptor.getReleaseVersions() );
assertNull( "Check development versions", releaseDescriptor.getDevelopmentVersions().get( "groupId:artifactId" ) );
@@ -1378,14 +1402,19 @@ public class MapVersionsPhaseTest
releaseDescriptor.setUpdateBranchVersions( true );
releaseDescriptor.setUpdateVersionsToSnapshot( true );
- when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
phase.setPrompter( mockPrompter );
// test
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) );
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) );
}
public void testSimulateSnapshotBranchCreation_UpdateBranchVersions_UpdateVersionsToSnapshot_MapBranch()
@@ -1401,14 +1430,19 @@ public class MapVersionsPhaseTest
releaseDescriptor.setUpdateBranchVersions( true );
releaseDescriptor.setUpdateVersionsToSnapshot( true );
- when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
+ // updateBranchVersions is set to true, so suggest the next snapshot version
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ when( mockPrompter.prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) ) ).thenReturn( "2.0-SNAPSHOT" );
phase.setPrompter( mockPrompter );
// test
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.2-SNAPSHOT" ) );
+ // org.apache.maven.release:maven-release-manager:(,2.4) > 1.2-SNAPSHOT
+ // org.apache.maven.release:maven-release-manager:[2.4,) > 1.3-SNAPSHOT
+ verify( mockPrompter ).prompt( startsWith( "What is the branch version for" ), eq( "1.3-SNAPSHOT" ) );
}
public void testExecuteReleaseBranchCreation_MapBranch()
@@ -1511,10 +1545,12 @@ public class MapVersionsPhaseTest
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setBranchCreation( true );
-
- // test
+ // org.apache.maven.release:maven-release-manager:(,2.4) > true
+ // org.apache.maven.release:maven-release-manager:[2.4,) > false
+ releaseDescriptor.setInteractive( false );
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+
// verify
assertNull( "Check release versions", releaseDescriptor.getReleaseVersions().get( "groupId:artifactId" ) );
assertEquals( "Check development versions", Collections.singletonMap( "groupId:artifactId", "1.2" ), releaseDescriptor.getDevelopmentVersions() );
@@ -1530,6 +1566,9 @@ public class MapVersionsPhaseTest
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setBranchCreation( true );
+ // org.apache.maven.release:maven-release-manager:(,2.4) > true
+ // org.apache.maven.release:maven-release-manager:[2.4,) > false
+ releaseDescriptor.setInteractive( false );
// test
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
@@ -1630,16 +1669,14 @@ public class MapVersionsPhaseTest
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setBranchCreation( true );
releaseDescriptor.setUpdateBranchVersions( true );
-
+ // org.apache.maven.release:maven-release-manager:(,2.4) > true
+ // org.apache.maven.release:maven-release-manager:[2.4,) > false
+ releaseDescriptor.setInteractive( false );
+
// test
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- /*
- * "By default, the POM in the new branch keeps the same version as the local working copy, and the local POM is incremented to the next revision."
- * This is true for trunk, but when branching from a tag I would expect the next SNAPSHOT version. For now keep
- * '1.2' instead of '1.3-SNAPSHOT' until further investigation.
- */
assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "1.2" ),
releaseDescriptor.getReleaseVersions() );
assertNull( "Check development versions", releaseDescriptor.getDevelopmentVersions().get( "groupId:artifactId" ) );
@@ -1656,16 +1693,14 @@ public class MapVersionsPhaseTest
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setBranchCreation( true );
releaseDescriptor.setUpdateBranchVersions( true );
-
+ // org.apache.maven.release:maven-release-manager:(,2.4) > true
+ // org.apache.maven.release:maven-release-manager:[2.4,) > false
+ releaseDescriptor.setInteractive( false );
+
// test
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
// verify
- /*
- * "By default, the POM in the new branch keeps the same version as the local working copy, and the local POM is incremented to the next revision."
- * This is true for trunk, but when branching from a tag I would expect the next SNAPSHOT version. For now keep
- * '1.2' instead of '1.3-SNAPSHOT' until further investigation.
- */
assertEquals( "Check release versions", Collections.singletonMap( "groupId:artifactId", "1.2" ),
releaseDescriptor.getReleaseVersions() );
assertNull( "Check development versions", releaseDescriptor.getDevelopmentVersions().get( "groupId:artifactId" ) );