You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2009/01/22 04:33:17 UTC

svn commit: r736543 - in /maven/components/branches/maven-2.0.x: maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Author: jdcasey
Date: Wed Jan 21 19:33:16 2009
New Revision: 736543

URL: http://svn.apache.org/viewvc?rev=736543&view=rev
Log:
[MNG-3769] Fixing exclusion using post-relocation artifact details.

Modified:
    maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
    maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=736543&r1=736542&r2=736543&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Wed Jan 21 19:33:16 2009
@@ -285,6 +285,8 @@
         {
             fireEvent( ResolutionListener.PROCESS_CHILDREN, listeners, node );
 
+            Artifact parentArtifact = node.getArtifact();
+            
             for ( Iterator i = node.getChildrenIterator(); i.hasNext(); )
             {
                 ResolutionNode child = (ResolutionNode) i.next();
@@ -386,11 +388,22 @@
                             Artifact relocated = source.retrieveRelocatedArtifact( artifact, localRepository, childRemoteRepositories );
                             if ( !artifact.equals( relocated ) )
                             {
+                                relocated.setDependencyFilter( artifact.getDependencyFilter() );
                                 artifact = relocated;
                                 child.setArtifact( artifact );
                             }
                         }
                         while( !childKey.equals( child.getKey() ) );
+                        
+                        if ( parentArtifact != null && parentArtifact.getDependencyFilter() != null && !parentArtifact.getDependencyFilter().include( artifact ) )
+                        {
+                            // MNG-3769: the [probably relocated] artifact is excluded. 
+                            // We could process exclusions on relocated artifact details in the
+                            // MavenMetadataSource.createArtifacts(..) step, BUT that would
+                            // require resolving the POM from the repository very early on in
+                            // the build.
+                            continue;
+                        }
 
                         artifact.setDependencyTrail( node.getDependencyTrail() );
                         ResolutionGroup rGroup = source.retrieve( artifact, localRepository, remoteRepositories );

Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=736543&r1=736542&r2=736543&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Wed Jan 21 19:33:16 2009
@@ -431,6 +431,11 @@
 
             ArtifactFilter artifactFilter = dependencyFilter;
 
+            // MNG-3769: It would be nice to be able to process relocations here, 
+            // so we could have this filtering step apply to post-relocated dependencies.
+            // HOWEVER, this would require a much more invasive POM resolution process
+            // in order to look for relocations, which would make the early steps in 
+            // a Maven build way too heavy.
             if ( artifact != null && ( artifactFilter == null || artifactFilter.include( artifact ) ) )
             {
                 if ( d.getExclusions() != null && !d.getExclusions().isEmpty() )