You are viewing a plain text version of this content. The canonical link for it is here.
Posted to m2-dev@maven.apache.org by jv...@apache.org on 2004/10/06 16:30:00 UTC
cvs commit: maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver ArtifactResolver.java DefaultArtifactResolver.java
jvanzyl 2004/10/06 07:30:00
Modified: maven-artifact/src/main/java/org/apache/maven/artifact/resolver
ArtifactResolver.java DefaultArtifactResolver.java
Log:
o putting into play the use of the artifact filter during the transitive
collection of artifacts.
-> I was previously using a an exclude list but that was only taking into
account the top-level pass of the artifacts so what was happening was
things like maven-core weren't going in repeatedly but all of
maven-core's deps were going in repeatedly. So by using the filter
in the collector that sort of behaviour is stopped and now I can
make the filter do anything I want to account for any weirdisms
I subsequently encounter.
Revision Changes Path
1.2 +15 -4 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
Index: ArtifactResolver.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ArtifactResolver.java 9 Aug 2004 18:37:33 -0000 1.1
+++ ArtifactResolver.java 6 Oct 2004 14:30:00 -0000 1.2
@@ -1,9 +1,9 @@
package org.apache.maven.artifact.resolver;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
import java.util.Set;
@@ -23,13 +23,15 @@
Set remoteRepositories,
ArtifactRepository localRepository )
throws ArtifactResolutionException;
-
+
ArtifactResolutionResult resolveTransitively( Artifact artifact,
Set remoteRepositories,
ArtifactRepository localRepository,
ArtifactMetadataSource source )
throws ArtifactResolutionException;
+
+
Set resolve( Set artifacts,
Set remoteRepositories,
ArtifactRepository localRepository )
@@ -40,4 +42,13 @@
ArtifactRepository localRepository,
ArtifactMetadataSource source )
throws ArtifactResolutionException;
+
+ ArtifactResolutionResult resolveTransitively( Set artifacts,
+ Set remoteRepositories,
+ ArtifactRepository localRepository,
+ ArtifactMetadataSource source,
+ ArtifactFilter filter )
+ throws ArtifactResolutionException;
+
+
}
1.6 +44 -8 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
Index: DefaultArtifactResolver.java
===================================================================
RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DefaultArtifactResolver.java 29 Sep 2004 11:20:38 -0000 1.5
+++ DefaultArtifactResolver.java 6 Oct 2004 14:30:00 -0000 1.6
@@ -2,10 +2,11 @@
import org.apache.maven.artifact.AbstractArtifactComponent;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerNotFoundException;
import org.apache.maven.artifact.manager.WagonManager;
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.wagon.TransferFailedException;
@@ -117,7 +118,8 @@
public ArtifactResolutionResult resolveTransitively( Set artifacts,
Set remoteRepositories,
ArtifactRepository localRepository,
- ArtifactMetadataSource source )
+ ArtifactMetadataSource source,
+ ArtifactFilter filter )
throws ArtifactResolutionException
{
ArtifactResolutionResult artifactResolutionResult;
@@ -127,7 +129,8 @@
artifactResolutionResult = collect( artifacts,
localRepository,
remoteRepositories,
- source );
+ source,
+ filter );
}
catch ( TransitiveArtifactResolutionException e )
{
@@ -142,6 +145,15 @@
return artifactResolutionResult;
}
+ public ArtifactResolutionResult resolveTransitively( Set artifacts,
+ Set remoteRepositories,
+ ArtifactRepository localRepository,
+ ArtifactMetadataSource source )
+ throws ArtifactResolutionException
+ {
+ return resolveTransitively( artifacts, remoteRepositories, localRepository, source, null );
+ }
+
public ArtifactResolutionResult resolveTransitively( Artifact artifact,
Set remoteRepositories,
ArtifactRepository localRepository,
@@ -160,10 +172,11 @@
//
// ----------------------------------------------------------------------
- public ArtifactResolutionResult collect( Set artifacts,
- ArtifactRepository localRepository,
- Set remoteRepositories,
- ArtifactMetadataSource source )
+ protected ArtifactResolutionResult collect( Set artifacts,
+ ArtifactRepository localRepository,
+ Set remoteRepositories,
+ ArtifactMetadataSource source,
+ ArtifactFilter filter )
throws TransitiveArtifactResolutionException
{
ArtifactResolutionResult result = new ArtifactResolutionResult();
@@ -199,7 +212,15 @@
}
else
{
- //It's the first time we have encountered this artifact
+ // ----------------------------------------------------------------------
+ // It's the first time we have encountered this artifact
+ // ----------------------------------------------------------------------
+
+ if ( filter != null && !filter.include( newArtifact.getArtifactId() ) )
+ {
+ continue;
+ }
+
resolvedArtifacts.put( id, newArtifact );
Set referencedDependencies = null;
@@ -219,8 +240,10 @@
}
}
+ // ----------------------------------------------------------------------
// the dependencies list is keyed by groupId+artifactId+type
// so it must be 'rekeyed' to the complete id: groupId+artifactId+type+version
+ // ----------------------------------------------------------------------
Map artifactResult = result.getArtifacts();
@@ -259,5 +282,18 @@
}
conflicts.add( newArtifact );
+ }
+
+ protected boolean includeArtifact( String artifactId, String[] artifactExcludes )
+ {
+ for ( int b = 0; b < artifactExcludes.length; b++ )
+ {
+ if ( artifactId.equals( artifactExcludes[b] ) )
+ {
+ return false;
+ }
+ }
+
+ return true;
}
}