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 2007/11/11 09:10:36 UTC

svn commit: r593857 - in /maven/components/trunk: ./ maven-core/src/main/resources/META-INF/plexus/ maven-project/src/main/java/org/apache/maven/project/artifact/ maven-project/src/main/resources/META-INF/plexus/

Author: jvanzyl
Date: Sun Nov 11 00:10:35 2007
New Revision: 593857

URL: http://svn.apache.org/viewvc?rev=593857&view=rev
Log:
o adding PomMetadataSource for the changes to maven-artifact
o adding in all the artifact handlers here as they are Maven specific and don't belong in maven-artifact

Added:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java
      - copied, changed from r593740, maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
Modified:
    maven/components/trunk/build.properties
    maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/pom.xml

Modified: maven/components/trunk/build.properties
URL: http://svn.apache.org/viewvc/maven/components/trunk/build.properties?rev=593857&r1=593856&r2=593857&view=diff
==============================================================================
--- maven/components/trunk/build.properties (original)
+++ maven/components/trunk/build.properties Sun Nov 11 00:10:35 2007
@@ -17,7 +17,7 @@
 
 aspectj.version=1.5.3
 classworlds.version=1.2-alpha-10
-plexus.version=1.0-alpha-38
+plexus.version=1.0-alpha-39
 plexus-utils.version=1.4.5
 maven-artifact.version=3.0-SNAPSHOT
 commons-cli.version=1.0

Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=593857&r1=593856&r2=593857&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml Sun Nov 11 00:10:35 2007
@@ -19,6 +19,167 @@
 
 <component-set>
   <components>
+
+    <!-- 
+     | These are the artifacts handlers that were previously in maven-artifact and they don't belong there as these
+    | are Maven specific artifact handlers. We need to put these into their respective plugins and make this fully dynamic. jvz.
+    -->
+    
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>ejb</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>ejb</type>
+        <extension>jar</extension>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>jar</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>jar</type>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>test-jar</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <classifier>tests</classifier>
+        <extension>jar</extension>
+        <type>test-jar</type>
+        <packaging>jar</packaging>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>maven-plugin</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>maven-plugin</type>
+        <extension>jar</extension>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>pom</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>pom</type>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>java-source</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <classifier>sources</classifier>
+        <type>java-source</type>
+        <extension>jar</extension>
+        <language>java</language>
+        <addedToClasspath>false</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>javadoc</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <classifier>javadoc</classifier>
+        <type>javadoc</type>
+        <extension>jar</extension>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>war</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>war</type>
+        <includesDependencies>true</includesDependencies>
+        <language>java</language>
+        <addedToClasspath>false</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>ear</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>ear</type>
+        <includesDependencies>true</includesDependencies>
+        <language>java</language>
+        <addedToClasspath>false</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>ejb-client</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>ejb-client</type>
+        <extension>jar</extension>
+        <packaging>ejb</packaging>
+        <classifier>client</classifier>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>rar</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>rar</type>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>par</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>par</type>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>ejb3</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>ejb3</type>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>    
+        
     <component>
       <role>org.apache.maven.extension.BuildExtensionScanner</role>
       <role-hint>default</role-hint>

Copied: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java (from r593740, maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java)
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java?p2=maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java&p1=maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java&r1=593740&r2=593857&rev=593857&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java Sun Nov 11 00:10:35 2007
@@ -22,31 +22,19 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
-import org.apache.maven.artifact.metadata.ResolutionGroup;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
-import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException;
-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.DefaultArtifactVersion;
-import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
-import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.resolver.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.resolver.metadata.MetadataResolution;
+import org.apache.maven.artifact.resolver.metadata.MetadataRetrievalException;
+import org.apache.maven.artifact.resolver.metadata.MetadataSource;
 import org.apache.maven.context.BuildContextManager;
 import org.apache.maven.model.Dependency;
-import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.model.Exclusion;
-import org.apache.maven.model.Relocation;
 import org.apache.maven.project.InvalidProjectModelException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.build.ProjectBuildCache;
-import org.apache.maven.project.validation.ModelValidationResult;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -54,24 +42,20 @@
 import org.codehaus.plexus.context.ContextException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
-import org.codehaus.plexus.util.StringUtils;
 
-import java.io.File;
 import java.util.ArrayList;
-import java.util.Collections;
+import java.util.HashSet;
 import java.util.Iterator;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
 /**
  * @author Jason van Zyl
- * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
  */
-public class MavenMetadataSource
+public class PomMetadataSource
     extends AbstractLogEnabled
-    implements ArtifactMetadataSource, Contextualizable
+    implements MetadataSource, Contextualizable
 {
     public static final String ROLE_HINT = "default";
 
@@ -79,8 +63,6 @@
 
     private ArtifactFactory artifactFactory;
 
-    private RepositoryMetadataManager repositoryMetadataManager;
-
     private BuildContextManager buildContextManager;
 
     // lazily instantiated and cached.
@@ -89,15 +71,12 @@
     private PlexusContainer container;
 
     /** Unfortunately we have projects that are still sending us JARs without the accompanying POMs. */
-    private boolean strictlyEnforceThePresenceOfAValidMavenPOM = false;
+    private boolean strictlyEnforceThePresenceOfAValidMavenPOM = true;
 
-    /**
-     * Retrieve the metadata for the project from the repository.
-     * Uses the ProjectBuilder, to enable post-processing and inheritance calculation before retrieving the
-     * associated artifacts.
-     */
-    public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
-        throws ArtifactMetadataRetrievalException
+    public MetadataResolution retrieve( ArtifactMetadata artifactMetadata,
+                                        ArtifactRepository localRepository,
+                                        List remoteRepositories )
+        throws MetadataRetrievalException
     {
         try
         {
@@ -105,177 +84,54 @@
         }
         catch ( ComponentLookupException e )
         {
-            throw new ArtifactMetadataRetrievalException( "Cannot lookup MavenProjectBuilder component instance: " + e.getMessage(), e );
+            throw new MetadataRetrievalException(
+                "Cannot lookup MavenProjectBuilder component instance: " + e.getMessage(), e );
         }
 
         ProjectBuildCache cache = ProjectBuildCache.read( buildContextManager );
 
-        MavenProject project = null;
+        MavenProject project;
 
-        Artifact pomArtifact;
-        
-        boolean done = false;
-        do
-        {
-            // TODO: can we just modify the original?
-            pomArtifact = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(),
-                                                                 artifact.getVersion(), artifact.getScope() );
+        Artifact pomArtifact = artifactFactory.createProjectArtifact( artifactMetadata.getGroupId(), artifactMetadata.getArtifactId(),
+            artifactMetadata.getVersion(), artifactMetadata.getScope() );
 
-            if ( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
+        project = cache.getCachedProject( artifactMetadata.getGroupId(), artifactMetadata.getArtifactId(), artifactMetadata.getVersion() );
+
+        if ( project == null )
+        {
+            try
             {
-                done = true;
+                project = mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository );
             }
-            else
+            catch ( InvalidProjectModelException e )
             {
-                project = cache.getCachedProject( artifact );
-
-                if ( project == null )
-                {
-                    try
-                    {
-                        project = mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository );
-                    }
-                    catch ( InvalidProjectModelException e )
-                    {
-                        getLogger().warn( "POM for \'" + pomArtifact +
-                            "\' is invalid. It will be ignored for artifact resolution. Reason: " + e.getMessage() );
-
-                        if ( getLogger().isDebugEnabled() )
-                        {
-                            getLogger().debug( "Reason: " + e.getMessage() );
-
-                            ModelValidationResult validationResult = e.getValidationResult();
-
-                            if ( validationResult != null )
-                            {
-                                getLogger().debug( "\nValidation Errors:" );
-                                for ( Iterator i = validationResult.getMessages().iterator(); i.hasNext(); )
-                                {
-                                    getLogger().debug( i.next().toString() );
-                                }
-                                getLogger().debug( "\n" );
-                            }
-                        }
-
-                        project = null;
-                    }
-                    catch ( ProjectBuildingException e )
-                    {
-                        if ( strictlyEnforceThePresenceOfAValidMavenPOM )
-                        {
-                            throw new ArtifactMetadataRetrievalException( "Unable to read the metadata file for artifact '" +
-                                artifact.getDependencyConflictId() + "': " + e.getMessage(), e, artifact );
-                        }
-                    }
-                }
-
-                if ( project != null )
-                {
-                    Relocation relocation = null;
-
-                    DistributionManagement distMgmt = project.getDistributionManagement();
-                    if ( distMgmt != null )
-                    {
-                        relocation = distMgmt.getRelocation();
-
-                        artifact.setDownloadUrl( distMgmt.getDownloadUrl() );
-                        pomArtifact.setDownloadUrl( distMgmt.getDownloadUrl() );
-                    }
-
-                    if ( relocation != null )
-                    {
-                        if ( relocation.getGroupId() != null )
-                        {
-                            artifact.setGroupId( relocation.getGroupId() );
-                        }
-                        if ( relocation.getArtifactId() != null )
-                        {
-                            artifact.setArtifactId( relocation.getArtifactId() );
-                        }
-                        if ( relocation.getVersion() != null )
-                        {
-                            artifact.setVersionRange( VersionRange.createFromVersion( relocation.getVersion() ) );
-                        }
-
-                        if ( ( artifact.getDependencyFilter() != null ) &&
-                            !artifact.getDependencyFilter().include( artifact ) )
-                        {
-                            return null;
-                        }
-
-                        String message = "\n  This artifact has been relocated to " + artifact.getGroupId() + ":" +
-                            artifact.getArtifactId() + ":" + artifact.getVersion() + ".\n";
-
-                        if ( relocation.getMessage() != null )
-                        {
-                            message += "  " + relocation.getMessage() + "\n";
-                        }
-
-                        if ( ( artifact.getDependencyTrail() != null ) && ( artifact.getDependencyTrail().size() == 1 ) )
-                        {
-                            getLogger().warn( "While downloading " + artifact.getGroupId() + ":" +
-                                artifact.getArtifactId() + ":" + artifact.getVersion() + message + "\n" );
-                        }
-                        else
-                        {
-                            getLogger().debug( "While downloading " + artifact.getGroupId() + ":" +
-                                artifact.getArtifactId() + ":" + artifact.getVersion() + message + "\n" );
-                        }
-                    }
-                    else
-                    {
-                        done = true;
-                    }
-                }
-                else
+                // We want to capture this in the graph so that we can display the error to the user
+            }
+            catch ( ProjectBuildingException e )
+            {
+                if ( strictlyEnforceThePresenceOfAValidMavenPOM )
                 {
-                    done = true;
+                    throw new MetadataRetrievalException(
+                        "Unable to read the metadata file for artifactMetadata '" +
+                            artifactMetadata.getDependencyConflictId() + "': " + e.getMessage(), e, artifactMetadata );
                 }
             }
         }
-        while ( !done );
 
-        // last ditch effort to try to get this set...
-        if ( artifact.getDownloadUrl() == null )
-        {
-            // TODO: this could come straight from the project, negating the need to set it in the project itself?
-            artifact.setDownloadUrl( pomArtifact.getDownloadUrl() );
-        }
+        Set artifacts = new HashSet();
 
-        ResolutionGroup result;
-
-        if ( project == null )
+        for ( Iterator i = project.getDependencies().iterator(); i.hasNext(); )
         {
-            // if the project is null, we encountered an invalid model (read: m1 POM)
-            // we'll just return an empty resolution group.
-            // or used the inherited scope (should that be passed to the buildFromRepository method above?)
-            result = new ResolutionGroup( pomArtifact, Collections.EMPTY_SET, Collections.EMPTY_LIST );
-        }
-        else
-        {
-            Set artifacts = Collections.EMPTY_SET;
-            if ( !artifact.getArtifactHandler().isIncludesDependencies() )
-            {
-                // TODO: we could possibly use p.getDependencyArtifacts instead of this call, but they haven't been filtered
-                // or used the inherited scope (should that be passed to the buildFromRepository method above?)
-                try
-                {
-                    artifacts = project.createArtifacts( artifactFactory, artifact.getScope(),
-                                                         artifact.getDependencyFilter() );
-                }
-                catch ( InvalidDependencyVersionException e )
-                {
-                    throw new ArtifactMetadataRetrievalException( "Error in metadata for artifact '" +
-                        artifact.getDependencyConflictId() + "': " + e.getMessage(), e );
-                }
-            }
-
-            List repositories = aggregateRepositoryLists( remoteRepositories, project.getRemoteArtifactRepositories() );
+            Dependency d = (Dependency) i.next();
 
-            result = new ResolutionGroup( pomArtifact, artifacts, repositories );
+            artifacts.add( new ArtifactMetadata( d.getGroupId(), d.getArtifactId(), d.getVersion() ) );
         }
 
-        return result;
+        // The remote repositories is intentially null here while working in the graph in the least invasive way
+        // and making sure repositories added for a POM are scope only for a particular POM. We don't want
+        // repositories lingering around or being aggregated after they are used. jvz
+
+        return new MetadataResolution( artifacts, null );
     }
 
     private void loadProjectBuilder()
@@ -287,7 +143,8 @@
         }
     }
 
-    private List aggregateRepositoryLists( List remoteRepositories, List remoteArtifactRepositories )
+    private List aggregateRepositoryLists( List remoteRepositories,
+                                           List remoteArtifactRepositories )
         throws ArtifactMetadataRetrievalException
     {
         if ( superProject == null )
@@ -341,126 +198,9 @@
         return repositories;
     }
 
-    /**
-     * @todo desperately needs refactoring. It's just here because it's implementation is maven-project specific
-     * @return {@link Set} &lt; {@link Artifact} >
-     */
-    public static Set createArtifacts( ArtifactFactory artifactFactory, List dependencies, String inheritedScope,
-                                       ArtifactFilter dependencyFilter, MavenProject project )
-        throws InvalidDependencyVersionException
-    {
-        Set projectArtifacts = new LinkedHashSet( dependencies.size() );
-
-        for ( Iterator i = dependencies.iterator(); i.hasNext(); )
-        {
-            Dependency d = (Dependency) i.next();
-
-            String scope = d.getScope();
-
-            if ( StringUtils.isEmpty( scope ) )
-            {
-                scope = Artifact.SCOPE_COMPILE;
-
-                d.setScope( scope );
-            }
-
-            VersionRange versionRange;
-            try
-            {
-                versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
-            }
-            catch ( InvalidVersionSpecificationException e )
-            {
-                throw new InvalidDependencyVersionException( project.getId(), d, project.getFile(), e );
-            }
-            Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(),
-                                                                          versionRange, d.getType(), d.getClassifier(),
-                                                                          scope, inheritedScope, d.isOptional() );
-
-            if ( Artifact.SCOPE_SYSTEM.equals( scope ) )
-            {
-                artifact.setFile( new File( d.getSystemPath() ) );
-            }
-
-            ArtifactFilter artifactFilter = dependencyFilter;
-
-            if ( ( artifact != null ) && ( ( artifactFilter == null ) || artifactFilter.include( artifact ) ) )
-            {
-                if ( ( d.getExclusions() != null ) && !d.getExclusions().isEmpty() )
-                {
-                    List exclusions = new ArrayList();
-                    for ( Iterator j = d.getExclusions().iterator(); j.hasNext(); )
-                    {
-                        Exclusion e = (Exclusion) j.next();
-                        exclusions.add( e.getGroupId() + ":" + e.getArtifactId() );
-                    }
-
-                    ArtifactFilter newFilter = new ExcludesArtifactFilter( exclusions );
-
-                    if ( artifactFilter != null )
-                    {
-                        AndArtifactFilter filter = new AndArtifactFilter();
-                        filter.add( artifactFilter );
-                        filter.add( newFilter );
-                        artifactFilter = filter;
-                    }
-                    else
-                    {
-                        artifactFilter = newFilter;
-                    }
-                }
-
-                artifact.setDependencyFilter( artifactFilter );
-
-                if ( project != null )
-                {
-                    artifact = project.replaceWithActiveArtifact( artifact );
-                }
-
-                projectArtifacts.add( artifact );
-            }
-        }
-
-        return projectArtifacts;
-    }
-
-    public List retrieveAvailableVersions( Artifact artifact, ArtifactRepository localRepository,
-                                           List remoteRepositories )
-        throws ArtifactMetadataRetrievalException
-    {
-        RepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact );
-        try
-        {
-            repositoryMetadataManager.resolve( metadata, remoteRepositories, localRepository );
-        }
-        catch ( RepositoryMetadataResolutionException e )
-        {
-            throw new ArtifactMetadataRetrievalException( e.getMessage(), e );
-        }
-
-        List versions;
-        Metadata repoMetadata = metadata.getMetadata();
-        if ( ( repoMetadata != null ) && ( repoMetadata.getVersioning() != null ) )
-        {
-            List metadataVersions = repoMetadata.getVersioning().getVersions();
-            versions = new ArrayList( metadataVersions.size() );
-            for ( Iterator i = metadataVersions.iterator(); i.hasNext(); )
-            {
-                String version = (String) i.next();
-                versions.add( new DefaultArtifactVersion( version ) );
-            }
-        }
-        else
-        {
-            versions = Collections.EMPTY_LIST;
-        }
-
-        return versions;
-    }
-
     public void contextualize( Context context )
         throws ContextException
     {
         container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
     }
-}
+}
\ No newline at end of file

Modified: maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=593857&r1=593856&r2=593857&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml Sun Nov 11 00:10:35 2007
@@ -69,9 +69,6 @@
       </requirements>
     </component>
     
-    
-    
-    
     <component>
       <role>org.apache.maven.project.build.model.ModelLineageBuilder</role>
       <role-hint>default</role-hint>
@@ -338,6 +335,21 @@
         </requirement>
         <requirement>
           <role>org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager</role>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.context.BuildContextManager</role>
+          <role-hint>default</role-hint>
+        </requirement>
+      </requirements>
+    </component>
+
+    <component>
+      <role>org.apache.maven.artifact.resolver.metadata.MetadataSource</role>
+      <role-hint>default</role-hint>
+      <implementation>org.apache.maven.project.artifact.PomMetadataSource</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
         </requirement>
         <requirement>
           <role>org.apache.maven.context.BuildContextManager</role>

Modified: maven/components/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?rev=593857&r1=593856&r2=593857&view=diff
==============================================================================
--- maven/components/trunk/pom.xml (original)
+++ maven/components/trunk/pom.xml Sun Nov 11 00:10:35 2007
@@ -153,7 +153,7 @@
     <module>maven-embedder</module>
   </modules>
   <properties>
-    <plexusVersion>1.0-alpha-38</plexusVersion>
+    <plexusVersion>1.0-alpha-39</plexusVersion>
     <wagonVersion>1.0-beta-2</wagonVersion>
   </properties>
   <dependencies>
@@ -294,4 +294,4 @@
       </modules>
     </profile>
   </profiles>
-</project>
\ No newline at end of file
+</project>