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 2006/11/29 04:41:00 UTC
svn commit: r480377 - in /maven/components/trunk/maven-core/src/main:
java/org/apache/maven/extension/ java/org/apache/maven/plugin/
resources/META-INF/plexus/
Author: brett
Date: Tue Nov 28 19:40:59 2006
New Revision: 480377
URL: http://svn.apache.org/viewvc?view=rev&rev=480377
Log:
[MNG-2228] make sure build extensions are filtered from being loaded in plugins
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?view=diff&rev=480377&r1=480376&r2=480377
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java Tue Nov 28 19:40:59 2006
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.apache.maven.MavenArtifactFilterManager;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
@@ -25,9 +26,10 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
import org.apache.maven.model.Extension;
+import org.apache.maven.plugin.PluginManager;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.MavenArtifactFilterManager;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusContainerException;
@@ -37,6 +39,8 @@
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
/**
* Used to locate extensions.
@@ -54,6 +58,8 @@
private PlexusContainer container;
+ private PluginManager pluginManager;
+
private ArtifactFilter artifactFilter = MavenArtifactFilterManager.createStandardFilter();
public void addExtension( Extension extension, MavenProject project, ArtifactRepository localRepository )
@@ -65,22 +71,26 @@
if ( artifact != null )
{
- ArtifactFilter filter = new ProjectArtifactExceptionFilter( artifactFilter, project.getArtifact() );
-
+ ArtifactFilter filter = new ProjectArtifactExceptionFilter( artifactFilter, project.getArtifact() );
+
ArtifactResolutionResult result = artifactResolver.resolveTransitively( Collections.singleton( artifact ),
project.getArtifact(),
localRepository,
project.getRemoteArtifactRepositories(),
- artifactMetadataSource,
- filter );
+ artifactMetadataSource, filter );
+
+ List excludedArtifacts = new ArrayList( result.getArtifacts().size() );
for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
{
Artifact a = (Artifact) i.next();
+ excludedArtifacts.add( ArtifactUtils.versionlessKey( a ) );
+
a = project.replaceWithActiveArtifact( a );
container.addJarResource( a.getFile() );
}
+ pluginManager.addToArtifactFilter( new ExcludesArtifactFilter( excludedArtifacts ) );
}
}
@@ -89,23 +99,25 @@
{
this.container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
}
-
- private static final class ProjectArtifactExceptionFilter implements ArtifactFilter
+
+ 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 );
- }
+ 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 );
+ }
}
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?view=diff&rev=480377&r1=480376&r2=480377
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Tue Nov 28 19:40:59 2006
@@ -29,6 +29,7 @@
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
@@ -1190,4 +1191,11 @@
return pluginContainer.lookupMap( role );
}
+ public void addToArtifactFilter( ArtifactFilter filter )
+ {
+ AndArtifactFilter newFilter = new AndArtifactFilter();
+ newFilter.add( filter );
+ newFilter.add( artifactFilter );
+ artifactFilter = newFilter;
+ }
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java?view=diff&rev=480377&r1=480376&r2=480377
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java Tue Nov 28 19:40:59 2006
@@ -19,6 +19,8 @@
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Plugin;
@@ -70,4 +72,6 @@
Map getPluginComponents( Plugin plugin, String role )
throws ComponentLookupException, PluginManagerException;
+
+ void addToArtifactFilter( ArtifactFilter filter );
}
Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=480377&r1=480376&r2=480377
==============================================================================
--- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml Tue Nov 28 19:40:59 2006
@@ -44,6 +44,9 @@
<requirement>
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
</requirement>
+ <requirement>
+ <role>org.apache.maven.plugin.PluginManager</role>
+ </requirement>
</requirements>
</component>