Author: brett
Date: Tue Jan 10 14:15:46 2006
New Revision: 367812
URL: http://svn.apache.org/viewcvs?rev=367812&view=rev
Log:
reduce some confusion - cache CachedModel associations instead of MavenProject
instances
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL:
http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=367812&r1=367811&r2=367812&view=diff
==============================================================================
---
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
(original)
+++
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
Tue Jan 10 14:15:46 2006
@@ -289,8 +289,7 @@
Model model = readModel( "unknown", projectDescriptor, true );
// Always cache files in the source tree over those in the repository
- MavenProject p = new MavenProject( model );
- p.setFile( projectDescriptor );
+ CachedModel cachedModel = new CachedModel( projectDescriptor, model );
String modelKey = createCacheKey( model.getGroupId(),
model.getArtifactId(), model.getVersion() );
if ( modelCache.containsKey( modelKey ) )
@@ -299,7 +298,7 @@
"Duplicate project ID found in
" +
projectDescriptor.getAbsolutePath() );
}
- modelCache.put( modelKey, p );
+ modelCache.put( modelKey, cachedModel );
MavenProject project = build( projectDescriptor.getAbsolutePath(),
model, localRepository,
buildArtifactRepositories(
getSuperModel() ),
@@ -375,10 +374,10 @@
artifact.getVersion(), artifact.getScope() );
}
- MavenProject project = getCachedProject( projectArtifact.getGroupId(),
projectArtifact.getArtifactId(),
- projectArtifact.getVersion()
);
+ CachedModel cachedModel = getCachedProject(
projectArtifact.getGroupId(), projectArtifact.getArtifactId(),
+
projectArtifact.getVersion() );
Model model;
- if ( project == null )
+ if ( cachedModel == null )
{
String projectId = ArtifactUtils.versionlessKey( projectArtifact );
@@ -434,7 +433,7 @@
}
else
{
- model = project.getModel();
+ model = cachedModel.getModel();
}
return model;
@@ -696,9 +695,8 @@
if ( !modelCache.containsKey( key ) )
{
// clone the model because the profile injection below will modify
this instance
- MavenProject p = new MavenProject( ModelUtils.cloneModel( model )
);
- p.setFile( project.getFile() );
- modelCache.put( key, p );
+ CachedModel cachedModel = new CachedModel( project.getFile(),
ModelUtils.cloneModel( model ) );
+ modelCache.put( key, cachedModel );
}
List activeProfiles = project.getActiveProfiles();
@@ -879,12 +877,12 @@
// the only way this will have a value is if we find the parent on
disk...
File parentDescriptor = null;
- MavenProject p =
+ CachedModel cachedModel =
getCachedProject( parentModel.getGroupId(),
parentModel.getArtifactId(), parentModel.getVersion() );
- if ( p != null )
+ if ( cachedModel != null )
{
- model = p.getModel();
- parentDescriptor = p.getFile();
+ model = cachedModel.getModel();
+ parentDescriptor = cachedModel.getDescriptor();
}
else
{
@@ -1158,9 +1156,9 @@
}
}
- private MavenProject getCachedProject( String groupId, String artifactId,
String version )
+ private CachedModel getCachedProject( String groupId, String artifactId,
String version )
{
- return (MavenProject) modelCache.get( createCacheKey( groupId,
artifactId, version ) );
+ return (CachedModel) modelCache.get( createCacheKey( groupId,
artifactId, version ) );
}
private static String createCacheKey( String groupId, String artifactId,
String version )
@@ -1365,5 +1363,28 @@
throws ContextException
{
this.container = (PlexusContainer) context.get(
PlexusConstants.PLEXUS_KEY );
+ }
+
+ private static class CachedModel
+ {
+ private File descriptor;
+
+ private Model model;
+
+ public CachedModel( File descriptor, Model model )
+ {
+ this.descriptor = descriptor;
+ this.model = model;
+ }
+
+ public File getDescriptor()
+ {
+ return descriptor;
+ }
+
+ public Model getModel()
+ {
+ return model;
+ }
}
}