You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/05/29 05:34:23 UTC

svn commit: r779825 - in /maven/components/trunk/maven-core/src: main/java/org/apache/maven/ main/java/org/apache/maven/lifecycle/ main/java/org/apache/maven/plugin/ main/java/org/apache/maven/project/artifact/ test/java/org/apache/maven/ test/java/org...

Author: jvanzyl
Date: Fri May 29 03:34:22 2009
New Revision: 779825

URL: http://svn.apache.org/viewvc?rev=779825&view=rev
Log:
o fixes for projects which specify plugins that define system scoped plugin override dependencies

Added:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java   (with props)
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java   (with props)
    maven/components/trunk/maven-core/src/test/projects/plugin-manager/
    maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/
    maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml   (with props)
    maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/tools.jar
    maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/
    maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml   (with props)
Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.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/project/artifact/MavenMetadataSource.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java Fri May 29 03:34:22 2009
@@ -51,6 +51,7 @@
         }
         
         ArtifactFilter scopeFilter = new ScopeArtifactFilter( scope );
+        // ArtifactFilter scopeFilter = new AndArtifactFilter( Arrays.asList( new ArtifactFilter[]{ new ScopeArtifactFilter( scope ), new ScopeArtifactFilter( Artifact.SCOPE_SYSTEM ) } ) );
         
         ArtifactFilter filter; 
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Fri May 29 03:34:22 2009
@@ -215,7 +215,7 @@
             }
         }        
     }        
-        
+               
     // 1. Find the lifecycle given the phase (default lifecycle when given install)
     // 2. Find the lifecycle mapping that corresponds to the project packaging (jar lifecycle mapping given the jar packaging)
     // 3. Find the mojos associated with the lifecycle given the project packaging (jar lifecycle mapping for the default lifecycle)

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java Fri May 29 03:34:22 2009
@@ -32,7 +32,6 @@
 import org.apache.maven.plugin.PluginDescriptorParsingException;
 import org.apache.maven.plugin.PluginNotFoundException;
 import org.apache.maven.plugin.PluginResolutionException;
-import org.apache.maven.project.MavenProject;
 
 /**
  * @author Jason van  Zyl

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?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- 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 Fri May 29 03:34:22 2009
@@ -15,6 +15,7 @@
  * the License.
  */
 
+import java.io.File;
 import java.io.IOException;
 import java.io.Reader;
 import java.net.MalformedURLException;
@@ -233,7 +234,9 @@
         return pluginDescriptor;
     }
 
-    private Set<Artifact> getPluginArtifacts( Artifact pluginArtifact, Plugin pluginAsSpecifiedinPom, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+    // TODO: Turn this into a component so it can be tested.
+    //
+    Set<Artifact> getPluginArtifacts( Artifact pluginArtifact, Plugin pluginAsSpecifiedInPom, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
         throws ArtifactNotFoundException, ArtifactResolutionException
     {
         AndArtifactFilter filter = new AndArtifactFilter();
@@ -253,9 +256,17 @@
         // We would almost always want the everything to be resolved from the root but we have this special case
         // of overrides from the project itself which confused the interface.
         
-        for( Dependency dependencySpecifiedInProject : pluginAsSpecifiedinPom.getDependencies() )
+        for( Dependency dependencySpecifiedInProject : pluginAsSpecifiedInPom.getDependencies() )
         {
-            dependenciesToResolveForPlugin.add( repositorySystem.createDependencyArtifact( dependencySpecifiedInProject ) );
+            // Right now if you add override dependencies they will not be operated on by the metadata source. The metadata source first grabs the plugins
+            // defined dependencies and then the result is merged with the overrides. The overrides don't pass through the metadata source which is where the
+            // Artifact.setFile( file ) method is called. We should eventually take care of this in the resolver.
+            Artifact a = repositorySystem.createDependencyArtifact( dependencySpecifiedInProject );
+            if ( a.getScope().equals(  Artifact.SCOPE_SYSTEM ) )
+            {
+                a.setFile( new File( dependencySpecifiedInProject.getSystemPath() ) );
+            }
+            dependenciesToResolveForPlugin.add( a );                            
         }
         
         ArtifactResolutionRequest request = new ArtifactResolutionRequest()
@@ -266,6 +277,7 @@
             .setRemoteRepostories( remoteRepositories )
             .setFilter( filter )
             .setResolveTransitively( true );
+            //.setResolveRoot( false );
         
         ArtifactResolutionResult result = repositorySystem.resolve( request );
         resolutionErrorHandler.throwErrors( request, result );
@@ -653,13 +665,13 @@
         return pluginDescriptors.get( constructPluginKey( plugin ) );
     }
 
-    private String constructPluginKey( Plugin plugin )
+    public String constructPluginKey( Plugin plugin )
     {
         String version = ArtifactUtils.toSnapshotVersion( plugin.getVersion() );
         return plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + version;
     }
 
-    private String constructPluginKey( PluginDescriptor pluginDescriptor )
+    public String constructPluginKey( PluginDescriptor pluginDescriptor )
     {
         String version = ArtifactUtils.toSnapshotVersion( pluginDescriptor.getVersion() );
         return pluginDescriptor.getGroupId() + ":" + pluginDescriptor.getArtifactId() + ":" + version;

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java?rev=779825&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java Fri May 29 03:34:22 2009
@@ -0,0 +1,10 @@
+package org.apache.maven.project.artifact;
+
+import java.util.List;
+
+import org.apache.maven.model.Dependency;
+
+public interface ArtifactWithDependencies
+{
+    List<Dependency> getDependencies();
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Fri May 29 03:34:22 2009
@@ -74,17 +74,17 @@
     public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
         throws ArtifactMetadataRetrievalException
     {
-        MavenProject project;
+        List<Dependency> dependencies;
 
         Artifact pomArtifact;
 
         //TODO: Not even sure this is really required as the project will be cached in the builder, we'll see this
         // is currently the biggest hotspot
-        if ( artifact instanceof ProjectArtifact )
+        if ( artifact instanceof ArtifactWithDependencies )
         {
             pomArtifact = artifact;
 
-            project = ((ProjectArtifact)artifact).getProject();
+            dependencies = ((ArtifactWithDependencies)artifact).getDependencies();
         }
         else
         {
@@ -106,7 +106,7 @@
 
             try
             {
-                project = getProjectBuilder().buildFromRepository( pomArtifact, configuration );
+                dependencies = getProjectBuilder().buildFromRepository( pomArtifact, configuration ).getDependencies();
             }
             catch ( ProjectBuildingException e )
             {
@@ -125,7 +125,7 @@
         {
             artifacts = new LinkedHashSet<Artifact>();
 
-            for ( Dependency d : project.getDependencies() )
+            for ( Dependency d : dependencies )
             {
                 String effectiveScope = getEffectiveScope( d.getScope(), artifact.getScope() );
 

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java?rev=779825&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java Fri May 29 03:34:22 2009
@@ -0,0 +1,69 @@
+package org.apache.maven.project.artifact;
+
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.project.MavenProject;
+
+public class PluginArtifact
+    extends DefaultArtifact
+    implements ArtifactWithDependencies
+{
+    private Plugin plugin;
+
+    public PluginArtifact( Plugin plugin, Artifact pluginArtifact )
+    {
+        super( plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(), null, "maven-plugin", null, new PluginArtifactHandler() );
+        this.plugin = plugin;
+        setFile( pluginArtifact.getFile() );
+        setResolved( true );
+    }
+
+    public List<Dependency> getDependencies()
+    {
+        return plugin.getDependencies();
+    }
+    
+    static class PluginArtifactHandler
+        implements ArtifactHandler
+    {
+        public String getClassifier()
+        {
+            return null;
+        }
+
+        public String getDirectory()
+        {
+            return null;
+        }
+
+        public String getExtension()
+        {
+            return "jar";
+        }
+
+        public String getLanguage()
+        {
+            return "none";
+        }
+
+        public String getPackaging()
+        {
+            return "maven-plugin";
+        }
+
+        public boolean isAddedToClasspath()
+        {
+            return true;
+        }
+
+        public boolean isIncludesDependencies()
+        {
+            return false;
+        }
+    }
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java Fri May 29 03:34:22 2009
@@ -1,11 +1,15 @@
 package org.apache.maven.project.artifact;
 
+import java.util.List;
+
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.project.MavenProject;
 
 public class ProjectArtifact
     extends DefaultArtifact
+    implements ArtifactWithDependencies
 {
     private MavenProject project;
 
@@ -22,6 +26,11 @@
         return project;
     }
     
+    public List<Dependency> getDependencies()
+    {
+        return project.getDependencies();
+    }
+    
     static class PomArtifactHandler
         implements ArtifactHandler
     {

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java Fri May 29 03:34:22 2009
@@ -5,13 +5,18 @@
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.DefaultMavenExecutionResult;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.PluginManager;
 import org.apache.maven.project.DefaultProjectBuilderConfiguration;
 import org.apache.maven.project.MavenProject;
@@ -99,7 +104,9 @@
     {
         MavenExecutionRequest request = createMavenExecutionRequest( pom );
 
-        ProjectBuilderConfiguration configuration = new DefaultProjectBuilderConfiguration().setLocalRepository( request.getLocalRepository() ).setRemoteRepositories( request.getRemoteRepositories() );
+        ProjectBuilderConfiguration configuration = new DefaultProjectBuilderConfiguration()
+            .setLocalRepository( request.getLocalRepository() )
+            .setRemoteRepositories( request.getRemoteRepositories() );
 
         MavenProject project = null;
 
@@ -137,4 +144,144 @@
     {        
         return repositorySystem.createDefaultLocalRepository();        
     }
+    
+    protected class ProjectBuilder
+    {
+        private MavenProject project;
+        
+        public ProjectBuilder( String groupId, String artifactId, String version )
+        {
+            Model model = new Model();
+            model.setModelVersion( "4.0.0" );
+            model.setGroupId( groupId );
+            model.setArtifactId( artifactId );
+            model.setVersion( version );  
+            model.setBuild(  new Build() );
+            project = new MavenProject( model );            
+        }
+        
+        public ProjectBuilder setGroupId( String groupId )
+        {
+            project.setGroupId( groupId );
+            return this;
+        }
+
+        public ProjectBuilder setArtifactId( String artifactId )
+        {
+            project.setArtifactId( artifactId );
+            return this;
+        }
+        
+        public ProjectBuilder setVersion( String version )
+        {
+            project.setVersion( version );
+            return this;
+        }
+        
+        // Dependencies
+        //
+        public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope )
+        {
+            return addDependency( groupId, artifactId, version, scope, (Exclusion)null );
+        }
+        
+        public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope, Exclusion exclusion )
+        {
+            return addDependency( groupId, artifactId, version, scope, null, exclusion );            
+        }
+
+        public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath )
+        {
+            return addDependency( groupId, artifactId, version, scope, systemPath, null );         
+        }
+        
+        public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath, Exclusion exclusion )
+        {
+            Dependency d = new Dependency();
+            d.setGroupId( groupId );
+            d.setArtifactId( artifactId );
+            d.setVersion( version );
+            d.setScope( scope );
+            
+            if ( systemPath != null && scope.equals(  Artifact.SCOPE_SYSTEM ) )
+            {
+                d.setSystemPath( systemPath );
+            }
+            
+            if ( exclusion != null )
+            {
+                d.addExclusion( exclusion );
+            }
+            
+            project.getDependencies().add( d );
+            
+            return this;
+        }
+        
+        // Plugins
+        //
+        public ProjectBuilder addPlugin( Plugin plugin )
+        {
+            project.getBuildPlugins().add( plugin );            
+            return this;
+        }
+        
+        public MavenProject get()
+        {
+            return project;
+        }        
+    }    
+    
+    protected class PluginBuilder
+    {
+        private Plugin plugin;
+        
+        public PluginBuilder( String groupId, String artifactId, String version )
+        {
+            plugin = new Plugin();
+            plugin.setGroupId( groupId );
+            plugin.setArtifactId( artifactId );
+            plugin.setVersion( version );                         
+        }
+                
+        // Dependencies
+        //
+        public PluginBuilder addDependency( String groupId, String artifactId, String version, String scope, Exclusion exclusion )
+        {
+            return addDependency( groupId, artifactId, version, scope, exclusion );            
+        }
+
+        public PluginBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath )
+        {
+            return addDependency( groupId, artifactId, version, scope, systemPath, null );         
+        }
+        
+        public PluginBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath, Exclusion exclusion )
+        {
+            Dependency d = new Dependency();
+            d.setGroupId( groupId );
+            d.setArtifactId( artifactId );
+            d.setVersion( version );
+            d.setScope( scope );
+            
+            if ( systemPath != null && scope.equals(  Artifact.SCOPE_SYSTEM ) )
+            {
+                d.setSystemPath( systemPath );
+            }
+            
+            if ( exclusion != null )
+            {
+                d.addExclusion( exclusion );
+            }
+            
+            plugin.getDependencies().add( d );
+            
+            return this;
+        }
+                
+        public Plugin get()
+        {
+            return plugin;
+        }        
+    }        
 }

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java Fri May 29 03:34:22 2009
@@ -1,17 +1,10 @@
 package org.apache.maven;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.io.File;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
-import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Exclusion;
-import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.annotations.Requirement;
 
@@ -41,10 +34,16 @@
         return "src/test/projects/project-dependencies-resolver";
     }
 
-    public void testCalculationOfBuildPlanWithIndividualTaskOfTheCleanCleanGoal()
+    public void testExclusionsInDependencies()
         throws Exception
     {
-        MavenProject project = createProject();
+        Exclusion exclusion = new Exclusion();
+        exclusion.setGroupId( "commons-lang" );
+        exclusion.setArtifactId( "commons-lang" );        
+        
+        MavenProject project = new ProjectBuilder( "org.apache.maven", "project-test", "1.0" )
+            .addDependency( "org.apache.maven.its", "maven-core-it-support", "1.3", Artifact.SCOPE_RUNTIME, exclusion  )
+            .get();        
         
         Set<Artifact> artifactDependencies = resolver.resolve( project, Artifact.SCOPE_COMPILE, getLocalRepository(), getRemoteRepositories() );
         assertEquals( 0, artifactDependencies.size() );
@@ -54,34 +53,14 @@
         assertEquals( "maven-core-it-support" , artifactDependencies.iterator().next().getArtifactId() );
     }
     
-    private MavenProject createProject()
-    {
-        Model model = new Model();
-        model.setModelVersion( "4.0.0" );
-        model.setGroupId( "org.apache.maven" );
-        model.setArtifactId( "project-test" );
-        model.setVersion( "1.0" );  
-        
-        List<Dependency> dependencies = new ArrayList<Dependency>();
-        dependencies.add( d( "org.apache.maven.its", "maven-core-it-support", "1.3" ) );
-        model.setDependencies( dependencies );        
-        
-        return new MavenProject( model );
-    }
-    
-    private Dependency d( String g, String a, String v )
+    public void testSystemScopeDependencies()
+        throws Exception
     {
-        Dependency d = new Dependency();
-        d.setGroupId( g );
-        d.setArtifactId( a );
-        d.setVersion( v );
-        d.setScope( Artifact.SCOPE_RUNTIME );
-        
-        Exclusion e = new Exclusion();
-        e.setGroupId( "commons-lang" );
-        e.setArtifactId( "commons-lang" );        
-        d.addExclusion( e );
-        
-        return d;
-    }    
+        MavenProject project = new ProjectBuilder( "org.apache.maven", "project-test", "1.0" )
+            .addDependency( "com.mycompany", "system-dependency", "1.0", Artifact.SCOPE_SYSTEM, new File( getBasedir(), "pom.xml" ).getAbsolutePath() )
+            .get();
+
+        Set<Artifact> artifactDependencies = resolver.resolve( project, Artifact.SCOPE_COMPILE, getLocalRepository(), getRemoteRepositories() );                
+        assertEquals( 1, artifactDependencies.size() );        
+    }  
 }

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java?rev=779825&r1=779824&r2=779825&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java Fri May 29 03:34:22 2009
@@ -1,18 +1,24 @@
 package org.apache.maven.plugin;
 
+import java.util.List;
+import java.util.Set;
+
 import org.apache.maven.AbstractCoreMavenComponentTestCase;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 public class PluginManagerTest
     extends AbstractCoreMavenComponentTestCase
 {
     @Requirement
-    private PluginManager pluginManager;
+    private DefaultPluginManager pluginManager;
     
     private String plexusVersion = "1.0-beta-3.0.7-SNAPSHOT";
     
@@ -20,18 +26,20 @@
         throws Exception
     {
         super.setUp();
-        pluginManager = lookup( PluginManager.class );
+        pluginManager = (DefaultPluginManager) lookup( PluginManager.class );
     }
     
     @Override
-    protected void tearDown() throws Exception {
-            pluginManager = null;
-            super.tearDown();
+    protected void tearDown()
+        throws Exception
+    {
+        pluginManager = null;
+        super.tearDown();
     }
 
     protected String getProjectsDirectory()
     {
-        return "src/test/projects/lifecycle-executor";
+        return "src/test/projects/plugin-manager";
     }
                 
     public void testPluginLoading()
@@ -180,6 +188,58 @@
     
     // test a build where projects use different versions of the same plugin
     
+    public void testThatPluginDependencyThatHasSystemScopeIsResolved()
+        throws Exception
+    {
+        /*
+        File systemPath = new File( getBasedir(), "pom.xml" );
+
+        Plugin plugin = new PluginBuilder( "org.apache.maven", "project-test", "1.0" )
+            .addDependency( "org.apache.maven", "system-dependency", "1.0", Artifact.SCOPE_SYSTEM, systemPath.getAbsolutePath() )
+            .get();        
+
+        MavenProject pluginProject = new ProjectBuilder( "org.apache.maven", "project-test", "1.0" )
+            .addPlugin( plugin )
+            .addDependency( "junit", "junit", "3.8.1", Artifact.SCOPE_COMPILE )
+            .get();        
+        
+        // i'm making this artifact which is assumed to come from a pom in the metadata processor, then it tries to create a POM artifact
+        // and parse it for the dependencies and it blows up.
+        //
+        // we need to pass this through as is so it doesn't get parsed again.
+        Artifact pluginArtifact = new ProjectArtifact( pluginProject );
+        
+        Set<Artifact> artifacts = pluginManager.getPluginArtifacts( pluginArtifact, plugin, getLocalRepository(), getRemoteRepositories() );
+        System.out.println( artifacts );
+        */
+        
+        MavenSession session = createMavenSession( getProject( "project-contributing-system-scope-plugin-dep" ) );
+        MavenProject project = session.getCurrentProject();
+        Plugin plugin = project.getPlugin( "org.apache.maven.its.plugins:maven-it-plugin-class-loader" );                
+        Artifact pluginArtifact = project.getPluginArtifactMap().get( "org.apache.maven.its.plugins:maven-it-plugin-class-loader" ); 
+        
+        ArtifactResolutionRequest request = new ArtifactResolutionRequest()
+            .setArtifact( pluginArtifact )
+            .setLocalRepository( getLocalRepository() )
+            .setRemoteRepostories( getRemoteRepositories() );
+
+        ArtifactResolutionResult result = repositorySystem.resolve( request );
+        
+        Set<Artifact> artifacts = pluginManager.getPluginArtifacts( pluginArtifact, plugin, getLocalRepository(), getRemoteRepositories() );   
+        assertEquals( 4, artifacts.size() );
+        
+        for ( Artifact a : artifacts )
+        {
+            if ( a.getGroupId().equals( "org.apache.maven.its.mng3586" ) && a.getArtifactId().equals( "tools" ) )
+            {
+                // The system scoped dependencies will be present in the classloader for the plugin
+                return;
+            }
+        }
+        
+        fail( "Can't find the system scoped dependency in the plugin artifacts." );
+    }
+    
     // -----------------------------------------------------------------------------------------------
     // Testing help
     // -----------------------------------------------------------------------------------------------

Added: maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml?rev=779825&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml (added)
+++ maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml Fri May 29 03:34:22 2009
@@ -0,0 +1,44 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3586</groupId>
+  <artifactId>test2</artifactId>
+  <version>1.0</version>
+
+  <name>Maven Integration Test :: MNG-3586</name> 
+  <description>
+    Test that plugin dependencies with scope system are part of the plugin class realm.
+  </description>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-class-loader</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.maven.its.mng3586</groupId>
+            <artifactId>tools</artifactId>
+            <version>1.5.0</version>
+            <scope>system</scope>
+            <systemPath>${basedir}/tools.jar</systemPath>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <id>load</id>
+            <phase>validate</phase>
+            <configuration>
+              <resourcePaths>maven-core-it.properties</resourcePaths>
+              <pluginClassLoaderOutput>target/pcl.properties</pluginClassLoaderOutput>
+            </configuration>
+            <goals>
+              <goal>load</goal>
+            </goals>
+          </execution>
+        </executions>        
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/tools.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/tools.jar?rev=779825&view=auto
==============================================================================
    (empty)

Added: maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml?rev=779825&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml (added)
+++ maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml Fri May 29 03:34:22 2009
@@ -0,0 +1,628 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven</groupId>
+    <artifactId>maven-parent</artifactId>
+    <version>11</version>
+    <relativePath>../pom/maven/pom.xml</relativePath>
+  </parent>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven</artifactId>
+  <version>3.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>Apache Maven</name>
+  <description>Maven is a project development management and
+    comprehension tool. Based on the concept of a project object model:
+    builds, dependency management, documentation creation, site
+    publication, and distribution publication are all controlled from
+    the declarative file. Maven can be extended by plugins to utilise a
+    number of other development tools for reporting or the build
+    process.
+  </description>
+  <url>http://maven.apache.org/</url>
+  <inceptionYear>2001</inceptionYear>
+  <properties>
+    <classWorldsVersion>1.3</classWorldsVersion>
+    <commonsCliVersion>1.0</commonsCliVersion>
+    <!-- 
+    
+    Do not update this, Doxia will be decoupled completely from 3.x and someone can
+    create a rendering engine for it if they like when the release stabilizes. JVZ 
+    
+    -->
+    <doxiaVersion>1.0-alpha-9</doxiaVersion>
+    <easyMockVersion>1.2_Java1.3</easyMockVersion>
+    <junitVersion>3.8.1</junitVersion>    
+    <plexusVersion>1.0-beta-3.0.7-SNAPSHOT</plexusVersion>
+    <plexusInteractivityVersion>1.0-alpha-6</plexusInteractivityVersion>
+    <plexusInterpolationVersion>1.1</plexusInterpolationVersion>
+    <plexusPluginManagerVersion>1.0-alpha-1</plexusPluginManagerVersion>
+    <plexusUtilsVersion>1.5.8</plexusUtilsVersion>
+    <plexusJetty6Version>1.6</plexusJetty6Version>
+    <plexusWebdavVersion>1.0</plexusWebdavVersion>    
+    <wagonVersion>1.0-beta-4</wagonVersion>
+    <modelBuilderVersion>1.7-SNAPSHOT</modelBuilderVersion>
+    <mercuryVersion>1.0-alpha-6-SNAPSHOT</mercuryVersion>
+    <mercuryMp3Version>1.0-alpha-1</mercuryMp3Version>
+    <securityDispatcherVersion>1.2</securityDispatcherVersion>
+    <woodstoxVersion>3.2.6</woodstoxVersion>
+    <modelloVersion>1.0.1-SNAPSHOT</modelloVersion>
+    <jxpathVersion>1.3</jxpathVersion>
+  </properties>
+  <issueManagement>
+    <system>jira</system>
+    <url>http://jira.codehaus.org/browse/MNG</url>
+  </issueManagement>
+  <mailingLists>
+    <mailingList>
+      <name>Maven Developer List</name>
+      <subscribe>dev-subscribe@maven.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@maven.apache.org</unsubscribe>
+      <post>dev@maven.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/maven-dev</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/dev@maven.apache.org/</otherArchive>
+        <otherArchive>http://www.nabble.com/Maven-Developers-f179.html</otherArchive>
+        <otherArchive>http://maven.dev.markmail.org/</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>Maven User List</name>
+      <subscribe>users-subscribe@maven.apache.org</subscribe>
+      <unsubscribe>users-unsubscribe@maven.apache.org</unsubscribe>
+      <post>users@maven.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/maven-users</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/users@maven.apache.org/</otherArchive>
+        <otherArchive>http://www.nabble.com/Maven---Users-f178.html</otherArchive>
+        <otherArchive>http://maven.users.markmail.org/</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>Maven Issues List</name>
+      <subscribe>issues-subscribe@maven.apache.org</subscribe>
+      <unsubscribe>issues-unsubscribe@maven.apache.org</unsubscribe>
+      <archive>http://mail-archives.apache.org/mod_mbox/maven-issues/</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/issues@maven.apache.org</otherArchive>
+        <otherArchive>http://www.nabble.com/Maven---Issues-f15573.html</otherArchive>
+        <otherArchive>http://maven.issues.markmail.org/</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>Maven Commits List</name>
+      <subscribe>commits-subscribe@maven.apache.org</subscribe>
+      <unsubscribe>commits-unsubscribe@maven.apache.org</unsubscribe>
+      <archive>http://mail-archives.apache.org/mod_mbox/maven-commits</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/commits@maven.apache.org</otherArchive>
+        <otherArchive>http://www.nabble.com/Maven---Commits-f15575.html</otherArchive>
+        <otherArchive>http://maven.commits.markmail.org/</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <!--
+      duplication from parent pom - temporary until they inherit
+      properly
+    -->
+    <mailingList>
+      <name>Maven Announcements List</name>
+      <post>announce@maven.apache.org</post>
+      <subscribe>announce-subscribe@maven.apache.org</subscribe>
+      <unsubscribe>announce-unsubscribe@maven.apache.org</unsubscribe>
+      <archive>http://mail-archives.apache.org/mod_mbox/maven-announce/</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/announce@maven.apache.org</otherArchive>
+        <otherArchive>http://www.nabble.com/Maven-Announcements-f15617.html</otherArchive>
+        <otherArchive>http://maven.announce.markmail.org/</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>Maven Notifications List</name>
+      <subscribe>notifications-subscribe@maven.apache.org</subscribe>
+      <unsubscribe>notifications-unsubscribe@maven.apache.org</unsubscribe>
+      <archive>http://mail-archives.apache.org/mod_mbox/maven-notifications/</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/notifications@maven.apache.org</otherArchive>
+        <otherArchive>http://www.nabble.com/Maven---Notifications-f15574.html</otherArchive>
+        <otherArchive>http://maven.notifications.markmail.org/</otherArchive>
+      </otherArchives>
+    </mailingList>
+  </mailingLists>
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/components/trunk</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/components/trunk</developerConnection>
+    <url>http://svn.apache.org/viewcvs.cgi/maven/components/trunk</url>
+  </scm>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-component-metadata</artifactId>
+          <version>${plexusVersion}</version>
+          <executions>
+            <execution>
+              <goals>
+                <goal>generate-metadata</goal>
+                <goal>generate-test-metadata</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>2.0.2</version>
+          <configuration>
+            <source>1.5</source>
+            <target>1.5</target>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-release-plugin</artifactId>
+          <configuration>
+            <tagBase>https://svn.apache.org/repos/asf/maven/components/tags</tagBase>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.modello</groupId>
+          <artifactId>modello-maven-plugin</artifactId>
+          <version>${modelloVersion}</version>
+          <configuration>
+            <useJava5>true</useJava5>
+          </configuration>
+          <executions>
+            <execution>
+              <id>site-docs</id>
+              <phase>pre-site</phase>
+              <goals>
+                <goal>xdoc</goal>
+                <goal>xsd</goal>
+              </goals>
+            </execution>
+            <execution>
+              <id>standard</id>
+              <goals>
+                <goal>java</goal>
+                <goal>xpp3-reader</goal>
+                <goal>xpp3-writer</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <version>1.0.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.4.2</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>2.2-beta-2</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>2.4-SNAPSHOT</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+  <modules>
+    <module>maven-core</module>
+    <module>apache-maven</module>
+    <module>maven-model</module>
+    <module>maven-plugin-api</module>
+    <module>maven-project</module>
+    <module>maven-reporting-api</module>
+    <module>maven-project-builder</module>
+    <module>maven-mercury</module>
+    <module>maven-embedder</module>
+    <module>maven-toolchain</module>
+    <module>maven-compat</module>
+    <module>maven-repository</module>
+    <module>maven-repository-mercury</module>    
+  </modules>
+  <!--start-->
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junitVersion}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <dependencyManagement>
+    <!--end-->
+    <dependencies>
+      <!--  Maven Modules -->
+      <!--start-->
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-mercury</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-lifecycle</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-reporting-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-profile</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-model</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-project</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-plugin-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-toolchain</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-embedder</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-core</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-project-builder</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-repository</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-compat</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <!--end-->
+      <!--  Plexus -->
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-utils</artifactId>
+        <version>${plexusUtilsVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-container-default</artifactId>
+        <version>${plexusVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-component-annotations</artifactId>
+        <version>${plexusVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-classworlds</artifactId>
+        <version>${classWorldsVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-interpolation</artifactId>
+        <version>${plexusInterpolationVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-interactivity-api</artifactId>
+        <version>${plexusInteractivityVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-component-api</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      
+      <!--  Plexus test dependencies -->
+      <dependency>
+        <groupId>org.sonatype.plexus</groupId>                                                                                
+        <artifactId>plexus-jetty6</artifactId>                                                                                
+        <version>${plexusJetty6Version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.sonatype.spice</groupId>
+        <artifactId>plexus-webdav</artifactId>
+        <version>${plexusWebdavVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      
+      <!--  Wagon -->
+      <dependency>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-provider-api</artifactId>
+        <version>${wagonVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-file</artifactId>
+        <version>${wagonVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-http-lightweight</artifactId>
+        <version>${wagonVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-ssh</artifactId>
+        <version>${wagonVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-ssh-external</artifactId>
+        <version>${wagonVersion}</version>
+      </dependency>
+      <!--  Doxia -->
+      <dependency>
+        <groupId>org.apache.maven.doxia</groupId>
+        <artifactId>doxia-sink-api</artifactId>
+        <version>${doxiaVersion}</version>
+      </dependency>
+      <!--  Maven Shared -->
+      <dependency>
+        <groupId>org.sonatype.spice</groupId>
+        <artifactId>model-builder</artifactId>
+        <version>${modelBuilderVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.woodstox</groupId>
+        <artifactId>wstx-asl</artifactId>
+        <version>${woodstoxVersion}</version>
+      </dependency>
+      <!--  Commons -->
+      <dependency>
+        <groupId>commons-cli</groupId>
+        <artifactId>commons-cli</artifactId>
+        <version>${commonsCliVersion}</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-lang</artifactId>
+            <groupId>commons-lang</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+    <dependency>
+      <groupId>commons-jxpath</groupId>
+      <artifactId>commons-jxpath</artifactId>
+        <version>${jxpathVersion}</version>
+    </dependency>
+
+      <!--  Mercury -->
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-artifact</artifactId>
+        <version>${mercuryVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-external</artifactId>
+        <version>${mercuryVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-plexus</artifactId>
+        <version>${mercuryVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-virtual</artifactId>
+        <version>${mercuryVersion}</version>
+      </dependency>
+    <dependency>
+      <groupId>org.sonatype.mercury</groupId>
+      <artifactId>mercury-mp3-cli</artifactId>
+        <version>${mercuryMp3Version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.sonatype.plexus</groupId>
+        <artifactId>plexus-sec-dispatcher</artifactId>
+        <version>${securityDispatcherVersion}</version>
+      </dependency>
+
+
+      <!--  Mercury test dependencies -->
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-local-m2</artifactId>
+        <version>${mercuryVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-remote-m2</artifactId>
+        <version>${mercuryVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-md-sat</artifactId>
+        <version>${mercuryVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-util</artifactId>
+        <version>${mercuryVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-transport-http</artifactId>
+        <version>${mercuryVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-transport-http</artifactId>
+        <version>${mercuryVersion}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.sonatype.plexus</groupId>
+        <artifactId>plexus-plugin-manager</artifactId>
+        <version>${plexusPluginManagerVersion}</version>
+      </dependency>
+      <!--start-->
+      <dependency>
+        <groupId>easymock</groupId>
+        <artifactId>easymock</artifactId>
+        <version>${easyMockVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <!--end-->
+    </dependencies>
+    <!--start-->
+  </dependencyManagement>
+  <!--end-->
+  <distributionManagement>
+    <site>
+      <id>apache.website</id>
+      <url>scp://people.apache.org/www/maven.apache.org/ref/${project.version}/</url>
+    </site>
+  </distributionManagement>
+  <profiles>
+    <profile>
+      <id>osgi</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>maven-bundle-plugin</artifactId>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>manifest</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+          <!-- Needed for including the manifest, see MJAR-71 -->
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-jar-plugin</artifactId>
+            <version>2.1</version>
+            <configuration>
+              <archive>
+                <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+              </archive>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <inherited>false</inherited>
+            <configuration>
+              <descriptors>
+                <descriptor>src/main/assembly/src.xml</descriptor>
+              </descriptors>
+              <tarLongFileMode>gnu</tarLongFileMode>
+              <finalName>maven-${project.version}-src</finalName>
+            </configuration>
+            <executions>
+              <execution>
+                <id>make-assembly</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>single</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>strict</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-enforcer-plugin</artifactId>
+            <version>1.0-alpha-3</version>
+            <executions>
+              <execution>
+                <id>enforce-jdk-15</id>
+                <goals>
+                  <goal>enforce</goal>
+                </goals>
+                <configuration>
+                  <rules>
+                    <requireJavaVersion>
+                      <version>1.5</version>
+                    </requireJavaVersion>
+                  </rules>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>

Propchange: maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"