Author: evenisse Date: Fri May 18 23:32:41 2007 New Revision: 539695 URL: http://svn.apache.org/viewvc?view=rev&rev=539695 Log: [MRELEASE-224] Don't ask many time if the user want to use the snapshot release plugin.
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java 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?view=diff&rev=539695&r1=539694&r2=539695 ============================================================================== --- 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 Fri May 18 23:32:41 2007 @@ -158,18 +158,28 @@ "maven-release-plugin".equals( artifact.getArtifactId() ) ) { // It's a snapshot of the release plugin. Maybe just testing - ask - // By default, we fail as for any ohter plugin + // By default, we fail as for any other plugin if ( releaseDescriptor.isInteractive() ) { try { - prompter.showMessage( - "This project relies on a SNAPSHOT of the release plugin. This may be necessary during testing." ); - String result = prompter.prompt( "Do you want to continue with the release?", - Arrays.asList( new String[]{"yes", "no"} ), "no" ); + String result = "no"; + if ( !releaseDescriptor.isSnapshotReleasePluginAllowed() ) + { + prompter.showMessage( + "This project relies on a SNAPSHOT of the release plugin. This may be necessary during testing." ); + result = prompter.prompt( "Do you want to continue with the release?", + Arrays.asList( new String[]{"yes", "no"} ), "no" ); + } + else + { + result = "yes"; + } + if ( result.toLowerCase().startsWith( "y" ) ) { addToFailures = false; + releaseDescriptor.setSnapshotReleasePluginAllowed( true ); } } catch ( PrompterException e ) Modified: maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo?view=diff&rev=539695&r1=539694&r2=539695 ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo (original) +++ maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo Fri May 18 23:32:41 2007 @@ -270,6 +270,15 @@ </description> </field> <field> + <name>snapshotReleasePluginAllowed</name> + <version>1.0.0</version> + <type>boolean</type> + <defaultValue>false</defaultValue> + <description> + Whether a SNAPSHOT of the release plugin is allowed. + </description> + </field> + <field> <name>additionalArguments</name> <version>1.0.0</version> <type>String</type> 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?view=diff&rev=539695&r1=539694&r2=539695 ============================================================================== --- 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 Fri May 18 23:32:41 2007 @@ -152,7 +152,7 @@ } } - public void testSnapshotReleasePluginInteractiveAccepted() + public void testSnapshotReleasePluginInteractiveAcceptedForExecution() throws Exception { CheckDependencySnapshotsPhase phase = @@ -168,9 +168,22 @@ phase.execute( releaseDescriptor, null, reactorProjects ); - mockPrompter.reset(); + assertTrue( true ); + } + + public void testSnapshotReleasePluginInteractiveAcceptedForSimulationtion() + throws Exception + { + CheckDependencySnapshotsPhase phase = + (CheckDependencySnapshotsPhase) lookup( ReleasePhase.ROLE, "check-dependency-snapshots" ); + + ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor(); + List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" ); + + Mock mockPrompter = new Mock( Prompter.class ); mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" ).will( new ReturnStub( "yes" ) ); mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" ); + phase.setPrompter( (Prompter) mockPrompter.proxy() ); phase.simulate( releaseDescriptor, null, reactorProjects );