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 <rfscho...@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 rfscho...@apache.org.