You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2018/02/10 16:03:02 UTC

[maven-release] 14/21: Add resolvedSnapshots to release descriptor early

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch MRELEASE-998
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit 3c08db1049ce702bb5ed7f68841266eaee19eb3c
Author: rfscholte <rf...@apache.org>
AuthorDate: Fri Feb 9 13:33:30 2018 +0100

    Add resolvedSnapshots to release descriptor early
---
 .../phase/CheckDependencySnapshotsPhase.java       | 60 +++++++++++-----------
 1 file changed, 29 insertions(+), 31 deletions(-)

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 913a13f..223602d 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
@@ -22,7 +22,6 @@ package org.apache.maven.shared.release.phase;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -79,10 +78,6 @@ public class CheckDependencySnapshotsPhase
     // We'll probably need to introduce specifiedSnapshots as well.
     // @TODO MRELEASE-378: verify custom dependencies in plugins. Be aware of deprecated/removed Components in M3, such as PluginCollector
     // @TODO MRELEASE-763: verify all dependencies in inactive profiles
-    private Set<Artifact> usedSnapshotDependencies = new HashSet<>();
-    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;
@@ -118,6 +113,8 @@ public class CheckDependencySnapshotsPhase
         throws ReleaseFailureException, ReleaseExecutionException
     {
         Map<String, Artifact> artifactMap = ArtifactUtils.artifactMapByVersionlessId( project.getArtifacts() );
+        
+        Set<Artifact> usedSnapshotDependencies = new HashSet<>();
 
         if ( project.getParentArtifact() != null )
         {
@@ -128,20 +125,20 @@ public class CheckDependencySnapshotsPhase
         }
 
         Set<Artifact> dependencyArtifacts = project.getArtifacts();
-        checkDependencies( releaseDescriptor, artifactMap, dependencyArtifacts );
+        usedSnapshotDependencies.addAll( checkDependencies( releaseDescriptor, artifactMap, dependencyArtifacts ) );
 
         //@todo check dependencyManagement
 
         Set<Artifact> pluginArtifacts = project.getPluginArtifacts();
-        checkPlugins( releaseDescriptor, artifactMap, pluginArtifacts );
+        Set<Artifact> usedSnapshotPlugins = checkPlugins( releaseDescriptor, artifactMap, pluginArtifacts );
 
         //@todo check pluginManagement
 
         Set<Artifact> reportArtifacts = project.getReportArtifacts();
-        checkReports( releaseDescriptor, artifactMap, reportArtifacts );
+        Set<Artifact> usedSnapshotReports = checkReports( releaseDescriptor, artifactMap, reportArtifacts );
 
         Set<Artifact> extensionArtifacts = project.getExtensionArtifacts();
-        checkExtensions( releaseDescriptor, artifactMap, extensionArtifacts );
+        Set<Artifact> usedSnapshotExtensions = checkExtensions( releaseDescriptor, artifactMap, extensionArtifacts );
 
         //@todo check profiles
 
@@ -171,10 +168,11 @@ public class CheckDependencySnapshotsPhase
         }
     }
 
-    private void checkPlugins( ReleaseDescriptor releaseDescriptor,
+    private Set<Artifact> checkPlugins( ReleaseDescriptor releaseDescriptor,
                                Map<String, Artifact> artifactMap, Set<Artifact> pluginArtifacts )
         throws ReleaseExecutionException
     {
+        Set<Artifact> usedSnapshotPlugins = new HashSet<>();
         for ( Artifact artifact : pluginArtifacts )
         {
             if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
@@ -238,12 +236,14 @@ public class CheckDependencySnapshotsPhase
                 }
             }
         }
+        return usedSnapshotPlugins;
     }
 
-    private void checkDependencies( ReleaseDescriptor releaseDescriptor,
+    private Set<Artifact> checkDependencies( ReleaseDescriptor releaseDescriptor,
                                     Map<String, Artifact> artifactMap, 
                                     Set<Artifact> dependencyArtifacts )
     {
+        Set<Artifact> usedSnapshotDependencies = new HashSet<>();
         for ( Artifact artifact : dependencyArtifacts )
         {
             if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
@@ -251,11 +251,13 @@ public class CheckDependencySnapshotsPhase
                 usedSnapshotDependencies.add( getArtifactFromMap( artifact, artifactMap ) );
             }
         }
+        return usedSnapshotDependencies;
     }
 
-    private void checkReports( ReleaseDescriptor releaseDescriptor,
+    private Set<Artifact> checkReports( ReleaseDescriptor releaseDescriptor,
                                Map<String, Artifact> artifactMap, Set<Artifact> reportArtifacts )
     {
+        Set<Artifact> usedSnapshotReports = new HashSet<>();
         for ( Artifact artifact : reportArtifacts )
         {
             if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
@@ -264,11 +266,13 @@ public class CheckDependencySnapshotsPhase
                 usedSnapshotReports.add( artifact );
             }
         }
+        return usedSnapshotReports;
     }
 
-    private void checkExtensions( ReleaseDescriptor releaseDescriptor,
+    private Set<Artifact> checkExtensions( ReleaseDescriptor releaseDescriptor,
                                   Map<String, Artifact> artifactMap, Set<Artifact> extensionArtifacts )
     {
+        Set<Artifact> usedSnapshotExtensions = new HashSet<>();
         for ( Artifact artifact : extensionArtifacts )
         {
             if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
@@ -276,6 +280,7 @@ public class CheckDependencySnapshotsPhase
                 usedSnapshotExtensions.add( artifact );
             }
         }
+        return usedSnapshotExtensions;
     }
 
     private static boolean checkArtifact( Artifact artifact,
@@ -365,8 +370,6 @@ public class CheckDependencySnapshotsPhase
 
             if ( resolveSnapshot.toLowerCase( Locale.ENGLISH ).startsWith( "y" ) )
             {
-                Map<String, ReleaseStageVersions> resolvedSnapshots = null;
-                
                 if ( resolveSnapshotType == null )
                 {
                     prompter.showMessage( RESOLVE_SNAPSHOT_TYPE_MESSAGE );
@@ -378,36 +381,34 @@ public class CheckDependencySnapshotsPhase
                 {
                     // all
                     case 0:
-                        resolvedSnapshots = processSnapshot( projectDependencies );
-                        resolvedSnapshots.putAll( processSnapshot( pluginDependencies ) );
-                        resolvedSnapshots.putAll( processSnapshot( reportDependencies ) );
-                        resolvedSnapshots.putAll( processSnapshot( extensionDependencies ) );
+                        processSnapshot( projectDependencies, releaseDescriptor );
+                        processSnapshot( pluginDependencies, releaseDescriptor );
+                        processSnapshot( reportDependencies, releaseDescriptor );
+                        processSnapshot( extensionDependencies, releaseDescriptor );
                         break;
 
                         // project dependencies
                     case 1:
-                        resolvedSnapshots = processSnapshot( projectDependencies );
+                        processSnapshot( projectDependencies, releaseDescriptor );
                         break;
 
                         // plugins
                     case 2:
-                        resolvedSnapshots = processSnapshot( pluginDependencies );
+                        processSnapshot( pluginDependencies, releaseDescriptor );
                         break;
 
                         // reports
                     case 3:
-                        resolvedSnapshots = processSnapshot( reportDependencies );
+                        processSnapshot( reportDependencies, releaseDescriptor );
                         break;
 
                         // extensions
                     case 4:
-                        resolvedSnapshots = processSnapshot( extensionDependencies );
+                        processSnapshot( extensionDependencies, releaseDescriptor );
                         break;
 
                     default:
                 }
-
-                releaseDescriptor.getResolvedSnapshotDependencies().putAll( resolvedSnapshots );
             }
         }
         catch ( PrompterException | VersionParseException e )
@@ -416,10 +417,9 @@ public class CheckDependencySnapshotsPhase
         }
     }
 
-    private Map<String, ReleaseStageVersions> processSnapshot( Set<Artifact> snapshotSet )
+    private void processSnapshot( Set<Artifact> snapshotSet, ReleaseDescriptor releaseDescriptor )
         throws PrompterException, VersionParseException
     {
-        Map<String, ReleaseStageVersions> resolvedSnapshots = new HashMap<>();
         Iterator<Artifact> iterator = snapshotSet.iterator();
 
         while ( iterator.hasNext() )
@@ -455,10 +455,8 @@ public class CheckDependencySnapshotsPhase
 
             result = prompter.prompt( "What version should the dependency be reset to for development?", nextVersion );
             versionMap.setDevelopment( result );
-
-            resolvedSnapshots.put( versionlessKey, versionMap );
+            
+            releaseDescriptor.getResolvedSnapshotDependencies().put( versionlessKey, versionMap );
         }
-
-        return resolvedSnapshots;
     }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.