You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/06/21 17:32:04 UTC

svn commit: r191667 - in /maven/components/trunk: maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/ maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/ maven-artifact-manager/src/test/java/org/apache/maven/artifact/re...

Author: brett
Date: Tue Jun 21 08:32:02 2005
New Revision: 191667

URL: http://svn.apache.org/viewcvs?rev=191667&view=rev
Log:
refactoring of the resolveTransitiveDependencies call. 
simplified by removing a bunch of duplicated code in addArtifacts - no need to merge, you have the full list. 
separated the original artifacts (dependency artifacts) from the resolved artifacts (getArtifacts)

Added:
    maven/components/trunk/maven-artifact/src/test/
    maven/components/trunk/maven-artifact/src/test/java/
    maven/components/trunk/maven-artifact/src/test/java/org/
    maven/components/trunk/maven-artifact/src/test/java/org/apache/
    maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/
    maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/
    maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/
    maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java   (with props)
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/jars/maven-core-98.0.jar
      - copied unchanged from r191631, maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/jars/maven-core-2.0-SNAPSHOT.jar
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-98.0.pom
      - copied, changed from r191631, maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-2.0-SNAPSHOT.pom
Removed:
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/jars/maven-core-2.0-SNAPSHOT.jar
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-2.0-SNAPSHOT.pom
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/resources/
Modified:
    maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/components/trunk/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-plugins/maven-assembly-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-deploy-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/classpath
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/project.xml
    maven/components/trunk/maven-plugins/maven-idea-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-install-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-jar-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-surefire-plugin/pom.xml
    maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java

Modified: maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java (original)
+++ maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java Tue Jun 21 08:32:02 2005
@@ -92,8 +92,12 @@
         ArtifactResolutionResult result;
         try
         {
+            Artifact pomArtifact = artifactFactory.createArtifact( pom.getGroupId(), pom.getArtifactId(),
+                                                                   pom.getVersion(), null, pom.getPackaging() );
+
             List remoteArtifactRepositories = createRemoteArtifactRepositories( getRemoteRepositories() );
-            result = resolver.resolveTransitively( artifacts, remoteArtifactRepositories, localRepo, metadataSource );
+            result = resolver.resolveTransitively( artifacts, pomArtifact, remoteArtifactRepositories, localRepo,
+                                                   metadataSource );
         }
         catch ( ArtifactResolutionException e )
         {

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Tue Jun 21 08:32:02 2005
@@ -130,19 +130,32 @@
         }
     }
 
-    // ----------------------------------------------------------------------
-    // Transitive modes
-    // ----------------------------------------------------------------------
+    public ArtifactResolutionResult resolveTransitively( Artifact artifact, List remoteRepositories,
+                                                         ArtifactRepository localRepository,
+                                                         ArtifactMetadataSource source )
+        throws ArtifactResolutionException
+    {
+        return resolveTransitively( artifact, remoteRepositories, localRepository, source, null );
+    }
 
-    public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteRepositories,
+    public ArtifactResolutionResult resolveTransitively( Artifact artifact, List remoteRepositories,
                                                          ArtifactRepository localRepository,
                                                          ArtifactMetadataSource source, ArtifactFilter filter )
         throws ArtifactResolutionException
     {
+        return resolveTransitively( Collections.singleton( artifact ), null, remoteRepositories, localRepository,
+                                    source, filter );
+    }
+
+    public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+                                                         List remoteRepositories, ArtifactRepository localRepository,
+                                                         ArtifactMetadataSource source, ArtifactFilter filter )
+        throws ArtifactResolutionException
+    {
         ArtifactResolutionResult artifactResolutionResult;
 
-        artifactResolutionResult = artifactCollector.collect( artifacts, localRepository, remoteRepositories, source,
-                                                              filter, artifactFactory );
+        artifactResolutionResult = artifactCollector.collect( artifacts, originatingArtifact, localRepository,
+                                                              remoteRepositories, source, filter, artifactFactory );
 
         for ( Iterator i = artifactResolutionResult.getArtifacts().values().iterator(); i.hasNext(); )
         {
@@ -153,19 +166,12 @@
         return artifactResolutionResult;
     }
 
-    public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteRepositories,
-                                                         ArtifactRepository localRepository,
+    public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+                                                         List remoteRepositories, ArtifactRepository localRepository,
                                                          ArtifactMetadataSource source )
         throws ArtifactResolutionException
     {
-        return resolveTransitively( artifacts, remoteRepositories, localRepository, source, null );
+        return resolveTransitively( artifacts, originatingArtifact, remoteRepositories, localRepository, source, null );
     }
 
-    public ArtifactResolutionResult resolveTransitively( Artifact artifact, List remoteRepositories,
-                                                         ArtifactRepository localRepository,
-                                                         ArtifactMetadataSource source )
-        throws ArtifactResolutionException
-    {
-        return resolveTransitively( Collections.singleton( artifact ), remoteRepositories, localRepository, source );
-    }
 }

Modified: maven/components/trunk/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java Tue Jun 21 08:32:02 2005
@@ -22,6 +22,7 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -41,12 +42,16 @@
 {
     private ArtifactResolver artifactResolver;
 
+    private Artifact projectArtifact;
+
     protected void setUp()
         throws Exception
     {
         super.setUp();
 
         artifactResolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
+
+        projectArtifact = createLocalArtifact( "project", "3.0" );
     }
 
     protected String component()
@@ -103,7 +108,8 @@
             }
         };
 
-        ArtifactResolutionResult result = artifactResolver.resolveTransitively( g, remoteRepositories(),
+        ArtifactResolutionResult result = artifactResolver.resolveTransitively( Collections.singleton( g ),
+                                                                                projectArtifact, remoteRepositories(),
                                                                                 localRepository(), mds );
 
         assertEquals( 2, result.getArtifacts().size() );
@@ -141,7 +147,8 @@
             }
         };
 
-        ArtifactResolutionResult result = artifactResolver.resolveTransitively( i, remoteRepositories(),
+        ArtifactResolutionResult result = artifactResolver.resolveTransitively( Collections.singleton( i ),
+                                                                                projectArtifact, remoteRepositories(),
                                                                                 localRepository(), mds );
 
         assertEquals( 2, result.getArtifacts().size() );

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java Tue Jun 21 08:32:02 2005
@@ -1,19 +1,22 @@
-package org.apache.maven.artifact.resolver;/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
+package org.apache.maven.artifact.resolver;
+
+/*
+* Copyright 2001-2005 The Apache Software Foundation.
+*
+* Licensed 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.
+*/
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -23,15 +26,16 @@
 import java.util.Set;
 
 /**
- * TODO: describe
+ * Artifact collector - takes a set of original artifacts and resolves all of the best versions to use
+ * along with their metadata. No artifacts are downloaded.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
  */
 public interface ArtifactCollector
 {
-    ArtifactResolutionResult collect( Set artifacts, ArtifactRepository localRepository, List remoteRepositories,
-                                      ArtifactMetadataSource source, ArtifactFilter filter,
+    ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact, ArtifactRepository localRepository,
+                                      List remoteRepositories, ArtifactMetadataSource source, ArtifactFilter filter,
                                       ArtifactFactory artifactFactory )
         throws ArtifactResolutionException;
 }

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java Tue Jun 21 08:32:02 2005
@@ -43,11 +43,16 @@
                                                   ArtifactRepository localRepository, ArtifactMetadataSource source )
         throws ArtifactResolutionException;
 
-    ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteRepositories,
+    ArtifactResolutionResult resolveTransitively( Artifact artifact, List remoteRepositories,
+                                                  ArtifactRepository localRepository, ArtifactMetadataSource source,
+                                                  ArtifactFilter filter )
+        throws ArtifactResolutionException;
+
+    ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, List remoteRepositories,
                                                   ArtifactRepository localRepository, ArtifactMetadataSource source )
         throws ArtifactResolutionException;
 
-    ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteRepositories,
+    ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, List remoteRepositories,
                                                   ArtifactRepository localRepository, ArtifactMetadataSource source,
                                                   ArtifactFilter filter )
         throws ArtifactResolutionException;

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Tue Jun 21 08:32:02 2005
@@ -31,7 +31,7 @@
 import java.util.Set;
 
 /**
- * TODO: describe
+ * Default implementation of the artifact collector.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
@@ -39,7 +39,8 @@
 public class DefaultArtifactCollector
     implements ArtifactCollector
 {
-    public ArtifactResolutionResult collect( Set artifacts, ArtifactRepository localRepository, List remoteRepositories,
+    public ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact,
+                                             ArtifactRepository localRepository, List remoteRepositories,
                                              ArtifactMetadataSource source, ArtifactFilter filter,
                                              ArtifactFactory artifactFactory )
         throws ArtifactResolutionException
@@ -91,12 +92,10 @@
 
                     if ( updateScope )
                     {
-                        // TODO: Artifact factory?
-                        // TODO: [jc] Is this a better way to centralize artifact construction here?
-
-                        Artifact artifact = artifactFactory.createArtifact(
-                            knownArtifact.getGroupId(), knownArtifact.getArtifactId(), knownVersion,
-                            newArtifact.getScope(), knownArtifact.getType() );
+                        Artifact artifact = artifactFactory.createArtifact( knownArtifact.getGroupId(),
+                                                                            knownArtifact.getArtifactId(), knownVersion,
+                                                                            newArtifact.getScope(),
+                                                                            knownArtifact.getType() );
                         resolvedArtifacts.put( artifact.getDependencyConflictId(), artifact );
                     }
                 }

Added: maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java?rev=191667&view=auto
==============================================================================
--- maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (added)
+++ maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java Tue Jun 21 08:32:02 2005
@@ -0,0 +1,48 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import junit.framework.TestCase;
+
+/**
+ * Test the default artifact collector.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class DefaultArtifactCollectorTest
+    extends TestCase
+{
+    private ArtifactCollector artifactCollector;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        this.artifactCollector = new DefaultArtifactCollector();
+    }
+
+    public void testCircularDependencyNotIncludingCurrentProject()
+    {
+
+    }
+
+    public void testCircularDependencyIncludingCurrentProject()
+    {
+
+    }
+}

Propchange: maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Tue Jun 21 08:32:02 2005
@@ -90,11 +90,6 @@
         return localRepository;
     }
 
-    public List getRemoteRepositories()
-    {
-        return project.getRemoteArtifactRepositories();
-    }
-
     public List getGoals()
     {
         return goals;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=191667&r1=191666&r2=191667&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 Tue Jun 21 08:32:02 2005
@@ -173,7 +173,7 @@
     }
 
     public PluginDescriptor verifyPlugin( String groupId, String artifactId, String version, MavenProject project,
-                                         Settings settings, ArtifactRepository localRepository )
+                                          Settings settings, ArtifactRepository localRepository )
         throws ArtifactResolutionException, PluginManagerException, PluginVersionResolutionException
     {
         String pluginKey = groupId + ":" + artifactId;
@@ -222,14 +222,15 @@
             catch ( PlexusContainerException e )
             {
                 throw new PluginManagerException(
-                                                  "Error occurred in the artifact container attempting to download plugin "
-                                                      + groupId + ":" + artifactId, e );
+                    "Error occurred in the artifact container attempting to download plugin " + groupId + ":" +
+                        artifactId, e );
             }
             catch ( ArtifactResolutionException e )
             {
-                if ( ( groupId == null || artifactId == null || version == null || ( groupId.equals( e.getGroupId() )
-                    && artifactId.equals( e.getArtifactId() ) && version.equals( e.getVersion() ) ) )
-                    && "maven-plugin".equals( e.getType() ) )
+                if (
+                    ( groupId == null || artifactId == null || version == null ||
+                        ( groupId.equals( e.getGroupId() ) && artifactId.equals( e.getArtifactId() ) &&
+                            version.equals( e.getVersion() ) ) ) && "maven-plugin".equals( e.getType() ) )
                 {
                     throw new PluginNotFoundException( e );
                 }
@@ -240,8 +241,8 @@
             }
             catch ( ComponentLookupException e )
             {
-                throw new PluginManagerException( "Internal configuration error while retrieving " + groupId + ":"
-                    + artifactId, e );
+                throw new PluginManagerException(
+                    "Internal configuration error while retrieving " + groupId + ":" + artifactId, e );
             }
             finally
             {
@@ -256,7 +257,7 @@
     }
 
     protected void addPlugin( String pluginKey, Artifact pluginArtifact, MavenProject project,
-                             ArtifactRepository localRepository )
+                              ArtifactRepository localRepository )
         throws ArtifactResolutionException, ComponentLookupException, PlexusContainerException
     {
         ArtifactResolver artifactResolver = null;
@@ -277,7 +278,7 @@
             addedPlugin.setClassRealm( child.getContainerRealm() );
 
             // we're only setting the plugin's artifact itself as the artifact list, to allow it to be retrieved
-            // later when the plugin is first invoked. Retrieving this artifact will in turn allow us to 
+            // later when the plugin is first invoked. Retrieving this artifact will in turn allow us to
             // transitively resolve its dependencies, and add them to the plugin container...
             addedPlugin.setArtifacts( Collections.singletonList( pluginArtifact ) );
         }
@@ -425,7 +426,7 @@
     }
 
     public List getReports( String groupId, String artifactId, String version, ReportSet reportSet,
-                           MavenSession session, MavenProject project )
+                            MavenSession session, MavenProject project )
         throws PluginManagerException, PluginVersionResolutionException, PluginConfigurationException
     {
         PluginDescriptor pluginDescriptor = getPluginDescriptor( groupId, artifactId, version );
@@ -478,14 +479,14 @@
     }
 
     private Mojo getConfiguredMojo( MojoDescriptor mojoDescriptor, MavenSession session, Xpp3Dom dom,
-                                   MavenProject project )
+                                    MavenProject project )
         throws ComponentLookupException, PluginConfigurationException, PluginManagerException
     {
         PlexusContainer pluginContainer = getPluginContainer( mojoDescriptor.getPluginDescriptor() );
 
         PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor();
 
-        // if this is the first time this plugin has been used, the plugin's container will only 
+        // if this is the first time this plugin has been used, the plugin's container will only
         // contain the plugin's artifact in isolation; we need to finish resolving the plugin's
         // dependencies, and add them to the container.
         ensurePluginContainerIsComplete( pluginDescriptor, pluginContainer, project, session );
@@ -519,11 +520,13 @@
                                                                                           pathTranslator, getLogger(),
                                                                                           project );
 
-        PlexusConfiguration extractedMojoConfiguration = extractMojoConfiguration( mergedConfiguration, mojoDescriptor );
+        PlexusConfiguration extractedMojoConfiguration = extractMojoConfiguration( mergedConfiguration,
+                                                                                   mojoDescriptor );
 
         checkRequiredParameters( mojoDescriptor, extractedMojoConfiguration, expressionEvaluator, plugin );
 
-        populatePluginFields( plugin, mojoDescriptor, extractedMojoConfiguration, pluginContainer, expressionEvaluator );
+        populatePluginFields( plugin, mojoDescriptor, extractedMojoConfiguration, pluginContainer,
+                              expressionEvaluator );
         return plugin;
     }
 
@@ -551,10 +554,12 @@
                 MavenMetadataSource metadataSource = new MavenMetadataSource( artifactResolver, mavenProjectBuilder,
                                                                               artifactFactory );
 
-                ArtifactResolutionResult result = artifactResolver.resolveTransitively( Collections
-                    .singleton( pluginArtifact ), project.getRemoteArtifactRepositories(),
+                List remoteArtifactRepositories = project.getRemoteArtifactRepositories();
+                ArtifactResolutionResult result = artifactResolver.resolveTransitively( pluginArtifact,
+                                                                                        remoteArtifactRepositories,
                                                                                         session.getLocalRepository(),
-                                                                                        metadataSource, artifactFilter );
+                                                                                        metadataSource,
+                                                                                        artifactFilter );
 
                 Map resolved = result.getArtifacts();
 
@@ -577,9 +582,8 @@
                 ArtifactFilter distroProvidedFilter = new InversionArtifactFilter( artifactFilter );
 
                 ArtifactResolutionResult distroProvidedResult = artifactResolver
-                    .resolveTransitively( Collections.singleton( pluginArtifact ), project
-                        .getRemoteArtifactRepositories(), session.getLocalRepository(), metadataSource,
-                                          distroProvidedFilter );
+                    .resolveTransitively( pluginArtifact, remoteArtifactRepositories, session.getLocalRepository(),
+                                          metadataSource, distroProvidedFilter );
 
                 Map distroProvided = distroProvidedResult.getArtifacts();
 
@@ -617,7 +621,7 @@
     }
 
     private PlexusConfiguration extractMojoConfiguration( PlexusConfiguration mergedConfiguration,
-                                                         MojoDescriptor mojoDescriptor )
+                                                          MojoDescriptor mojoDescriptor )
     {
         Map parameterMap = mojoDescriptor.getParameterMap();
 
@@ -638,8 +642,8 @@
                 // TODO: I defy anyone to find these messages in the '-X' output! Do we need a new log level?
                 // ideally, this would be elevated above the true debug output, but below the default INFO level...
                 getLogger().debug(
-                                   "*** WARNING: Configuration \'" + child.getName() + "\' is not used in goal \'"
-                                       + mojoDescriptor.getFullGoalName() + "; this may indicate a typo... ***" );
+                    "*** WARNING: Configuration \'" + child.getName() + "\' is not used in goal \'" +
+                        mojoDescriptor.getFullGoalName() + "; this may indicate a typo... ***" );
             }
         }
 
@@ -647,7 +651,7 @@
     }
 
     private void checkRequiredParameters( MojoDescriptor goal, PlexusConfiguration configuration,
-                                         ExpressionEvaluator expressionEvaluator, Mojo plugin )
+                                          ExpressionEvaluator expressionEvaluator, Mojo plugin )
         throws PluginConfigurationException
     {
         // TODO: this should be built in to the configurator, as we presently double process the expressions
@@ -720,8 +724,8 @@
                         if ( fieldValue != null )
                         {
                             getLogger().warn(
-                                              "DEPRECATED: using default-value to set the default value of field '"
-                                                  + parameter.getName() + "'" );
+                                "DEPRECATED: using default-value to set the default value of field '" +
+                                    parameter.getName() + "'" );
                         }
                     }
                     catch ( NoSuchFieldException e )
@@ -837,7 +841,7 @@
     // ----------------------------------------------------------------------
 
     private void populatePluginFields( Mojo plugin, MojoDescriptor mojoDescriptor, PlexusConfiguration configuration,
-                                      PlexusContainer pluginContainer, ExpressionEvaluator expressionEvaluator )
+                                       PlexusContainer pluginContainer, ExpressionEvaluator expressionEvaluator )
         throws PluginConfigurationException
     {
         ComponentConfigurator configurator = null;
@@ -869,8 +873,7 @@
         catch ( ComponentLookupException e )
         {
             throw new PluginConfigurationException(
-                                                    "Unable to retrieve component configurator for plugin configuration",
-                                                    e );
+                "Unable to retrieve component configurator for plugin configuration", e );
         }
         finally
         {
@@ -910,7 +913,7 @@
     }
 
     public static String createPluginParameterRequiredMessage( MojoDescriptor mojo, Parameter parameter,
-                                                              String expression )
+                                                               String expression )
     {
         StringBuffer message = new StringBuffer();
 
@@ -966,25 +969,27 @@
     public void initialize()
     {
         // TODO: configure this from bootstrap or scan lib
+        Set artifacts = new HashSet();
+        artifacts.add( "classworlds" );
+        artifacts.add( "maven-artifact" );
+        artifacts.add( "maven-artifact-manager" );
+        artifacts.add( "maven-core" );
+        artifacts.add( "maven-model" );
+        artifacts.add( "maven-monitor" );
+        artifacts.add( "maven-plugin-api" );
+        artifacts.add( "maven-plugin-descriptor" );
+        artifacts.add( "maven-project" );
+        artifacts.add( "maven-settings" );
+        artifacts.add( "plexus-container-default" );
+        artifacts.add( "plexus-utils" );
+        artifacts.add( "wagon-provider-api" );
+        artifacts.add( "wagon-ssh" );
+        artifacts.add( "wagon-http-lightweight" );
+        artifacts.add( "wagon-file" );
         // TODO: remove doxia
-        artifactFilter = new ExclusionSetFilter( new String[] {
-            "classworlds",
-            "maven-artifact",
-            "maven-core",
-            "maven-model",
-            "maven-monitor",
-            "maven-plugin-api",
-            "maven-plugin-descriptor",
-            "maven-project",
-            "maven-settings",
-            "plexus-container-default",
-            "plexus-utils",
-            "wagon-provider-api",
-            "wagon-ssh",
-            "wagon-http-lightweight",
-            "wagon-file",
-            "doxia-core",
-            "maven-reporting-api" } );
+        artifacts.add( "doxia-core" );
+        artifacts.add( "maven-reporting-api" );
+        artifactFilter = new ExclusionSetFilter( artifacts );
     }
 
     // ----------------------------------------------------------------------
@@ -992,8 +997,8 @@
     // ----------------------------------------------------------------------
 
     private void resolveTransitiveDependencies( MavenSession context, ArtifactResolver artifactResolver,
-                                               MavenProjectBuilder mavenProjectBuilder, String scope,
-                                               ArtifactFactory artifactFactory, MavenProject project )
+                                                MavenProjectBuilder mavenProjectBuilder, String scope,
+                                                ArtifactFactory artifactFactory, MavenProject project )
         throws ArtifactResolutionException
     {
         MavenMetadataSource sourceReader = new MavenMetadataSource( artifactResolver, mavenProjectBuilder,
@@ -1003,10 +1008,19 @@
 
         boolean systemOnline = !context.getSettings().isOffline();
 
-        ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getArtifacts(), context
-            .getRemoteRepositories(), context.getLocalRepository(), sourceReader, filter );
+        // TODO: such a call in MavenMetadataSource too - packaging not really the intention of type
+        Artifact artifact = artifactFactory.createArtifact( project.getGroupId(), project.getArtifactId(),
+                                                            project.getVersion(), null, project.getPackaging() );
+
+        // TODO: we don't need to resolve over and over again, as long as we are sure that the parameters are the same
+        // check this with yourkit as a hot spot.
+        ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getDependencyArtifacts(),
+                                                                                artifact,
+                                                                                project.getRemoteArtifactRepositories(),
+                                                                                context.getLocalRepository(),
+                                                                                sourceReader, filter );
 
-        project.addArtifacts( result.getArtifacts().values(), artifactFactory );
+        project.setArtifacts( new HashSet( result.getArtifacts().values() ) );
     }
 
     // ----------------------------------------------------------------------
@@ -1016,27 +1030,26 @@
     private void downloadDependencies( MavenProject project, MavenSession context, ArtifactResolver artifactResolver )
         throws ArtifactResolutionException
     {
+        ArtifactRepository localRepository = context.getLocalRepository();
+        List remoteArtifactRepositories = project.getRemoteArtifactRepositories();
+
         for ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); )
         {
             Artifact artifact = (Artifact) it.next();
 
-            // TODO: should I get the modified artifacts back into the project?
-            artifactResolver.resolve( artifact, context.getRemoteRepositories(), context.getLocalRepository() );
+            artifactResolver.resolve( artifact, remoteArtifactRepositories, localRepository );
         }
 
-        Set pluginArtifacts = new HashSet();
+        // TODO: is this really necessary?
         for ( Iterator it = project.getPluginArtifacts().iterator(); it.hasNext(); )
         {
             Artifact artifact = (Artifact) it.next();
 
-            artifactResolver.resolve( artifact, context.getRemoteRepositories(), context.getLocalRepository() );
-
-            pluginArtifacts.add( artifact );
+            artifactResolver.resolve( artifact, remoteArtifactRepositories, localRepository );
         }
-        project.setPluginArtifacts( pluginArtifacts );
 
-        artifactResolver.resolve( project.getParentArtifact(), context.getRemoteRepositories(), context
-            .getLocalRepository() );
+        // TODO: is this really necessary?
+        artifactResolver.resolve( project.getParentArtifact(), remoteArtifactRepositories, localRepository );
     }
 
 }

Modified: maven/components/trunk/maven-plugins/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-assembly-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-assembly-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-assembly-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -13,7 +13,7 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>plexus</groupId>

Modified: maven/components/trunk/maven-plugins/maven-deploy-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-deploy-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-deploy-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-deploy-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -14,12 +14,17 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-manager</artifactId>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </project>

Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -17,7 +17,7 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact-test</artifactId>
+      <artifactId>maven-artifact-manager</artifactId>
       <version>2.0-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>

Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java Tue Jun 21 08:32:02 2005
@@ -17,11 +17,14 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.artifact.MavenMetadataSource;
 import org.codehaus.plexus.PlexusTestCase;
 
 import java.io.BufferedReader;
@@ -72,7 +75,7 @@
         ArtifactRepository localRepository = new DefaultArtifactRepository( "local", "file://" + repo.getAbsolutePath(),
                                                                             localRepositoryLayout );
 
-        MavenProject project = builder.build( new File( basedir, "project.xml" ), localRepository, Collections.EMPTY_LIST );
+        MavenProject project = builder.buildWithDependencies( new File( basedir, "project.xml" ), localRepository, Collections.EMPTY_LIST );
 
         for ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); )
         {

Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/classpath
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/classpath?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/classpath (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/classpath Tue Jun 21 08:32:02 2005
@@ -2,5 +2,5 @@
   <classpathentry kind="src" path="src/main/java"/>
   <classpathentry kind="output" path="target/classes"/>
   <classpathentry kind="var" rootpath="JRE_SRCROOT" path="JRE_LIB" sourcepath="JRE_SRC"/>
-  <classpathentry kind="var" path="M2_REPO/maven/jars/maven-core-2.0-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/maven/jars/maven-core-98.0.jar"/>
 </classpath>

Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/project.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/project.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/project.xml (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/projects/project-1/project.xml Tue Jun 21 08:32:02 2005
@@ -11,7 +11,7 @@
     <dependency>
       <groupId>maven</groupId>
       <artifactId>maven-core</artifactId>
-      <version>2.0-SNAPSHOT</version>
+      <version>98.0</version>
     </dependency>
   </dependencies>
 

Copied: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-98.0.pom (from r191631, maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-2.0-SNAPSHOT.pom)
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-98.0.pom?p2=maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-98.0.pom&p1=maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-2.0-SNAPSHOT.pom&r1=191631&r2=191667&rev=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-2.0-SNAPSHOT.pom (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/test/repository/maven/poms/maven-core-98.0.pom Tue Jun 21 08:32:02 2005
@@ -2,5 +2,5 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>maven</groupId>
   <artifactId>maven-core</artifactId>
-  <version>2.0-SNAPSHOT</version>
+  <version>98.0</version>
 </project>

Modified: maven/components/trunk/maven-plugins/maven-idea-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-idea-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-idea-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-idea-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -13,7 +13,7 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </project>

Modified: maven/components/trunk/maven-plugins/maven-install-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-install-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-install-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-install-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -14,12 +14,17 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-manager</artifactId>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </project>

Modified: maven/components/trunk/maven-plugins/maven-jar-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-jar-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-jar-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-jar-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -18,7 +18,7 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </project>

Modified: maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-resources-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -13,7 +13,7 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-model</artifactId>
-      <version>2.0-alpha-2</version>
+      <version>2.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>

Modified: maven/components/trunk/maven-plugins/maven-surefire-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-surefire-plugin/pom.xml?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-surefire-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-surefire-plugin/pom.xml Tue Jun 21 08:32:02 2005
@@ -33,12 +33,5 @@
       <version>3.8.1</version>
       <scope>runtime</scope>
     </dependency>
-
-    <!-- TODO: would like to remove -->
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact</artifactId>
-      <version>2.0-alpha-2</version>
-    </dependency>
   </dependencies>
 </project>

Modified: maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java (original)
+++ maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java Tue Jun 21 08:32:02 2005
@@ -124,11 +124,6 @@
     public void execute()
         throws MojoExecutionException
     {
-        if ( "pom".equals( project.getPackaging() ) )
-        {
-            return;
-        }
-
         // ----------------------------------------------------------------------
         // Setup the surefire booter
         // ----------------------------------------------------------------------

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Tue Jun 21 08:32:02 2005
@@ -115,6 +115,14 @@
     // ----------------------------------------------------------------------
 
     public MavenProject buildWithDependencies( File projectDescriptor, ArtifactRepository localRepository,
+                                               List externalProfiles )
+        throws ProjectBuildingException, ArtifactResolutionException
+    {
+        ArtifactMetadataSource source = new MavenMetadataSource( artifactResolver, this, artifactFactory );
+        return buildWithDependencies( projectDescriptor, localRepository, source, externalProfiles );
+    }
+
+    public MavenProject buildWithDependencies( File projectDescriptor, ArtifactRepository localRepository,
                                                ArtifactMetadataSource artifactMetadataSource, List externalProfiles )
         throws ProjectBuildingException, ArtifactResolutionException
     {
@@ -132,12 +140,17 @@
         // this snippet of code here.
         // ----------------------------------------------------------------------
 
-        ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getArtifacts(),
+        // TODO: such a call in MavenMetadataSource too - packaging not really the intention of type
+        Artifact artifact = artifactFactory.createArtifact( project.getGroupId(), project.getArtifactId(),
+                                                            project.getVersion(), null, project.getPackaging() );
+
+        ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getDependencyArtifacts(),
+                                                                                artifact,
                                                                                 project.getRemoteArtifactRepositories(),
                                                                                 localRepository,
                                                                                 artifactMetadataSource );
 
-        project.addArtifacts( result.getArtifacts().values(), artifactFactory );
+        project.setArtifacts( new HashSet( result.getArtifacts().values() ) );
         return project;
     }
 
@@ -248,10 +261,10 @@
         }
 
         MavenProject project = assembleLineage( model, lineage, aggregatedRemoteWagonRepositories, localRepository );
-        
+
         // we don't have to force the collision exception for superModel here, it's already been done in getSuperModel()
         Model previous = superModel;
-        
+
         for ( Iterator i = lineage.iterator(); i.hasNext(); )
         {
             Model current = ( (MavenProject) i.next() ).getModel();
@@ -278,24 +291,24 @@
     private void forcePluginExecutionIdCollision( Model model )
     {
         Build build = model.getBuild();
-        
+
         if ( build != null )
         {
             List plugins = build.getPlugins();
-            
+
             if ( plugins != null )
             {
                 for ( Iterator it = plugins.iterator(); it.hasNext(); )
                 {
                     Plugin plugin = (Plugin) it.next();
-                    
+
                     // this will force an IllegalStateException, even if we don't have to do inheritance assembly.
                     plugin.getExecutionsAsMap();
                 }
             }
         }
     }
-    
+
 
     /**
      * @todo can this take in a model instead of a project and still be successful?
@@ -370,7 +383,7 @@
         }
 
         project.setRemoteArtifactRepositories( remoteRepositories );
-        project.setArtifacts( createArtifacts( project.getDependencies() ) );
+        project.setDependencyArtifacts( createArtifacts( project.getDependencies() ) );
         project.setPluginArtifacts( createPluginArtifacts( project.getBuildPlugins() ) );
 
         ModelValidationResult validationResult = validator.validate( model );
@@ -586,7 +599,7 @@
         URL url = DefaultMavenProjectBuilder.class.getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" );
 
         Model superModel = readModel( url );
-        
+
         forcePluginExecutionIdCollision( superModel );
 
         return superModel;

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Tue Jun 21 08:32:02 2005
@@ -18,7 +18,6 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.CiManagement;
@@ -47,13 +46,9 @@
 import java.io.IOException;
 import java.io.Writer;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
@@ -106,6 +101,8 @@
 
     private List activeProfiles = new ArrayList();
 
+    private Set dependencyArtifacts;
+
     public MavenProject( Model model )
     {
         this.model = model;
@@ -119,7 +116,11 @@
         this.file = project.file;
 
         // don't need a deep copy, they don't get modified or added/removed to/from - but make them unmodifiable to be sure!
-        this.artifacts = Collections.unmodifiableSet( project.artifacts );
+        this.dependencyArtifacts = Collections.unmodifiableSet( project.dependencyArtifacts );
+        if ( project.artifacts != null )
+        {
+            this.artifacts = Collections.unmodifiableSet( project.artifacts );
+        }
         this.pluginArtifacts = Collections.unmodifiableSet( project.pluginArtifacts );
         this.remoteArtifactRepositories = Collections.unmodifiableList( project.remoteArtifactRepositories );
         this.pluginArtifactRepositories = Collections.unmodifiableList( project.pluginArtifactRepositories );
@@ -805,59 +806,6 @@
         this.collectedProjects = collectedProjects;
     }
 
-    public void addArtifacts( Collection newArtifacts, ArtifactFactory artifactFactory )
-    {
-        //        project.getArtifacts().addAll( result.getArtifacts().values() );
-        // We need to override the scope if one declared it higher
-        // TODO: could surely be more efficient, and use the scope handler, be part of maven-artifact...
-        Map artifacts = new HashMap();
-        for ( Iterator i = getArtifacts().iterator(); i.hasNext(); )
-        {
-            Artifact a = (Artifact) i.next();
-            artifacts.put( a.getId(), a );
-        }
-        for ( Iterator i = newArtifacts.iterator(); i.hasNext(); )
-        {
-            Artifact a = (Artifact) i.next();
-            String id = a.getId();
-            if ( artifacts.containsKey( id ) )
-            {
-                Artifact existing = (Artifact) artifacts.get( id );
-                boolean updateScope = false;
-                if ( Artifact.SCOPE_RUNTIME.equals( a.getScope() ) &&
-                    Artifact.SCOPE_TEST.equals( existing.getScope() ) )
-                {
-                    updateScope = true;
-                }
-
-                if ( Artifact.SCOPE_COMPILE.equals( a.getScope() ) &&
-                    !Artifact.SCOPE_COMPILE.equals( existing.getScope() ) )
-                {
-                    updateScope = true;
-                }
-
-                if ( updateScope )
-                {
-                    // TODO: Artifact factory?
-                    // TODO: [jc] Is this a better way to centralize artifact construction here?
-                    Artifact artifact = artifactFactory.createArtifact( existing.getGroupId(), existing.getArtifactId(),
-                                                                        existing.getVersion(), a.getScope(), existing
-                        .getType() );
-
-                    artifact.setFile( existing.getFile() );
-                    artifact.setBaseVersion( existing.getBaseVersion() );
-
-                    artifacts.put( id, artifact );
-                }
-            }
-            else
-            {
-                artifacts.put( id, a );
-            }
-        }
-        setArtifacts( new HashSet( artifacts.values() ) );
-    }
-
     public void setPluginArtifactRepositories( List pluginArtifactRepositories )
     {
         this.pluginArtifactRepositories = pluginArtifactRepositories;
@@ -1043,5 +991,15 @@
         MavenXpp3Writer pomWriter = new MavenXpp3Writer();
 
         pomWriter.write( writer, getModel() );
+    }
+
+    public Set getDependencyArtifacts()
+    {
+        return dependencyArtifacts;
+    }
+
+    public void setDependencyArtifacts( Set dependencyArtifacts )
+    {
+        this.dependencyArtifacts = dependencyArtifacts;
     }
 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java Tue Jun 21 08:32:02 2005
@@ -41,6 +41,9 @@
                                         ArtifactMetadataSource artifactMetadataSource, List externalProfiles )
         throws ProjectBuildingException, ArtifactResolutionException;
 
+    MavenProject buildWithDependencies( File project, ArtifactRepository localRepository, List externalProfiles )
+        throws ProjectBuildingException, ArtifactResolutionException;
+
     /**
      * Build the artifact from the local repository, resolving it if necessary.
      *

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java?rev=191667&r1=191666&r2=191667&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java Tue Jun 21 08:32:02 2005
@@ -106,30 +106,22 @@
         artifact.setFile( new File( "dummy" ) );
     }
 
-    public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteRepositories,
-                                                         ArtifactRepository localRepository,
+    public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+                                                         List remoteRepositories, ArtifactRepository localRepository,
                                                          ArtifactMetadataSource source, ArtifactFilter filter )
         throws ArtifactResolutionException
     {
-        return super.resolveTransitively( artifacts, remoteRepositories, localRepository, new Source( artifactFactory ),
-                                          filter );
+        return super.resolveTransitively( artifacts, originatingArtifact, remoteRepositories, localRepository,
+                                          new Source( artifactFactory ), filter );
     }
 
-    public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteRepositories,
-                                                         ArtifactRepository localRepository,
+    public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+                                                         List remoteRepositories, ArtifactRepository localRepository,
                                                          ArtifactMetadataSource source )
         throws ArtifactResolutionException
     {
-        return super.resolveTransitively( artifacts, remoteRepositories, localRepository,
+        return super.resolveTransitively( artifacts, originatingArtifact, remoteRepositories, localRepository,
                                           new Source( artifactFactory ) );
     }
 
-    public ArtifactResolutionResult resolveTransitively( Artifact artifact, List remoteRepositories,
-                                                         ArtifactRepository localRepository,
-                                                         ArtifactMetadataSource source )
-        throws ArtifactResolutionException
-    {
-        return super.resolveTransitively( artifact, remoteRepositories, localRepository,
-                                          new Source( artifactFactory ) );
-    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org