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 18:03:20 UTC

svn commit: r699847 - in /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project: DefaultMavenProjectBuilder.java artifact/MavenMetadataSource.java

Author: jvanzyl
Date: Sun Sep 28 09:03:20 2008
New Revision: 699847

URL: http://svn.apache.org/viewvc?rev=699847&view=rev
Log:
o changing the caching slightly to share with shane

Modified:
    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/artifact/MavenMetadataSource.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=699847&r1=699846&r2=699847&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 Sun Sep 28 09:03:20 2008
@@ -106,6 +106,8 @@
 
     private static final String MAVEN_MODEL_VERSION = "4.0.0";
 
+    private HashMap<String, MavenProject> hm = new HashMap<String, MavenProject>();    
+    
     public void initialize()
     {
         modelReader = new MavenXpp3Reader();
@@ -157,24 +159,29 @@
     public MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories, ArtifactRepository localRepository )
         throws ProjectBuildingException
     {
+        MavenProject project = hm.get( artifact.getId() );
+        
+        if ( project != null )
+        {            
+            return project;
+        }        
+        
         File f = artifact.getFile();
-            repositoryHelper.findModelFromRepository( artifact, remoteArtifactRepositories, localRepository );
+        repositoryHelper.findModelFromRepository( artifact, remoteArtifactRepositories, localRepository );
+
+        ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
 
-            ProjectBuilderConfiguration config =
-                new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
+        List<ArtifactRepository> artifactRepositories = new ArrayList<ArtifactRepository>( remoteArtifactRepositories );
+        artifactRepositories.addAll( repositoryHelper.buildArtifactRepositories( getSuperProject( config, artifact.getFile(), false ).getModel() ) );
 
-            List<ArtifactRepository> artifactRepositories =
-                new ArrayList<ArtifactRepository>( remoteArtifactRepositories );
-            artifactRepositories.addAll( repositoryHelper.buildArtifactRepositories(
-                getSuperProject( config, artifact.getFile(), false ).getModel() ) );
-
-            MavenProject project = readModelFromLocalPath( "unknown", artifact.getFile(), new PomArtifactResolver(
-                config.getLocalRepository(), artifactRepositories, artifactResolver ), config );
-            project = buildInternal( project.getModel(), config, artifact.getFile(), project.getParentFile(), false );
+        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() );
 
+        hm.put( artifact.getId(), project );
+        
         return project;
     }
 

Modified: 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/MavenMetadataSource.java?rev=699847&r1=699846&r2=699847&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/MavenMetadataSource.java Sun Sep 28 09:03:20 2008
@@ -75,9 +75,7 @@
     private ArtifactFactory artifactFactory;
 
     private RepositoryMetadataManager repositoryMetadataManager;
-
-    public HashMap<String, MavenProject> hm = new HashMap<String, MavenProject>();
-
+    
     // lazily instantiated and cached.
     private MavenProject superProject;
 
@@ -182,53 +180,42 @@
             }
             else
             {
-
-                if(hm.containsKey(pomArtifact.getId()))
+                try
                 {
-                    project = hm.get(pomArtifact.getId());
+                    project = mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository );
                 }
-                else
+                catch ( InvalidProjectModelException e )
                 {
-                    try
-                    {
-                        project =
-                            mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository );
-                        hm.put(pomArtifact.getId(), project);
+                    handleInvalidOrMissingMavenPOM( artifact, e );
 
-                    }
-                    catch ( InvalidProjectModelException e )
+                    if ( getLogger().isDebugEnabled() )
                     {
-                        handleInvalidOrMissingMavenPOM( artifact, e );
+                        getLogger().debug( "Reason: " + e.getMessage() );
 
-                        if ( getLogger().isDebugEnabled() )
-                        {
-                            getLogger().debug( "Reason: " + e.getMessage() );
+                        ModelValidationResult validationResult = e.getValidationResult();
 
-                            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" );
-                            }
-                            else
+                        if ( validationResult != null )
+                        {
+                            getLogger().debug( "\nValidation Errors:" );
+                            for ( Iterator i = validationResult.getMessages().iterator(); i.hasNext(); )
                             {
-                                getLogger().debug( "", e );
+                                getLogger().debug( i.next().toString() );
                             }
+                            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;
                 }