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