Author: jdcasey
Date: Tue Aug 22 15:46:39 2006
New Revision: 433788

URL: http://svn.apache.org/viewvc?rev=433788&view=rev
Log:
Fixing extension resolution for cases where the project being built is in the 
Maven core artifact filter.

Modified:
    
maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java

Modified: 
maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?rev=433788&r1=433787&r2=433788&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
 (original)
+++ 
maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
 Tue Aug 22 15:46:39 2006
@@ -65,12 +65,14 @@
 
         if ( artifact != null )
         {
+                       ArtifactFilter filter = new 
ProjectArtifactExceptionFilter( artifactFilter, project.getArtifact() );
+                       
             ArtifactResolutionResult result = 
artifactResolver.resolveTransitively( Collections.singleton( artifact ),
                                                                                
     project.getArtifact(),
                                                                                
     localRepository,
                                                                                
     project.getRemoteArtifactRepositories(),
                                                                                
     artifactMetadataSource,
-                                                                               
     artifactFilter );
+                                                                               
     filter );
             for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
             {
                 Artifact a = (Artifact) i.next();
@@ -86,5 +88,24 @@
         throws ContextException
     {
         this.container = (PlexusContainer) context.get( 
PlexusConstants.PLEXUS_KEY );
+    }
+    
+    private static final class ProjectArtifactExceptionFilter implements 
ArtifactFilter
+    {
+               private ArtifactFilter passThroughFilter;
+               private String projectDependencyConflictId;
+               
+               ProjectArtifactExceptionFilter( ArtifactFilter 
passThroughFilter, Artifact projectArtifact )
+               {
+                               this.passThroughFilter = passThroughFilter;
+                               this.projectDependencyConflictId = 
projectArtifact.getDependencyConflictId();
+               }
+
+               public boolean include(Artifact artifact) {
+                       String depConflictId = 
artifact.getDependencyConflictId();
+                       
+                       return projectDependencyConflictId.equals( 
depConflictId )
+                                       || passThroughFilter.include( artifact 
);
+               }
     }
 }


Reply via email to