You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/09/28 20:20:14 UTC
svn commit: r699873 - in /maven/components/trunk: c.patch
maven-project/src/main/java/org/apache/maven/project/DefaultRepositoryHelper.java
Author: sisbell
Date: Sun Sep 28 11:20:13 2008
New Revision: 699873
URL: http://svn.apache.org/viewvc?rev=699873&view=rev
Log:
Caching of models. This model is not the one returned in the MavenProject so no danger of other components modifying it.
Added:
maven/components/trunk/c.patch
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultRepositoryHelper.java
Added: maven/components/trunk/c.patch
URL: http://svn.apache.org/viewvc/maven/components/trunk/c.patch?rev=699873&view=auto
==============================================================================
--- maven/components/trunk/c.patch (added)
+++ maven/components/trunk/c.patch Sun Sep 28 11:20:13 2008
@@ -0,0 +1,94 @@
+Index: maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
+===================================================================
+--- maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (revision 697955)
++++ maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (working copy)
+@@ -46,11 +46,7 @@
+ import java.io.File;
+ import java.io.IOException;
+ import java.io.InputStream;
+-import java.util.ArrayList;
+-import java.util.Arrays;
+-import java.util.Collection;
+-import java.util.Collections;
+-import java.util.List;
++import java.util.*;
+
+ /**
+ * Default implementation of the project builder.
+@@ -72,6 +68,8 @@
+
+ private RepositoryHelper repositoryHelper;
+
++ private HashMap<String, PomClassicDomainModel> cache = new HashMap<String, PomClassicDomainModel>();
++
+ /**
+ * Default constructor
+ */
+@@ -139,6 +137,12 @@
+ }
+
+ PomClassicDomainModel domainModel = new PomClassicDomainModel( pom );
++ if(cache.containsKey(domainModel.getId()))
++ {
++ // System.out.println("CACHE: " + domainModel.getId());
++ return createMavenProject(cache.get(domainModel.getId()), projectBuilderConfiguration);
++ }
++
+ domainModel.setProjectDirectory( projectDirectory );
+
+ List<DomainModel> domainModels = new ArrayList<DomainModel>();
+@@ -181,12 +185,21 @@
+ transformer,
+ importModels,
+ properties ) );
++ transformedDomainModel.setParentFile(parentFile);
++ cache.put(domainModel.getId(), transformedDomainModel);
++ //System.out.println("CACHE SIZE = " + cache.size());
++ return createMavenProject(transformedDomainModel, projectBuilderConfiguration);
++ }
++
++
++ private MavenProject createMavenProject(PomClassicDomainModel domainModel, ProjectBuilderConfiguration config)
++ throws IOException
++ {
+ try
+ {
+- MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(), artifactFactory,
+- mavenTools, null,
+- projectBuilderConfiguration );
+- mavenProject.setParentFile( parentFile );
++ MavenProject mavenProject = new MavenProject( domainModel.getModel(), artifactFactory, mavenTools, null,
++ config );
++ mavenProject.setParentFile( domainModel.getParentFile() );
+ return mavenProject;
+ }
+ catch ( InvalidRepositoryException e )
+@@ -240,7 +253,7 @@
+
+ Artifact artifactParent =
+ artifactFactory.createParentArtifact( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
+- artifactResolver.resolve( artifactParent );
++ // artifactParent = artifactResolver.resolve( artifactParent );
+
+ PomClassicDomainModel parentDomainModel = new PomClassicDomainModel( artifactParent.getFile() );
+ if ( !parentDomainModel.matchesParent( domainModel.getModel().getParent() ) )
+@@ -249,17 +262,12 @@
+ ": Child ID = " + domainModel.getModel().getId() );
+ return domainModels;
+ }
+- else
+- {
+- // logger.info("Adding pom to hierarchy: Group Id = " + parent.getGroupId() + ", Artifact Id ="
+- // + parent.getArtifactId() + ", Version = " + parent.getVersion() + ", File" + artifactParent.getFile());
+- }
+-
++ cache.put(parentDomainModel.getId(), parentDomainModel);
+ domainModels.add( parentDomainModel );
+ domainModels.addAll( getDomainModelParentsFromRepository( parentDomainModel, artifactResolver ) );
+ return domainModels;
+ }
+-
++
+ /**
+ * Returns list of domain model parents of the specified domain model. The parent domain models are part
+ *
\ No newline at end of file
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultRepositoryHelper.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultRepositoryHelper.java?rev=699873&r1=699872&r2=699873&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultRepositoryHelper.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultRepositoryHelper.java Sun Sep 28 11:20:13 2008
@@ -50,12 +50,7 @@
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
/**
* This is a temporary class. These methods are originally from the DefaultMavenProjectHelper. This class will be
@@ -79,6 +74,8 @@
private MavenXpp3Reader modelReader;
+ private static HashMap<String, Model> cache = new HashMap<String, Model>();
+
private Logger getLogger()
{
return logger;
@@ -116,7 +113,15 @@
File file = projectArtifact.getFile();
artifact.setFile( file );
- legacy_model = readModelLegacy( projectId, file, false );
+ if(cache.containsKey(projectId))
+ {
+ legacy_model = cache.get(projectId);
+ }
+ else
+ {
+ legacy_model = readModelLegacy( projectId, file, false );
+ cache.put(projectId, legacy_model);
+ }
String downloadUrl = null;