You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2010/09/28 17:32:04 UTC
svn commit: r1002219 - in /maven/release/trunk: ./ maven-release-manager/
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: brett
Date: Tue Sep 28 15:32:04 2010
New Revision: 1002219
URL: http://svn.apache.org/viewvc?rev=1002219&view=rev
Log:
[MRELEASE-583] make the interactive snapshot resolution more configurable, and use more sensible defaults (pin to release by default). Updated tests to use Mockito instead, and as a result set the requirement to Java 5.
Modified:
maven/release/trunk/maven-release-manager/pom.xml
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
maven/release/trunk/pom.xml
Modified: maven/release/trunk/maven-release-manager/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/pom.xml?rev=1002219&r1=1002218&r2=1002219&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/pom.xml (original)
+++ maven/release/trunk/maven-release-manager/pom.xml Tue Sep 28 15:32:04 2010
@@ -197,6 +197,12 @@
<version>1.0.1</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.8.3</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java?rev=1002219&r1=1002218&r2=1002219&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java Tue Sep 28 15:32:04 2010
@@ -57,7 +57,7 @@ import java.util.Set;
public class CheckDependencySnapshotsPhase
extends AbstractReleasePhase
{
- public static final String RESOLVE_SNAPSHOT_MESSAGE = "There are still some remaining snapshot dependencies.";
+ public static final String RESOLVE_SNAPSHOT_MESSAGE = "There are still some remaining snapshot dependencies.\n";
public static final String RESOLVE_SNAPSHOT_PROMPT = "Do you want to resolve them now?";
@@ -66,17 +66,6 @@ public class CheckDependencySnapshotsPha
public static final String RESOLVE_SNAPSHOT_TYPE_PROMPT =
"specify the selection number ( 0:All 1:Project Dependencies 2:Plugins 3:Reports 4:Extensions ):";
- public static final String RESOLVE_ALL_SNAPSHOT_MESSAGE = "Resolve All Snapshots.";
-
- public static final String RESOLVE_ALL_PROJECT_DEPENDENCIES_SNAPSHOT_MESSAGE =
- "Resolve Project Dependency Snapshots.";
-
- public static final String RESOLVE_ALL_REPORTS_SNAPSHOT_MESSAGE = "Resolve Report Dependency Snapshots.";
-
- public static final String RESOLVE_ALL_EXTENSIONS_SNAPSHOT_MESSAGE = "Resolve Extension Dependency Snapshots.";
-
- public static final String RESOLVE_ALL_PLUGIN_SNAPSHOT_MESSAGE = "Resolve Plugin Dependency Snapshots.";
-
/**
* Component used to prompt for input.
*
@@ -172,11 +161,11 @@ public class CheckDependencySnapshotsPha
{
try
{
- String result = "no";
+ String result;
if ( !releaseDescriptor.isSnapshotReleasePluginAllowed() )
{
- prompter.showMessage(
- "This project relies on a SNAPSHOT of the release plugin. This may be necessary during testing." );
+ prompter.showMessage( "This project relies on a SNAPSHOT of the release plugin. " +
+ "This may be necessary during testing.\n" );
result = prompter.prompt( "Do you want to continue with the release?",
Arrays.asList( new String[]{"yes", "no"} ), "no" );
}
@@ -348,7 +337,6 @@ public class CheckDependencySnapshotsPha
{
// all
case 0:
- prompter.showMessage( RESOLVE_ALL_SNAPSHOT_MESSAGE );
snapshotSet.addAll( projectDependencies );
snapshotSet.addAll( reportDependencies );
snapshotSet.addAll( extensionDependencies );
@@ -358,25 +346,21 @@ public class CheckDependencySnapshotsPha
// project dependencies
case 1:
- prompter.showMessage( RESOLVE_ALL_PROJECT_DEPENDENCIES_SNAPSHOT_MESSAGE );
resolvedSnapshots = processSnapshot( projectDependencies );
break;
// plugins
case 2:
- prompter.showMessage( RESOLVE_ALL_PLUGIN_SNAPSHOT_MESSAGE );
resolvedSnapshots = processSnapshot( pluginDependencies );
break;
// reports
case 3:
- prompter.showMessage( RESOLVE_ALL_REPORTS_SNAPSHOT_MESSAGE );
resolvedSnapshots = processSnapshot( reportDependencies );
break;
// extensions
case 4:
- prompter.showMessage( RESOLVE_ALL_EXTENSIONS_SNAPSHOT_MESSAGE );
resolvedSnapshots = processSnapshot( extensionDependencies );
break;
}
@@ -405,38 +389,36 @@ public class CheckDependencySnapshotsPha
Artifact currentArtifact = (Artifact) iterator.next();
String versionlessKey = ArtifactUtils.versionlessKey( currentArtifact );
- String result = prompter.prompt( "'" + versionlessKey + "' set to release?",
- Arrays.asList( new String[] { "yes", "no" } ), "yes" );
+ Map versionMap = new HashMap();
+ VersionInfo versionInfo = new DefaultVersionInfo( currentArtifact.getVersion() );
+ versionMap.put( ReleaseDescriptor.ORIGINAL_VERSION, versionInfo.toString() );
+
+ prompter.showMessage(
+ "Dependency '" + versionlessKey + "' is a snapshot (" + currentArtifact.getVersion() + ")\n" );
+ String result = prompter.prompt( "Which release version should it be set to?",
+ versionInfo.getReleaseVersionString() );
+ versionMap.put( ReleaseDescriptor.RELEASE_KEY, result );
+
+ iterator.remove();
+
+ // by default, keep the same version for the dependency after release, unless it was previously newer
+ // th euser may opt to type in something different
+ VersionInfo nextVersionInfo = new DefaultVersionInfo( result );
- if ( result.toLowerCase( Locale.ENGLISH ).startsWith( "y" ) )
+ String nextVersion;
+ if ( nextVersionInfo.compareTo( versionInfo ) > 0 )
{
- iterator.remove();
-
- VersionInfo versionInfo = new DefaultVersionInfo( currentArtifact.getVersion() );
- VersionInfo nextVersionInfo = versionInfo.getNextVersion();
-
- String nextVersion;
- if ( nextVersionInfo != null )
- {
- nextVersion = nextVersionInfo.getSnapshotVersionString();
- }
- else
- {
- nextVersion = "1.0-SNAPSHOT";
- }
-
- result = prompter.prompt( "What is the next development version?",
- Collections.singletonList( nextVersion ), nextVersion );
-
- VersionInfo nextDevelopmentVersion = new DefaultVersionInfo( result );
+ nextVersion = nextVersionInfo.toString();
+ }
+ else
+ {
+ nextVersion = versionInfo.toString();
+ }
- Map versionMap = new HashMap();
- versionMap.put( ReleaseDescriptor.ORIGINAL_VERSION, versionInfo.toString() );
- versionMap.put( ReleaseDescriptor.DEVELOPMENT_KEY, nextDevelopmentVersion.getSnapshotVersionString() );
- versionMap.put( ReleaseDescriptor.RELEASE_KEY, versionInfo.getReleaseVersionString() );
+ result = prompter.prompt( "What version should the dependency be reset to for development?", nextVersion );
+ versionMap.put( ReleaseDescriptor.DEVELOPMENT_KEY, result );
- resolvedSnapshots.put( versionlessKey, versionMap );
- }
+ resolvedSnapshots.put( versionlessKey, versionMap );
}
return resolvedSnapshots;
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java?rev=1002219&r1=1002218&r2=1002219&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java Tue Sep 28 15:32:04 2010
@@ -25,14 +25,9 @@ import org.apache.maven.shared.release.c
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
import org.codehaus.plexus.components.interactivity.Prompter;
import org.codehaus.plexus.components.interactivity.PrompterException;
-import org.jmock.Mock;
-import org.jmock.core.Stub;
-import org.jmock.core.matcher.InvokeAtLeastOnceMatcher;
-import org.jmock.core.matcher.InvokeOnceMatcher;
-import org.jmock.core.stub.ReturnStub;
-import org.jmock.core.stub.StubSequence;
-import org.jmock.core.stub.ThrowStub;
+import static org.mockito.Mockito.*;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -44,6 +39,16 @@ import java.util.Map;
public class CheckDependencySnapshotsPhaseTest
extends AbstractReleaseTestCase
{
+ private static final String NO = "no";
+
+ private static final String YES = "yes";
+
+ private static final List YES_NO_ARRAY = Arrays.asList( YES, NO );
+
+ private static final String DEFAULT_CHOICE = "1";
+
+ private static final List<String> CHOICE_ARRAY = Arrays.asList( "0", DEFAULT_CHOICE, "2", "3" );
+
protected void setUp()
throws Exception
{
@@ -75,13 +80,11 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "no-snapshot-range-dependencies" );
- Mock mockPrompter = createMockPrompter( "yes", "1", "yes", "1.2-SNAPSHOT" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.1", "1.2-SNAPSHOT" ) ) );
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
- mockPrompter = createMockPrompter( "yes", "1", "yes", "1.2-SNAPSHOT" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.1", "1.2-SNAPSHOT" ) ) );
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
@@ -142,8 +145,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
- Mock mockPrompter = createMockPrompter( "no", "no" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompterWithSnapshotReleasePlugin( NO, NO ) );
try
{
@@ -156,8 +158,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- mockPrompter = createMockPrompter( "no", "no" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompterWithSnapshotReleasePlugin( NO, NO ) );
try
{
@@ -180,8 +181,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
- Mock mockPrompter = createYesMockPrompter();
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createYesMockPrompter() );
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
@@ -197,8 +197,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
- Mock mockPrompter = createYesMockPrompter();
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createYesMockPrompter() );
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
@@ -214,8 +213,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
- Mock mockPrompter = createMockPrompter( "donkey", "no" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompterWithSnapshotReleasePlugin( "donkey", NO ) );
try
{
@@ -228,8 +226,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- mockPrompter = createMockPrompter( "donkey", "no" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompterWithSnapshotReleasePlugin( "donkey", NO ) );
try
{
@@ -252,11 +249,10 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" ).will(
- new ThrowStub( new PrompterException( "..." ) ) );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ when( mockPrompter.prompt( anyString(), eq( YES_NO_ARRAY ), eq( NO ) ) ).thenThrow( new PrompterException(
+ "..." ) );
+ phase.setPrompter( mockPrompter );
try
{
@@ -269,10 +265,9 @@ public class CheckDependencySnapshotsPha
assertEquals( "Check cause", PrompterException.class, e.getCause().getClass() );
}
- mockPrompter.reset();
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" ).will(
- new ThrowStub( new PrompterException( "..." ) ) );
+ mockPrompter = mock( Prompter.class );
+ when( mockPrompter.prompt( anyString(), eq( YES_NO_ARRAY ), eq( NO ) ) ).thenThrow( new PrompterException(
+ "..." ) );
try
{
@@ -295,8 +290,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "internal-differing-snapshot-dependencies" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -309,8 +303,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -468,8 +461,8 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-snapshot-dependencies" );
- Mock mockPrompter = createMockPrompter( "yes", "1", "yes", "1.1-SNAPSHOT" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.0", "1.1-SNAPSHOT" ),
+ new VersionPair( "1.0", "1.0" ) ) );
try
{
@@ -489,8 +482,7 @@ public class CheckDependencySnapshotsPha
releaseDescriptor = new ReleaseDescriptor();
- mockPrompter = createMockPrompter( "yes", "1", "yes", "1.1-SNAPSHOT" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.0", "1.1-SNAPSHOT" ) ) );
try
{
@@ -502,6 +494,63 @@ public class CheckDependencySnapshotsPha
}
}
+ public void testSnapshotDependenciesSelectOlderRelease()
+ throws Exception
+ {
+ CheckDependencySnapshotsPhase phase =
+ (CheckDependencySnapshotsPhase) lookup( ReleasePhase.ROLE, "check-dependency-snapshots" );
+
+ ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ List reactorProjects = createDescriptorFromProjects( "external-snapshot-dependencies" );
+
+ phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "0.9", "1.0-SNAPSHOT" ),
+ new VersionPair( "1.0", "1.0-SNAPSHOT" ) ) );
+
+ try
+ {
+ phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ }
+ catch ( ReleaseFailureException e )
+ {
+ fail( e.getMessage() );
+ }
+
+ // validate
+ Map versionsMap = (Map) releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+
+ assertNotNull( versionsMap );
+ assertEquals( "1.0-SNAPSHOT", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
+ assertEquals( "0.9", versionsMap.get( ReleaseDescriptor.RELEASE_KEY ) );
+ }
+
+ public void testSnapshotDependenciesSelectDefaults()
+ throws Exception
+ {
+ CheckDependencySnapshotsPhase phase =
+ (CheckDependencySnapshotsPhase) lookup( ReleasePhase.ROLE, "check-dependency-snapshots" );
+
+ ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ List reactorProjects = createDescriptorFromProjects( "external-snapshot-dependencies" );
+
+ phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.0", "1.0" ) ) );
+
+ try
+ {
+ phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ }
+ catch ( ReleaseFailureException e )
+ {
+ fail( e.getMessage() );
+ }
+
+ // validate
+ Map versionsMap = (Map) releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+
+ assertNotNull( versionsMap );
+ assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
+ assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.RELEASE_KEY ) );
+ }
+
public void testSnapshotDependenciesInsideAndOutsideProject()
throws Exception
{
@@ -511,8 +560,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "internal-and-external-snapshot-dependencies" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -525,8 +573,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -577,8 +624,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-snapshot-report-plugins" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -591,8 +637,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -615,8 +660,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "internal-and-external-snapshot-report-plugins" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -629,8 +673,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -723,8 +766,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-managed-snapshot-plugin" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -737,8 +779,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -761,8 +802,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-snapshot-plugins" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -775,8 +815,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -799,8 +838,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "internal-and-external-snapshot-plugins" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -813,8 +851,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -837,8 +874,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-snapshot-parent/child" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -851,8 +887,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -889,8 +924,7 @@ public class CheckDependencySnapshotsPha
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-snapshot-extension" );
- Mock noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -903,8 +937,7 @@ public class CheckDependencySnapshotsPha
assertTrue( true );
}
- noPrompter = createNoMockPrompter();
- phase.setPrompter( (Prompter) noPrompter.proxy() );
+ phase.setPrompter( createNoMockPrompter() );
try
{
@@ -983,72 +1016,77 @@ public class CheckDependencySnapshotsPha
return createReactorProjects( "check-dependencies/", path );
}
- private Mock createNoMockPrompter()
+ private Prompter createNoMockPrompter()
+ throws PrompterException
{
return createYesNoMockPrompter( false );
}
- private Mock createYesMockPrompter()
+ private Prompter createYesMockPrompter()
+ throws PrompterException
{
return createYesNoMockPrompter( true );
}
- private Mock createYesNoMockPrompter( boolean yes )
+ private Prompter createYesNoMockPrompter( boolean yes )
+ throws PrompterException
{
- Mock mockPrompter = new Mock( Prompter.class );
+ Prompter mockPrompter = mock( Prompter.class );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" ).will(
- new ReturnStub( ( yes ) ? "yes" : "no" ) );
+ when( mockPrompter.prompt( anyString(), eq( YES_NO_ARRAY ), eq( NO ) ) ).thenReturn( yes ? YES : NO );
return mockPrompter;
}
- private Mock createMockPrompter( String response1, String response2 )
+ private Prompter createMockPrompterWithSnapshotReleasePlugin( String useSnapshotReleasePlugin,
+ String resolveSnapshots )
+ throws PrompterException
{
- return createMockPrompter( new String[] { response1, response2 } );
- }
+ Prompter mockPrompter = mock( Prompter.class );
- private Mock createMockPrompter( String response1, String response2, String response3 )
- {
- return createMockPrompter( new String[] { response1, response2, response3 } );
+ when( mockPrompter.prompt( anyString(), eq( YES_NO_ARRAY ), eq( NO ) ) ).thenReturn( useSnapshotReleasePlugin );
+ when( mockPrompter.prompt( anyString(), eq( YES_NO_ARRAY ), eq( NO ) ) ).thenReturn( resolveSnapshots );
+
+ return mockPrompter;
}
- private Mock createMockPrompter( String response1, String response2, String response3, String response4 )
+ private Prompter createMockPrompter( String resolveSnapshots, String resolutionType, VersionPair resolvedVersions )
+ throws PrompterException
{
- return createMockPrompter( new String[] { response1, response2, response3, response4 } );
+ VersionPair defaultVersions = new VersionPair( resolvedVersions.releaseVersion,
+ resolvedVersions.developmentVersion );
+
+ return createMockPrompter( resolveSnapshots, resolutionType, resolvedVersions, defaultVersions );
}
- private Mock createMockPrompter( String[] responses )
+ private Prompter createMockPrompter( String resolveSnapshots, String resolutionType, VersionPair resolvedVersions,
+ VersionPair defaultVersions )
+ throws PrompterException
{
- Mock mockPrompter = new Mock( Prompter.class );
+ Prompter mockPrompter = mock( Prompter.class );
- expectsShowMessages( mockPrompter );
- expectsPrompts( mockPrompter, responses );
+ when( mockPrompter.prompt( anyString(), eq( YES_NO_ARRAY ), eq( NO ) ) ).thenReturn( resolveSnapshots );
+ when( mockPrompter.prompt( anyString(), eq( CHOICE_ARRAY ), eq( DEFAULT_CHOICE ) ) ).thenReturn(
+ resolutionType );
+ when( mockPrompter.prompt( "Which release version should it be set to?",
+ defaultVersions.releaseVersion ) ).thenReturn( resolvedVersions.releaseVersion );
+ when( mockPrompter.prompt( "What version should the dependency be reset to for development?",
+ defaultVersions.developmentVersion ) ).thenReturn(
+ resolvedVersions.developmentVersion );
return mockPrompter;
}
- private void expectsShowMessages( Mock mockPrompter )
- {
- mockPrompter.expects( new InvokeAtLeastOnceMatcher() ).method( "showMessage" );
- }
-
- private void expectsPrompts( Mock mockPrompter, String[] responses )
+ private static class VersionPair
{
- expects( mockPrompter, "prompt", responses );
- }
+ String releaseVersion;
- private void expects( Mock mock, String methodName, String[] results )
- {
- Stub[] stubs = new Stub[results.length];
+ String developmentVersion;
- for ( int i = 0; i < results.length; i++ )
+ public VersionPair( String releaseVersion, String developmentVersion )
{
- stubs[i] = new ReturnStub( results[i] );
-
+ this.releaseVersion = releaseVersion;
+ this.developmentVersion = developmentVersion;
}
-
- mock.expects( new InvokeAtLeastOnceMatcher() ).method( methodName ).will( new StubSequence( stubs ) );
}
}
Modified: maven/release/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/pom.xml?rev=1002219&r1=1002218&r2=1002219&view=diff
==============================================================================
--- maven/release/trunk/pom.xml (original)
+++ maven/release/trunk/pom.xml Tue Sep 28 15:32:04 2010
@@ -154,4 +154,18 @@
</dependencies>
</dependencyManagement>
+ <build>
+ <plugins>
+ <!-- Use JDK 5 by default -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>