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 2008/09/28 11:50:17 UTC

svn commit: r699793 - in /maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project: DefaultMavenProjectBuilder.java artifact/MavenMetadataSource.java

Author: jvanzyl
Date: Sun Sep 28 02:50:16 2008
New Revision: 699793

URL: http://svn.apache.org/viewvc?rev=699793&view=rev
Log:
o merge down from trunk

Modified:
    maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Modified: maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=699793&r1=699792&r2=699793&view=diff
==============================================================================
--- maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Sun Sep 28 02:50:16 2008
@@ -145,7 +145,6 @@
             project.setFile( projectDescriptor );
 
             setBuildOutputDirectoryOnParent( project );
-
         return project;
     }
 
@@ -162,16 +161,11 @@
         return buildFromRepository( artifact, remoteArtifactRepositories, localRepository );
     }
 
-
     public MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories,
                                              ArtifactRepository localRepository )
         throws ProjectBuildingException
     {
-        MavenProject project = null;
-        
         File f = artifact.getFile();
-        if ( project == null )
-        {
             repositoryHelper.findModelFromRepository( artifact, remoteArtifactRepositories, localRepository );
 
             ProjectBuilderConfiguration config =
@@ -182,10 +176,9 @@
             artifactRepositories.addAll( repositoryHelper.buildArtifactRepositories(
                 getSuperProject( config, artifact.getFile(), false ).getModel() ) );
 
-            project = readModelFromLocalPath( "unknown", artifact.getFile(), new PomArtifactResolver(
+            MavenProject project = readModelFromLocalPath( "unknown", artifact.getFile(), new PomArtifactResolver(
                 config.getLocalRepository(), artifactRepositories, artifactResolver ), config );
             project = buildInternal( project.getModel(), config, artifact.getFile(), project.getParentFile(), false );
-        }
 
         artifact.setFile( f );
         project.setVersion( artifact.getVersion() );

Modified: maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=699793&r1=699792&r2=699793&view=diff
==============================================================================
--- maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/branches/jvz/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Sun Sep 28 02:50:16 2008
@@ -56,12 +56,7 @@
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * @author Jason van Zyl
@@ -149,6 +144,8 @@
         return artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getVersion();
     }
 
+    private HashMap<String, MavenProject> hm = new HashMap<String, MavenProject>();
+    
     private ProjectRelocation retrieveRelocatedProject( Artifact artifact, ArtifactRepository localRepository,
                                                         List<ArtifactRepository> remoteRepositories )
         throws ArtifactMetadataRetrievalException
@@ -184,44 +181,55 @@
             }
             else
             {
-                try
+
+                if(hm.containsKey(pomArtifact.getId()))
                 {
-                    project =
-                        mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository );
+                    project = hm.get(pomArtifact.getId());
                 }
-                catch ( InvalidProjectModelException e )
+                else
                 {
-                    handleInvalidOrMissingMavenPOM( artifact, e );
-
-                    if ( getLogger().isDebugEnabled() )
+                    try
                     {
-                        getLogger().debug( "Reason: " + e.getMessage() );
+                        project =
+                            mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository );
+                        hm.put(pomArtifact.getId(), project);
 
-                        ModelValidationResult validationResult = e.getValidationResult();
+                    }
+                    catch ( InvalidProjectModelException e )
+                    {
+                        handleInvalidOrMissingMavenPOM( artifact, e );
 
-                        if ( validationResult != null )
+                        if ( getLogger().isDebugEnabled() )
                         {
-                            getLogger().debug( "\nValidation Errors:" );
-                            for ( Iterator i = validationResult.getMessages().iterator(); i.hasNext(); )
+                            getLogger().debug( "Reason: " + e.getMessage() );
+
+                            ModelValidationResult validationResult = e.getValidationResult();
+
+                            if ( validationResult != null )
                             {
-                                getLogger().debug( i.next().toString() );
+                                getLogger().debug( "\nValidation Errors:" );
+                                for ( Iterator i = validationResult.getMessages().iterator(); i.hasNext(); )
+                                {
+                                    getLogger().debug( i.next().toString() );
+                                }
+                                getLogger().debug( "\n" );
+                            }
+                            else
+                            {
+                                getLogger().debug( "", e );
                             }
-                            getLogger().debug( "\n" );
-                        }
-                        else
-                        {
-                            getLogger().debug( "", e );
                         }
+
+                        project = null;
                     }
+                    catch ( ProjectBuildingException e )
+                    {
+                        handleInvalidOrMissingMavenPOM( artifact, e );
 
-                    project = null;
+                        project = null;
+                    }
                 }
-                catch ( ProjectBuildingException e )
-                {
-                    handleInvalidOrMissingMavenPOM( artifact, e );
 
-                    project = null;
-                }
 
                 if ( project != null )
                 {