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/11 06:08:31 UTC

svn commit: r773456 [2/2] - in /maven/components/branches/MNG-2766: ./ maven-compat/src/main/java/org/apache/maven/artifact/ maven-compat/src/main/java/org/apache/maven/artifact/manager/ maven-compat/src/main/java/org/apache/maven/artifact/repository/ ...

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Mon May 11 04:08:29 2009
@@ -21,6 +21,7 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -42,6 +43,10 @@
 
     private MavenProject currentProject;
         
+    /**
+     * These projects have already been topologically sorted in the {@link org.apache.maven.Maven} component before
+     * being passed into the session.
+     */
     private List<MavenProject> projects;
     
     private MavenProject topLevelProject;
@@ -91,8 +96,8 @@
     {
         return request.getSettings();
     }
-
-    public List<MavenProject> getSortedProjects()
+    
+    public List<MavenProject> getProjects()
     {
         return projects;
     }

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java Mon May 11 04:08:29 2009
@@ -4,6 +4,7 @@
 package org.apache.maven.execution;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -49,7 +50,7 @@
     // In this case, both the verify and the report goals are called
     // in a different lifecycle. Though the compiler-plugin has a valid usecase, although
     // that seems to work fine. We need to take versions and lifecycle into account.
-    public ProjectSorter( List<MavenProject> projects )
+    public ProjectSorter( Collection<MavenProject> projects )
         throws CycleDetectedException, DuplicateProjectException
     {
         dag = new DAG();

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Mon May 11 04:08:29 2009
@@ -107,7 +107,7 @@
             throw new LifecycleExecutionException( "\n\nYou must specify at least one goal. Try 'mvn install' to build or 'mvn --help' for options \nSee http://maven.apache.org for more information.\n\n" );
         }
         
-        for ( MavenProject currentProject : session.getSortedProjects() )
+        for ( MavenProject currentProject : session.getProjects() )
         {
             logger.info( "Building " + currentProject.getName() );
 
@@ -508,9 +508,7 @@
                 
         return mojoDescriptor;
     }
-        
-    private static int count = 0;
-    
+            
     // org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process
     MojoDescriptor getMojoDescriptor( String groupId, String artifactId, String version, String goal, MavenProject project, ArtifactRepository localRepository )
         throws LifecycleExecutionException
@@ -523,10 +521,7 @@
         MojoDescriptor mojoDescriptor;
     
         //need to do the active project thing as the site plugin is referencing itself
-        
-        if ( artifactId.equals( "maven-site-plugin" ) ){ count++; System.out.println( count ); };
-        
-        System.out.println( ">>> " + artifactId );
+                        
         try
         {
             mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, project, localRepository );

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Mon May 11 04:08:29 2009
@@ -25,7 +25,6 @@
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
@@ -106,6 +105,9 @@
     @Requirement
     private ResolutionErrorHandler resolutionErrorHandler;
 
+    @Requirement
+    private PluginClassLoaderCache pluginClassLoaderCache;
+    
     private Map<String, PluginDescriptor> pluginDescriptors;
 
     public DefaultPluginManager()
@@ -174,9 +176,6 @@
 
         Artifact pluginArtifact = repositorySystem.createPluginArtifact( plugin );
 
-        //TODO: this is assuming plugins in the reactor. must be replaced with a reactor local repository implementation
-        pluginArtifact = project.replaceWithActiveArtifact( pluginArtifact );
-
         ArtifactResolutionRequest request = new ArtifactResolutionRequest( pluginArtifact, localRepository, project.getRemoteArtifactRepositories() );
 
         ArtifactResolutionResult result = repositorySystem.resolve( request );
@@ -199,6 +198,8 @@
             }
         }
         
+        //pluginRealm.display();
+        
         try
         {
             logger.debug( "Discovering components in realm: " + pluginRealm );
@@ -214,8 +215,10 @@
             throw new PluginContainerException( plugin, pluginRealm, "Error scanning plugin realm for components.", e );
         }
 
+        pluginClassLoaderCache.cachePluginClassLoader( constructPluginKey( plugin ), pluginRealm );
+        
         PluginDescriptor pluginDescriptor = getPluginDescriptor( plugin );
-
+        
         // We just need to keep track of the realm, if we need to augment we will wrap the realm
         pluginDescriptor.setPluginArtifact( pluginArtifact );
         pluginDescriptor.setArtifacts( new ArrayList<Artifact>( pluginArtifacts ) );
@@ -266,24 +269,9 @@
         ArtifactResolutionResult result = repositorySystem.resolve( request );
         resolutionErrorHandler.throwErrors( request, result );
 
-        Set<Artifact> resolved = new LinkedHashSet<Artifact>();
-
-        //TODO: this is also assuming artifacts in the reactor.
-        for ( Iterator<Artifact> it = result.getArtifacts().iterator(); it.hasNext(); )
-        {
-            Artifact artifact = it.next();
-
-            if ( !artifact.equals( pluginArtifact ) )
-            {
-                artifact = project.replaceWithActiveArtifact( artifact );
-            }
-
-            resolved.add( artifact );
-        }
-
-        logger.debug( "Using the following artifacts for classpath of: " + pluginArtifact.getId() + ":\n\n" + resolved.toString().replace( ',', '\n' ) );
+        logger.debug( "Using the following artifacts for classpath of: " + pluginArtifact.getId() + ":\n\n" + result.getArtifacts().toString().replace( ',', '\n' ) );
 
-        return resolved;
+        return result.getArtifacts();
     }
 
     // ----------------------------------------------------------------------
@@ -356,7 +344,8 @@
         {
             mojo = getConfiguredMojo( session, mojoExecution, project, false, mojoExecution );
 
-            pluginRealm = pluginDescriptor.getClassRealm();
+            //pluginRealm = pluginDescriptor.getClassRealm();
+            pluginRealm = pluginClassLoaderCache.getPluginClassLoader( constructPluginKey( mojoDescriptor.getPluginDescriptor() ) );            
 
             Thread.currentThread().setContextClassLoader( pluginRealm );
 

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java Mon May 11 04:08:29 2009
@@ -151,7 +151,7 @@
         }
         else if ( "reactorProjects".equals( expression ) )
         {
-            value = session.getSortedProjects();
+            value = session.getProjects();
         }
         else if ("mojoExecution".equals(expression))
         {
@@ -246,7 +246,7 @@
                 throw new ExpressionEvaluationException( "Error evaluating plugin parameter expression: " + expression,
                                                          e );
             }
-        }
+        }       
         else if ( "settings".equals( expression ) )
         {
             value = session.getSettings();

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Mon May 11 04:08:29 2009
@@ -20,7 +20,9 @@
 import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import org.apache.maven.artifact.Artifact;
@@ -89,8 +91,8 @@
 
     @Requirement
     private ResolutionErrorHandler resolutionErrorHandler;
-
-    //private static HashMap<String, MavenProject> hm = new HashMap<String, MavenProject>();
+    
+    private Map<File, MavenProject> projectCache = new HashMap<File, MavenProject>();
 
     private MavenProject superProject;
 
@@ -101,6 +103,13 @@
     public MavenProject build( File pomFile, ProjectBuilderConfiguration configuration )
         throws ProjectBuildingException
     {
+        MavenProject project = projectCache.get( pomFile );
+        
+        if ( project != null )
+        {
+            return project;
+        }
+        
         DomainModel domainModel;
 
         try
@@ -124,7 +133,7 @@
         }
         catch ( ProfileActivationException e )
         {
-            throw new ProjectBuildingException( "", "Failed to activate pom profiles." );
+            throw new ProjectBuildingException( "", "Failed to activate pom profiles.", e );
         }
 
         try
@@ -143,56 +152,60 @@
         }
         catch ( IOException e )
         {
-            throw new ProjectBuildingException( "", "" );
+            throw new ProjectBuildingException( "", "", e );
         }
-
-        //Interpolation & Management
-        MavenProject project;
+        
         try
         {
             Model model = interpolateDomainModel( domainModel, configuration, pomFile );
 
-            lifecycleBindingsInjector.injectLifecycleBindings( model );
+            if ( configuration.isProcessPlugins() )
+            {                
+                lifecycleBindingsInjector.injectLifecycleBindings( model );
+            }
 
             ProcessorContext.processManagementNodes( model );
 
             project = this.fromDomainModelToMavenProject( model, domainModel.getParentFile(), configuration, pomFile );
 
-            Collection<Plugin> pluginsFromProject = project.getModel().getBuild().getPlugins();
+            if ( configuration.isProcessPlugins() )
+            {            
+                Collection<Plugin> pluginsFromProject = project.getModel().getBuild().getPlugins();
+
+                // Merge the various sources for mojo configuration:
+                // 1. default values from mojo descriptor
+                // 2. POM values from per-plugin configuration
+                // 3. POM values from per-execution configuration
+                // These configuration sources are given in increasing order of dominance.
 
-            // Merge the various sources for mojo configuration:
-            // 1. default values from mojo descriptor
-            // 2. POM values from per-plugin configuration
-            // 3. POM values from per-execution configuration
-            // These configuration sources are given in increasing order of dominance.
-
-            // push plugin configuration down to executions
-            for ( Plugin buildPlugin : pluginsFromProject )
-            {
-                Xpp3Dom dom = (Xpp3Dom) buildPlugin.getConfiguration();
-
-                if ( dom != null )
+                // push plugin configuration down to executions
+                for ( Plugin buildPlugin : pluginsFromProject )
                 {
-                    for ( PluginExecution e : buildPlugin.getExecutions() )
+                    Xpp3Dom dom = (Xpp3Dom) buildPlugin.getConfiguration();
+
+                    if ( dom != null )
                     {
-                        Xpp3Dom dom1 = Xpp3Dom.mergeXpp3Dom( (Xpp3Dom) e.getConfiguration(), new Xpp3Dom( dom ) );
-                        e.setConfiguration( dom1 );
+                        for ( PluginExecution e : buildPlugin.getExecutions() )
+                        {
+                            Xpp3Dom dom1 = Xpp3Dom.mergeXpp3Dom( (Xpp3Dom) e.getConfiguration(), new Xpp3Dom( dom ) );
+                            e.setConfiguration( dom1 );
+                        }
                     }
                 }
-            }
 
-            // merge in default values from mojo descriptor
-            lifecycle.populateDefaultConfigurationForPlugins( pluginsFromProject, project, configuration.getLocalRepository() );
+                // merge in default values from mojo descriptor
+                lifecycle.populateDefaultConfigurationForPlugins( pluginsFromProject, project, configuration.getLocalRepository() );
 
-            project.getModel().getBuild().setPlugins( new ArrayList<Plugin>( pluginsFromProject ) );
+                project.getModel().getBuild().setPlugins( new ArrayList<Plugin>( pluginsFromProject ) );
+            }
         }
         catch ( IOException e )
         {
-            throw new ProjectBuildingException( "", "" );
+            throw new ProjectBuildingException( "", "", e );
         }
         catch ( LifecycleExecutionException e )
         {
-            throw new ProjectBuildingException( "", e.getMessage() );
+            throw new ProjectBuildingException( "", e.getMessage(), e );
         }
 
         //project.setActiveProfiles( projectProfiles );
@@ -208,6 +221,8 @@
 
         setBuildOutputDirectoryOnParent( project );
 
+        projectCache.put(  pomFile, project );
+        
         return project;
     }
 

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java Mon May 11 04:08:29 2009
@@ -43,6 +43,8 @@
     
     private MavenProject topProject;
     
+    private boolean processPlugins = false;
+    
     public DefaultProjectBuilderConfiguration()
     {        
     }
@@ -117,4 +119,15 @@
         this.listeners = listeners;
         return this;
     }
+
+    public boolean isProcessPlugins()
+    {
+        return processPlugins;
+    }
+
+    public ProjectBuilderConfiguration setProcessPlugins( boolean processPlugins )
+    {
+        this.processPlugins = processPlugins;
+        return this;
+    }
 }

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java Mon May 11 04:08:29 2009
@@ -66,8 +66,6 @@
 import org.apache.maven.model.Scm;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-import org.apache.maven.project.artifact.ActiveProjectArtifact;
-import org.apache.maven.repository.MavenRepositoryWrapper;
 import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
@@ -87,7 +85,7 @@
  * </ol>
  */
 public class MavenProject
-    implements Cloneable, MavenRepositoryWrapper
+    implements Cloneable
 {
     public static final String EMPTY_PROJECT_GROUP_ID = "unknown";
 
@@ -109,8 +107,6 @@
 
     private List<ArtifactRepository> remoteArtifactRepositories;
 
-    private List<MavenProject> collectedProjects = Collections.emptyList();
-
     private List<Artifact> attachedArtifacts;
 
     private MavenProject executionProject;
@@ -121,8 +117,6 @@
 
     private List<String> scriptSourceRoots = new ArrayList<String>();
 
-    private List<ArtifactRepository> pluginArtifactRepositories;
-
     private ArtifactRepository releaseArtifactRepository;
 
     private ArtifactRepository snapshotArtifactRepository;
@@ -508,14 +502,12 @@
 
         for ( Artifact a : getArtifacts() )
         {            
-            System.out.println( "++> " + a.getArtifactId() );
             if ( a.getArtifactHandler().isAddedToClasspath() )
             {
                 // TODO: let the scope handler deal with this
                 if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) || Artifact.SCOPE_PROVIDED.equals( a.getScope() ) || Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
                 {
                     addArtifactPath( a, list );
-                    System.out.println( "--> " + a.getArtifactId() );
                 }
             }
         }
@@ -1323,19 +1315,8 @@
         return build;
     }
 
-    public List<MavenProject> getCollectedProjects()
-    {
-        return collectedProjects;
-    }
-
-    public void setCollectedProjects( List<MavenProject> collectedProjects )
-    {
-        this.collectedProjects = collectedProjects;
-    }
-
     public void setPluginArtifactRepositories( List<ArtifactRepository> pluginArtifactRepositories )
     {
-        this.pluginArtifactRepositories = pluginArtifactRepositories;
     }
 
     /**
@@ -1672,157 +1653,7 @@
     {
         return getBuild() != null ? getBuild().getDefaultGoal() : null;
     }
-    
-    public Artifact find( Artifact artifact )
-    {
-        return replaceWithActiveArtifact( artifact );
-    }
-
-    public Artifact replaceWithActiveArtifact( Artifact pluginArtifact )
-    {
-        if ( ( getProjectReferences() != null ) && !getProjectReferences().isEmpty() )
-        {
-            String refId = getProjectReferenceId( pluginArtifact.getGroupId(), pluginArtifact.getArtifactId(), pluginArtifact.getVersion() );
-            MavenProject ref = getProjectReferences().get( refId );
-            if ( ref != null )
-            {
-                if ( ref.getArtifact() != null
-                    && ref.getArtifact().getDependencyConflictId().equals( pluginArtifact.getDependencyConflictId() ) )
-                {
-                    // if the project artifact doesn't exist, don't use it. We haven't built that far.
-                    if ( ref.getArtifact().getFile() != null && ref.getArtifact().getFile().exists() )
-                    {
-                        // FIXME: Why aren't we using project.getArtifact() for the second parameter here??
-                        Artifact resultArtifact = new ActiveProjectArtifact( ref, pluginArtifact );
-                        return resultArtifact;
-                    }
-                    else
-                    {
-                        logMissingSiblingProjectArtifact( pluginArtifact );
-                    }
-                }
-
-                Artifact attached = findMatchingArtifact( ref.getAttachedArtifacts(), pluginArtifact );
-                if ( attached != null )
-                {
-                    if ( attached.getFile() != null && attached.getFile().exists() )
-                    {
-                        Artifact resultArtifact = ArtifactUtils.copyArtifact( attached );
-                        resultArtifact.setScope( pluginArtifact.getScope() );
-                        return resultArtifact;
-                    }
-                    else
-                    {
-                        logMissingSiblingProjectArtifact( pluginArtifact );
-                    }
-                }
-
-                /**
-                 * Patch/workaround for: MNG-2871
-                 * 
-                 * We want to use orginal artifact (packaging:ejb) when we are resolving ejb-client
-                 * package and we didn't manage to find attached to project one.
-                 * 
-                 * The scenario is such that somebody run "mvn test" in composity project, and
-                 * ejb-client.jar will not be attached to ejb.jar (because it is done in package
-                 * phase)
-                 * 
-                 * We prefer in such a case use orginal sources (of ejb.jar) instead of failure
-                 */
-                if ( ( ref.getArtifactId().equals( pluginArtifact.getArtifactId() ) ) && ( ref.getGroupId().equals( pluginArtifact.getGroupId() ) ) && ( ref.getArtifact().getType().equals( "ejb" ) )
-                    && ( pluginArtifact.getType().equals( "ejb-client" ) ) && ( ( ref.getArtifact().getFile() != null ) && ref.getArtifact().getFile().exists() ) )
-                {
-                    pluginArtifact = new ActiveProjectArtifact( ref, pluginArtifact );
-                    return pluginArtifact;
-                }
-            }
-        }
-        return pluginArtifact;
-    }
-
-    /**
-     * Tries to resolve the specified artifact from the given collection of attached project artifacts.
-     * 
-     * @param artifacts The attached artifacts, may be <code>null</code>.
-     * @param requestedArtifact The artifact to resolve, must not be <code>null</code>.
-     * @return The matching artifact or <code>null</code> if not found.
-     */
-    private Artifact findMatchingArtifact( List<Artifact> artifacts, Artifact requestedArtifact )
-    {
-        if ( artifacts != null && !artifacts.isEmpty() )
-        {
-            // first try matching by dependency conflict id
-            String requestedId = requestedArtifact.getDependencyConflictId();
-            for ( Artifact artifact : artifacts )
-            {
-                if ( requestedId.equals( artifact.getDependencyConflictId() ) )
-                {
-                    return artifact;
-                }
-            }
-
-            // next try matching by repository conflict id
-            requestedId = getRepositoryConflictId( requestedArtifact );
-            for ( Artifact artifact : artifacts )
-            {
-                if ( requestedId.equals( getRepositoryConflictId( artifact ) ) )
-                {
-                    return artifact;
-                }
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Gets the repository conflict id of the specified artifact. Unlike the dependency conflict id, the repository
-     * conflict id uses the artifact file extension instead of the artifact type. Hence, the repository conflict id more
-     * closely reflects the identity of artifacts as perceived by a repository.
-     * 
-     * @param artifact The artifact, must not be <code>null</code>.
-     * @return The repository conflict id, never <code>null</code>.
-     */
-    private String getRepositoryConflictId( Artifact artifact )
-    {
-        StringBuffer buffer = new StringBuffer( 128 );
-        buffer.append( artifact.getGroupId() );
-        buffer.append( ':' ).append( artifact.getArtifactId() );
-        if ( artifact.getArtifactHandler() != null )
-        {
-            buffer.append( ':' ).append( artifact.getArtifactHandler().getExtension() );
-        }
-        else
-        {
-            buffer.append( ':' ).append( artifact.getType() );
-        }
-        if ( artifact.hasClassifier() )
-        {
-            buffer.append( ':' ).append( artifact.getClassifier() );
-        }
-        return buffer.toString();
-    }
-
-    private void logMissingSiblingProjectArtifact( Artifact artifact )
-    {
-        /* TODO
-        if ( logger == null )
-        {
-            return;
-        }
-        
-        StringBuffer message = new StringBuffer();
-        message.append( "A dependency of the current project (or of one the plugins used in its build) was found in the reactor, " );
-        message.append( "\nbut had not been built at the time it was requested. It will be resolved from the repository instead." );
-        message.append( "\n\nCurrent Project: " ).append( getName() );
-        message.append( "\nRequested Dependency: " ).append( artifact.getId() );
-        message.append( "\n\nNOTE: You may need to run this build to the 'compile' lifecycle phase, or farther, in order to build the dependency artifact." );
-        message.append( "\n" );
-        
-        logger.warn( message.toString() );
-        */
-    }
-
+   
     public void clearExecutionProject()
     {
         if ( !previousExecutionProjects.isEmpty() )
@@ -1990,11 +1821,6 @@
             setPluginArtifactRepositories( ( Collections.unmodifiableList( project.getPluginArtifactRepositories() ) ) );
         }
 
-        if ( project.getCollectedProjects() != null )
-        {
-            setCollectedProjects( ( Collections.unmodifiableList( project.getCollectedProjects() ) ) );
-        }
-
         if ( project.getActiveProfiles() != null )
         {
             setActiveProfiles( ( Collections.unmodifiableList( project.getActiveProfiles() ) ) );

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java Mon May 11 04:08:29 2009
@@ -8,24 +8,28 @@
 
 public interface ProjectBuilderConfiguration
 {
-    ArtifactRepository getLocalRepository();
+    ProjectBuilderConfiguration setLocalRepository( ArtifactRepository localRepository );
     
-    List<ArtifactRepository> getRemoteRepositories();
+    ArtifactRepository getLocalRepository();
 
-    ProfileManager getGlobalProfileManager();
+    ProjectBuilderConfiguration setRemoteRepositories( List<ArtifactRepository> remoteRepositories );
 
-    Properties getExecutionProperties();
+    List<ArtifactRepository> getRemoteRepositories();
 
     ProjectBuilderConfiguration setGlobalProfileManager( ProfileManager globalProfileManager );
 
-    ProjectBuilderConfiguration setLocalRepository( ArtifactRepository localRepository );
-
-    ProjectBuilderConfiguration setRemoteRepositories( List<ArtifactRepository> remoteRepositories );
+    ProfileManager getGlobalProfileManager();
 
     ProjectBuilderConfiguration setExecutionProperties( Properties executionProperties );
-    
+
+    Properties getExecutionProperties();
+
+    void setTopLevelProjectForReactor(MavenProject mavenProject);
+
     MavenProject getTopLevelProjectFromReactor();
+        
+    ProjectBuilderConfiguration setProcessPlugins( boolean processPlugins );
     
-    void setTopLevelProjectForReactor(MavenProject mavenProject);
+    boolean isProcessPlugins();
     
 }

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingException.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingException.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingException.java Mon May 11 04:08:29 2009
@@ -41,9 +41,9 @@
 
     private File pomFile;
 
-    public ProjectBuildingException( String projectId, String message )
+    public ProjectBuildingException( String projectId, String message, Throwable cause )
     {
-        super( message );
+        super( message, cause );
         this.projectId = projectId;
     }
 

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Mon May 11 04:08:29 2009
@@ -79,6 +79,8 @@
         ProjectBuilderConfiguration configuration = new DefaultProjectBuilderConfiguration();
         configuration.setLocalRepository( localRepository );
         configuration.setRemoteRepositories( remoteRepositories );
+        // We don't care about processing plugins here, all we're interested in is the dependencies.
+        configuration.setProcessPlugins( false );
 
         MavenProject project;
 
@@ -96,9 +98,7 @@
 
                     if ( effectiveScope != null )
                     {
-                        Artifact dependencyArtifact =
-                            repositorySystem.createArtifact( d.getGroupId(), d.getArtifactId(), d.getVersion(),
-                                                             effectiveScope, d.getType() );
+                        Artifact dependencyArtifact = repositorySystem.createArtifact( d.getGroupId(), d.getArtifactId(), d.getVersion(), effectiveScope, d.getType() );
 
                         artifacts.add( dependencyArtifact );
                     }
@@ -193,10 +193,13 @@
     private List<ArtifactVersion> retrieveAvailableVersionsFromMetadata( Metadata repoMetadata )
     {
         List<ArtifactVersion> versions;
+        
         if ( ( repoMetadata != null ) && ( repoMetadata.getVersioning() != null ) )
         {
             List<String> metadataVersions = repoMetadata.getVersioning().getVersions();
+            
             versions = new ArrayList<ArtifactVersion>( metadataVersions.size() );
+            
             for ( String version : metadataVersions )
             {
                 versions.add( new DefaultArtifactVersion( version ) );

Modified: maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java (original)
+++ maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java Mon May 11 04:08:29 2009
@@ -16,7 +16,6 @@
  */
 
 import java.io.File;
-import java.io.IOException;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -37,18 +36,13 @@
 import org.apache.maven.repository.RepositorySystem;
 import org.apache.maven.settings.MavenSettingsBuilder;
 import org.apache.maven.settings.Mirror;
-import org.apache.maven.settings.Proxy;
-import org.apache.maven.settings.Server;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.SettingsUtils;
 import org.apache.maven.toolchain.ToolchainsBuilder;
-import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.StringUtils;
-import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
-import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
 
 /**
  * Things that we deal with in this populator to ensure that we have a valid
@@ -63,9 +57,7 @@
     extends AbstractLogEnabled
     implements MavenExecutionRequestPopulator
 {
-    @Requirement
-    private PlexusContainer container;
-
+    //TODO: this needs to be pushed up to the front-end
     @Requirement
     private MavenSettingsBuilder settingsBuilder;
 
@@ -75,10 +67,6 @@
     @Requirement
     private ToolchainsBuilder toolchainsBuilder;
 
-    // 2009-03-05 Oleg: this component is defined sub-classed in this package
-    @Requirement(hint = "maven")
-    private SecDispatcher securityDispatcher;
-
     public MavenExecutionRequest populateDefaults( MavenExecutionRequest request, Configuration configuration )
         throws MavenEmbedderException
     {
@@ -226,6 +214,7 @@
     {
         Settings settings = request.getSettings();
 
+        /*
         Proxy proxy = settings.getActiveProxy();
 
         if ( proxy != null )
@@ -257,6 +246,7 @@
 
             repositorySystem.addPermissionInfo( server.getId(), server.getFilePermissions(), server.getDirectoryPermissions() );
         }
+        */
 
         for ( Mirror mirror : settings.getMirrors() )
         {
@@ -367,9 +357,9 @@
 
         try
         {
-            return repositorySystem.createLocalRepository( localRepositoryPath, RepositorySystem.DEFAULT_LOCAL_REPO_ID );
+            return repositorySystem.createLocalRepository( new File( localRepositoryPath ) );
         }
-        catch ( IOException e )
+        catch ( InvalidRepositoryException e )
         {
             throw new MavenEmbedderException( "Cannot create local repository.", e );
         }

Modified: maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java (original)
+++ maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java Mon May 11 04:08:29 2009
@@ -18,33 +18,23 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.apache.maven.artifact.resolver.ArtifactCollector;
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
-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.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.model.Dependency;
-import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.Repository;
 import org.apache.maven.model.RepositoryPolicy;
@@ -53,7 +43,6 @@
 import org.apache.maven.wagon.repository.RepositoryPermissions;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.util.StringUtils;
 
 /**
  * @author Jason van Zyl
@@ -63,9 +52,6 @@
     implements RepositorySystem
 {
     @Requirement
-    private WagonManager wagonManager;
-
-    @Requirement
     private ArtifactFactory artifactFactory;
 
     @Requirement
@@ -78,9 +64,6 @@
     private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
 
     @Requirement
-    private ArtifactCollector artifactCollector;
-    
-    @Requirement
     private MirrorBuilder mirrorBuilder;
 
     private Map<String, ProxyInfo> proxies = new HashMap<String, ProxyInfo>();
@@ -281,14 +264,11 @@
                                                  String releaseUpdates, boolean snapshots, String snapshotUpdates,
                                                  String checksumPolicy )
     {
-        ArtifactRepositoryPolicy snapshotsPolicy =
-            new ArtifactRepositoryPolicy( snapshots, snapshotUpdates, checksumPolicy );
+        ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy( snapshots, snapshotUpdates, checksumPolicy );
 
-        ArtifactRepositoryPolicy releasesPolicy =
-            new ArtifactRepositoryPolicy( releases, releaseUpdates, checksumPolicy );
+        ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( releases, releaseUpdates, checksumPolicy );
 
-        return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout,
-                                                                   snapshotsPolicy, releasesPolicy );
+        return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, releasesPolicy );
     }
 
     public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
@@ -296,16 +276,7 @@
         return artifactResolver.resolve( request );
     }
 
-    public void setOnline( boolean online )
-    {
-        artifactResolver.setOnline( online );
-    }
-
-    public boolean isOnline()
-    {
-        return artifactResolver.isOnline();
-    }
-
+    /*
     public void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts )
     {
         ProxyInfo proxyInfo = new ProxyInfo();
@@ -320,7 +291,9 @@
 
         wagonManager.addProxy( protocol, host, port, username, password, nonProxyHosts );
     }
+    */
 
+    /*
     public void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, String passphrase )
     {
         AuthenticationInfo authInfo = new AuthenticationInfo();
@@ -333,7 +306,9 @@
 
         wagonManager.addAuthenticationInfo( repositoryId, username, password, privateKey, passphrase );
     }
+    */
 
+    /*
     public void addPermissionInfo( String repositoryId, String filePermissions, String directoryPermissions )
     {
         RepositoryPermissions permissions = new RepositoryPermissions();
@@ -357,6 +332,7 @@
             serverPermissionsMap.put( repositoryId, permissions );
         }
     }
+    */
 
     // Mirror 
 

Modified: maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/RepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/RepositorySystem.java?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/RepositorySystem.java (original)
+++ maven/components/branches/MNG-2766/maven-repository/src/main/java/org/apache/maven/repository/RepositorySystem.java Mon May 11 04:08:29 2009
@@ -34,7 +34,6 @@
  */
 public interface RepositorySystem
 {
-    // Default local repository 
     static final String DEFAULT_LOCAL_REPO_ID = "local";
     
     static final String userHome = System.getProperty( "user.home" );
@@ -43,7 +42,6 @@
     
     static final File defaultUserLocalRepository = new File( userMavenConfigurationHome, "repository" );
     
-    // Default remote repository
     static final String DEFAULT_REMOTE_REPO_ID = "central";
 
     static final String DEFAULT_REMOTE_REPO_URL = "http://repo1.maven.org/maven2";
@@ -55,18 +53,10 @@
     Artifact createPluginArtifact( Plugin plugin );
     
     Artifact createDependencyArtifact( Dependency dependency );
-    
-    //TODO: this needs a project to do anything useful
-    //Set<Artifact> createArtifacts();
-    
-    // maven model
+        
     ArtifactRepository buildArtifactRepository( Repository repository )
         throws InvalidRepositoryException;
         
-    //!!jvz Change this to use a file
-    ArtifactRepository createLocalRepository( String url, String repositoryId )
-        throws IOException;
-
     ArtifactRepository createDefaultRemoteRepository()
         throws InvalidRepositoryException;    
     
@@ -76,9 +66,6 @@
     ArtifactRepository createLocalRepository( File localRepository )
         throws InvalidRepositoryException;
     
-    //correct all uses to let the resolver find the deps of the root and 
-    //pass in overrides where necessary
-    
     ArtifactResolutionResult resolve( ArtifactResolutionRequest request );
 
     /**
@@ -92,15 +79,8 @@
      */
     MetadataResolutionResult resolveMetadata( MetadataResolutionRequest request );
            
-    //REMOVE
-    // These should be associated with repositories and the repositories should be examine as part of metadatda and
-    // artifact resolution. So these methods should also not be here.
-    void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts );
-    void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, String passphrase );
-    void addPermissionInfo( String repositoryId, String filePermissions, String directoryPermissions );
-    
-    // Mirrors
-    
+    //TODO: remove the request should already be processed to select the mirror for the request instead of the processing happen internally.
+    // Mirrors    
     void addMirror( String id, String mirrorOf, String url );        
     List<ArtifactRepository> getMirrors( List<ArtifactRepository> repositories );    
 }

Modified: maven/components/branches/MNG-2766/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/pom.xml?rev=773456&r1=773455&r2=773456&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/pom.xml (original)
+++ maven/components/branches/MNG-2766/pom.xml Mon May 11 04:08:29 2009
@@ -22,16 +22,13 @@
 <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>