You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/03/25 06:17:10 UTC
svn commit: r522155 -
/maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
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();