Author: brianf Date: Sat Mar 24 21:17:01 2007 New Revision: 522155 URL: http://svn.apache.org/viewvc?view=rev&rev=522155 Log: MDEP-77 created new method to exclude from the sets.
Modified: maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java Modified: maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java?view=diff&rev=522155&r1=522154&r2=522155 ============================================================================== --- maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java (original) +++ maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java Sat Mar 24 21:17:01 2007 @@ -29,7 +29,9 @@ import java.util.Set; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.util.StringUtils; /** * @@ -89,10 +91,10 @@ usedDeclaredArtifacts.retainAll( usedArtifacts ); Set usedUndeclaredArtifacts = new HashSet( usedArtifacts ); - usedUndeclaredArtifacts.removeAll( declaredArtifacts ); + usedUndeclaredArtifacts = removeAll( usedUndeclaredArtifacts, declaredArtifacts ); Set unusedDeclaredArtifacts = new HashSet( declaredArtifacts ); - unusedDeclaredArtifacts.removeAll( usedArtifacts ); + unusedDeclaredArtifacts = removeAll( unusedDeclaredArtifacts, usedArtifacts ); return new ProjectDependencyAnalysis( usedDeclaredArtifacts, usedUndeclaredArtifacts, unusedDeclaredArtifacts ); @@ -103,6 +105,43 @@ } } + /** + * This method defines a new way to remove the artifacts by using the + * conflict id. We don't care about the version here because there can be + * only 1 for a given artifact anyway. + * + * @param start + * initial set + * @param remove + * set to exclude + * @return set with remove excluded + */ + private Set removeAll( Set start, Set remove ) + { + Set results = new HashSet( start.size() ); + Iterator iter = start.iterator(); + while ( iter.hasNext() ) + { + Artifact artifact = (Artifact) iter.next(); + Iterator iter2 = remove.iterator(); + boolean found = false; + while ( iter2.hasNext() ) + { + Artifact artifact2 = (Artifact) iter2.next(); + DefaultArtifact a; + if ( artifact.getDependencyConflictId().equals( artifact2.getDependencyConflictId() ) ) + { + found = true; + } + } + if ( !found ) + { + results.add( artifact ); + } + } + return results; + } + // private methods -------------------------------------------------------- private Map buildArtifactClassMap( MavenProject project ) @@ -115,10 +154,10 @@ for ( Iterator iterator = dependencyArtifacts.iterator(); iterator.hasNext(); ) { Artifact artifact = (Artifact) iterator.next(); - + File file = artifact.getFile(); - if ( file != null && file.getName().endsWith( ".jar" )) + if ( file != null && file.getName().endsWith( ".jar" ) ) { URL url = file.toURL();