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 );
 


Reply via email to