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


Reply via email to