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;
}