Don't reask resolve questions in case of multimodule projects
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
index 8f90cdf..cc762c9 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
@@ -71,7 +71,7 @@
      */
     @Requirement
     private Prompter prompter;
-
+    
     // Be aware of the difference between usedSnapshots and specifiedSnapshots:
     // UsedSnapshots end up on the classpath.
     // SpecifiedSnapshots are defined anywhere in the pom.
@@ -82,7 +82,12 @@
     private Set<Artifact> usedSnapshotReports = new HashSet<>();
     private Set<Artifact> usedSnapshotExtensions = new HashSet<>();
     private Set<Artifact> usedSnapshotPlugins = new HashSet<>();
+    
+    // Don't prompt for every project in reactor, remember state of questions
+    private String resolveSnapshot;
 
+    private String resolveSnapshotType;
+    
     @Override
     public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
                                   List<MavenProject> reactorProjects )
@@ -355,18 +360,24 @@
     {
         try
         {
-            prompter.showMessage( RESOLVE_SNAPSHOT_MESSAGE );
-            String result =
-                prompter.prompt( RESOLVE_SNAPSHOT_PROMPT, Arrays.asList( "yes", "no" ), "no" );
+            if ( resolveSnapshot == null )
+            {
+                prompter.showMessage( RESOLVE_SNAPSHOT_MESSAGE );
+                resolveSnapshot = prompter.prompt( RESOLVE_SNAPSHOT_PROMPT, Arrays.asList( "yes", "no" ), "no" );
+            }
 
-            if ( result.toLowerCase( Locale.ENGLISH ).startsWith( "y" ) )
+            if ( resolveSnapshot.toLowerCase( Locale.ENGLISH ).startsWith( "y" ) )
             {
                 Map<String, Map<String, String>> resolvedSnapshots = null;
-                prompter.showMessage( RESOLVE_SNAPSHOT_TYPE_MESSAGE );
-                result = prompter.prompt( RESOLVE_SNAPSHOT_TYPE_PROMPT,
-                                          Arrays.asList( "0", "1", "2", "3" ), "1" );
+                
+                if ( resolveSnapshotType == null )
+                {
+                    prompter.showMessage( RESOLVE_SNAPSHOT_TYPE_MESSAGE );
+                    resolveSnapshotType =
+                        prompter.prompt( RESOLVE_SNAPSHOT_TYPE_PROMPT, Arrays.asList( "0", "1", "2", "3" ), "1" );
+                }
 
-                switch ( Integer.parseInt( result.toLowerCase( Locale.ENGLISH ) ) )
+                switch ( Integer.parseInt( resolveSnapshotType.toLowerCase( Locale.ENGLISH ) ) )
                 {
                     // all
                     case 0:
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
index 7781d0a..81466d8 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
@@ -496,18 +496,10 @@
         phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.0", "1.1-SNAPSHOT" ),
                                                new VersionPair( "1.0", "1.0" ) ) );
 
-        try
-        {
-            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
-        }
-        catch ( ReleaseFailureException e )
-        {
-            fail( e.getMessage() );
-        }
-
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ 
         // validate
-        @SuppressWarnings( "rawtypes" )
-        Map versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+        Map<String, String> versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
 
         assertNotNull( versionsMap );
         assertEquals( "1.1-SNAPSHOT", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
@@ -517,14 +509,7 @@
 
         phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.0", "1.1-SNAPSHOT" ) ) );
 
-        try
-        {
-            phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
-        }
-        catch ( ReleaseFailureException e )
-        {
-            fail( e.getMessage() );
-        }
+        phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
     }
 
     @Test
@@ -540,18 +525,10 @@
         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() );
-        }
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         // validate
-        @SuppressWarnings( "rawtypes" )
-        Map versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+        Map<String, String> versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
 
         assertNotNull( versionsMap );
         assertEquals( "1.0-SNAPSHOT", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
@@ -570,18 +547,10 @@
 
         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() );
-        }
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         // validate
-        @SuppressWarnings( "rawtypes" )
-        Map versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+        Map<String, String> versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
 
         assertNotNull( versionsMap );
         assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
@@ -600,18 +569,10 @@
 
         phase.setPrompter( createMockPrompter( YES, "0", new VersionPair( "1.0", "1.0" ) ) );
 
-        try
-        {
-            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
-        }
-        catch ( ReleaseFailureException e )
-        {
-            fail( e.getMessage() );
-        }
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         // validate
-        @SuppressWarnings( "rawtypes" )
-        Map versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+        Map<String, String> versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
 
         assertNotNull( versionsMap );
         assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
@@ -634,18 +595,10 @@
                                                new VersionPair( "1.2", "1.2" ), new VersionPair( "1.3", "1.3" ) ) );
         phase.setPrompter( mockPrompter );
 
-        try
-        {
-            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
-        }
-        catch ( ReleaseFailureException e )
-        {
-            fail( e.getMessage() );
-        }
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         // validate
-        @SuppressWarnings( "rawtypes" )
-        Map versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+        Map<String, String> versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
 
         assertNotNull( versionsMap );
         assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
@@ -670,17 +623,9 @@
             createMockPrompter( "yes", "1", Arrays.asList( pair, pair ), Arrays.asList( defaultPair, defaultPair ) );
         phase.setPrompter( mockPrompter );
 
-        try
-        {
-            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
-        }
-        catch ( ReleaseFailureException e )
-        {
-            fail( e.getMessage() );
-        }
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
-        @SuppressWarnings( "rawtypes" )
-        Map resolvedDependencies = releaseDescriptor.getResolvedSnapshotDependencies();
+        Map<String, Map<String, String>> resolvedDependencies = releaseDescriptor.getResolvedSnapshotDependencies();
 
         assertNotNull( resolvedDependencies );
         assertEquals( 2, resolvedDependencies.size() );
@@ -688,8 +633,7 @@
         assertTrue( resolvedDependencies.containsKey( "external:artifactId" ) );
         assertTrue( resolvedDependencies.containsKey( "external:artifactId2" ) );
 
-        @SuppressWarnings( "rawtypes" )
-        Map versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+        Map<String, String> versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
 
         assertNotNull( versionsMap );
         assertEquals( "1.1-SNAPSHOT", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
@@ -1082,14 +1026,7 @@
                                                     new VersionPair( "1.0", "1.0-test" ) );
         phase.setPrompter( mockPrompter );
 
-        try
-        {
-            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
-        }
-        catch ( ReleaseFailureException e )
-        {
-            fail( e.getMessage() );
-        }
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
 
         // validate
         Map<String, String> versionsMap = releaseDescriptor.getResolvedSnapshotDependencies().get( "groupId:parent-external" );