You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2014/05/19 20:02:27 UTC
svn commit: r1595985 - in
/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal:
Maven31DependencyGraphBuilder.java Maven3DependencyGraphBuilder.java
Author: hboutemy
Date: Mon May 19 18:02:27 2014
New Revision: 1595985
URL: http://svn.apache.org/r1595985
Log:
use Set instead of Map since the Map value is unused
Modified:
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java?rev=1595985&r1=1595984&r2=1595985&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java (original)
+++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java Mon May 19 18:02:27 2014
@@ -43,9 +43,9 @@ import org.eclipse.aether.version.Versio
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
-import java.util.Map;
+import java.util.Set;
/**
* Wrapper around Eclipse Aether dependency resolver, used in Maven 3.1.
@@ -66,7 +66,7 @@ public class Maven31DependencyGraphBuild
private ArtifactFactory factory;
/**
- * Builds the dependency graph for Maven 3 point 1+.
+ * Builds the dependency graph for Maven 3.1+.
*
* @param project the project
* @param filter artifact filter (can be <code>null</code>)
@@ -80,7 +80,7 @@ public class Maven31DependencyGraphBuild
}
/**
- * Builds the dependency graph for Maven 3 point 1+ including any dependencies from any projects in the reactor.
+ * Builds the dependency graph for Maven 3.1+ including any dependencies from any projects in the reactor.
*
* @param project the project
* @param filter artifact filter (can be <code>null</code>)
@@ -129,8 +129,8 @@ public class Maven31DependencyGraphBuild
catch ( DependencyResolutionException e )
{
// Ignore any resolution failure for deps that are part of the reactor but have not yet been built.
- // NB Typing has been removed because DependencyResolutionResult returns Sonatype aether in 3.0.4 and
- // Eclipse aether in 3.1.1 and while dep-tree is a single module we can only compile against one of them.
+ // NB Typing has been removed because DependencyResolutionResult returns Sonatype Aether in 3.0.4 and
+ // Eclipse Aether in 3.1.1 and while dep-tree is a single module we can only compile against one of them.
//
// NB While applying this code to Maven3DependencyGraphBuilder is trivial it won't work because
// in Maven 3, MavenProject.getProjectReferences isn't populated. So we would need to have the reactor
@@ -140,9 +140,10 @@ public class Maven31DependencyGraphBuild
// NB There doesn't seem to be any way to apply this to Maven2DependencyGraphBuilder as there is no
// concept of partial resolution like there is is 3 and 3.1
final DependencyResolutionResult result = e.getResult();
+
final List<Dependency> reactorDeps =
getReactorDependencies( reactorProjects, result.getUnresolvedDependencies() );
- Invoker.invoke( result.getUnresolvedDependencies(), "removeAll", Collection.class, reactorDeps );
+ result.getUnresolvedDependencies().removeAll( reactorDeps );
Invoker.invoke( result.getResolvedDependencies(), "addAll", Collection.class, reactorDeps );
if ( !result.getUnresolvedDependencies().isEmpty() )
@@ -150,18 +151,19 @@ public class Maven31DependencyGraphBuild
throw new DependencyGraphBuilderException( "Could not resolve the following dependencies : "
+ result.getUnresolvedDependencies(), e );
}
+
getLogger().debug( "Resolved dependencies after ignoring reactor dependencies : " + reactorDeps );
+
return result;
}
}
private List<Dependency> getReactorDependencies( Collection<MavenProject> reactorProjects, List<?> dependencies )
{
- // Create ProjectMap
- final Map<ArtifactKey, MavenProject> projectMap = new HashMap<ArtifactKey, MavenProject>();
+ final Set<ArtifactKey> reactorProjectsIds = new HashSet<ArtifactKey>();
for ( final MavenProject project : reactorProjects )
{
- projectMap.put( new ArtifactKey( project ), project );
+ reactorProjectsIds.add( new ArtifactKey( project ) );
}
final List<Dependency> reactorDeps = new ArrayList<Dependency>();
@@ -169,14 +171,16 @@ public class Maven31DependencyGraphBuild
{
final Dependency dependency = (Dependency) untypedDependency;
final org.eclipse.aether.artifact.Artifact depArtifact = dependency.getArtifact();
- final ArtifactKey key = new ArtifactKey(
- depArtifact.getGroupId(), depArtifact.getArtifactId(), depArtifact.getVersion()
- );
- if ( projectMap.containsKey( key ) )
+
+ final ArtifactKey key =
+ new ArtifactKey( depArtifact.getGroupId(), depArtifact.getArtifactId(), depArtifact.getVersion() );
+
+ if ( reactorProjectsIds.contains( key ) )
{
reactorDeps.add( dependency );
}
}
+
return reactorDeps;
}
Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java?rev=1595985&r1=1595984&r2=1595985&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java (original)
+++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java Mon May 19 18:02:27 2014
@@ -43,9 +43,9 @@ import java.lang.reflect.InvocationTarge
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
-import java.util.Map;
+import java.util.Set;
/**
* Wrapper around Maven 3 dependency resolver.
@@ -125,9 +125,10 @@ public class Maven3DependencyGraphBuilde
// NB There doesn't seem to be any way to apply this to Maven2DependencyGraphBuilder as there is no
// concept of partial resolution like there is is 3 and 3.1
final DependencyResolutionResult result = e.getResult();
+
final List<Dependency> reactorDeps =
getReactorDependencies( reactorProjects, result.getUnresolvedDependencies() );
- Invoker.invoke( result.getUnresolvedDependencies(), "removeAll", Collection.class, reactorDeps );
+ result.getUnresolvedDependencies().removeAll( reactorDeps );
Invoker.invoke( result.getResolvedDependencies(), "addAll", Collection.class, reactorDeps );
if ( !result.getUnresolvedDependencies().isEmpty() )
@@ -135,7 +136,9 @@ public class Maven3DependencyGraphBuilde
throw new DependencyGraphBuilderException( "Could not resolve the following dependencies : "
+ result.getUnresolvedDependencies(), e );
}
+
getLogger().debug( "Resolved dependencies after ignoring reactor dependencies : " + reactorDeps );
+
return result;
}
}
@@ -143,28 +146,27 @@ public class Maven3DependencyGraphBuilde
private List<org.sonatype.aether.graph.Dependency> getReactorDependencies( Collection<MavenProject> reactorProjects,
List<?> dependencies )
{
- // Create ProjectMap
- final Map<ArtifactKey, MavenProject> projectMap = new HashMap<ArtifactKey, MavenProject>();
+ final Set<ArtifactKey> reactorProjectsIds = new HashSet<ArtifactKey>();
for ( final MavenProject project : reactorProjects )
{
- projectMap.put( new ArtifactKey( project ), project );
+ reactorProjectsIds.add( new ArtifactKey( project ) );
}
- final List<org.sonatype.aether.graph.Dependency> reactorDeps =
- new ArrayList<org.sonatype.aether.graph.Dependency>();
+ final List<Dependency> reactorDeps = new ArrayList<Dependency>();
for ( final Object untypedDependency : dependencies )
{
- final org.sonatype.aether.graph.Dependency dependency =
- (org.sonatype.aether.graph.Dependency) untypedDependency;
+ final Dependency dependency = (Dependency) untypedDependency;
final org.sonatype.aether.artifact.Artifact depArtifact = dependency.getArtifact();
- final ArtifactKey key = new ArtifactKey(
- depArtifact.getGroupId(), depArtifact.getArtifactId(), depArtifact.getVersion()
- );
- if ( projectMap.containsKey( key ) )
+
+ final ArtifactKey key =
+ new ArtifactKey( depArtifact.getGroupId(), depArtifact.getArtifactId(), depArtifact.getVersion() );
+
+ if ( reactorProjectsIds.contains( key ) )
{
reactorDeps.add( dependency );
}
}
+
return reactorDeps;
}