You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/04/04 00:49:48 UTC
svn commit: r391163 - in
/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project:
DefaultMavenProjectBuilder.java MavenProject.java
Author: jdcasey
Date: Mon Apr 3 15:49:47 2006
New Revision: 391163
URL: http://svn.apache.org/viewcvs?rev=391163&view=rev
Log:
[MNG-2196] Put back raw-project caching, to allow assemblyLineage(..) to use cached project data. Tests to follow...
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/MavenProject.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=391163&r1=391162&r2=391163&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 Mon Apr 3 15:49:47 2006
@@ -151,8 +151,10 @@
private ProfileInjector profileInjector;
private ModelValidator validator;
+
+ private Map rawProjectCache = new HashMap();
- private Map projectCache = new HashMap();
+ private Map processedProjectCache = new HashMap();
// TODO: make it a component
private MavenXpp3Reader modelReader;
@@ -213,7 +215,7 @@
{
String cacheKey = createCacheKey( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() );
- MavenProject project = (MavenProject) projectCache.get( cacheKey );
+ MavenProject project = (MavenProject) processedProjectCache.get( cacheKey );
if ( project != null )
{
@@ -684,6 +686,8 @@
}
project.setOriginalModel( originalModel );
+
+ rawProjectCache.put( createCacheKey( project.getGroupId(), project.getArtifactId(), project.getVersion() ), new MavenProject( project ) );
// we don't have to force the collision exception for superModel here, it's already been done in getSuperModel()
MavenProject previousProject = superProject;
@@ -741,7 +745,7 @@
throw new InvalidProjectModelException( projectId, pomLocation, e.getMessage(), e );
}
- projectCache.put( createCacheKey( project.getGroupId(), project.getArtifactId(), project.getVersion() ), project );
+ processedProjectCache.put( createCacheKey( project.getGroupId(), project.getArtifactId(), project.getVersion() ), project );
// jvz:note
// this only happens if we are building from a source file
@@ -1009,7 +1013,17 @@
File parentDescriptor = null;
model = null;
-
+
+ String parentKey = createCacheKey( parentModel.getGroupId(), parentModel.getArtifactId(), parentModel.getVersion() );
+ MavenProject parentProject = (MavenProject) rawProjectCache.get( parentKey );
+
+ if ( parentProject != null )
+ {
+ model = ModelUtils.cloneModel( parentProject.getModel() );
+
+ parentDescriptor = parentProject.getFile();
+ }
+
String parentRelativePath = parentModel.getRelativePath();
// if we can't find a cached model matching the parent spec, then let's try to look on disk using
Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=391163&r1=391162&r2=391163&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Mon Apr 3 15:49:47 2006
@@ -172,30 +172,71 @@
{
this.dependencyArtifacts = Collections.unmodifiableSet( project.dependencyArtifacts );
}
+
if ( project.artifacts != null )
{
this.artifacts = Collections.unmodifiableSet( project.artifacts );
}
- this.pluginArtifacts = Collections.unmodifiableSet( project.pluginArtifacts );
- this.reportArtifacts = Collections.unmodifiableSet( project.reportArtifacts );
- this.extensionArtifacts = Collections.unmodifiableSet( project.extensionArtifacts );
+
+ if ( project.pluginArtifacts != null )
+ {
+ this.pluginArtifacts = Collections.unmodifiableSet( project.pluginArtifacts );
+ }
+
+ if ( project.reportArtifacts != null )
+ {
+ this.reportArtifacts = Collections.unmodifiableSet( project.reportArtifacts );
+ }
+
+ if ( project.extensionArtifacts != null )
+ {
+ this.extensionArtifacts = Collections.unmodifiableSet( project.extensionArtifacts );
+ }
+
this.parentArtifact = project.parentArtifact;
- this.remoteArtifactRepositories = Collections.unmodifiableList( project.remoteArtifactRepositories );
- this.pluginArtifactRepositories = Collections.unmodifiableList( project.pluginArtifactRepositories );
- this.collectedProjects = Collections.unmodifiableList( project.collectedProjects );
- this.activeProfiles = Collections.unmodifiableList( project.activeProfiles );
-
- // clone properties modifyable by plugins in a forked lifecycle
- this.attachedArtifacts = new ArrayList( project.getAttachedArtifacts() );
-
- // no need for execution project
-
- // clone source roots
- this.compileSourceRoots = new ArrayList( project.compileSourceRoots );
- this.testCompileSourceRoots = new ArrayList( project.testCompileSourceRoots );
- this.scriptSourceRoots = new ArrayList( project.scriptSourceRoots );
-
+ if ( project.remoteArtifactRepositories != null )
+ {
+ this.remoteArtifactRepositories = Collections.unmodifiableList( project.remoteArtifactRepositories );
+ }
+
+ if ( project.pluginArtifactRepositories != null )
+ {
+ this.pluginArtifactRepositories = Collections.unmodifiableList( project.pluginArtifactRepositories );
+ }
+
+ if ( project.collectedProjects != null )
+ {
+ this.collectedProjects = Collections.unmodifiableList( project.collectedProjects );
+ }
+
+ if ( project.activeProfiles != null )
+ {
+ this.activeProfiles = Collections.unmodifiableList( project.activeProfiles );
+ }
+
+ if ( project.getAttachedArtifacts() != null )
+ {
+ // clone properties modifyable by plugins in a forked lifecycle
+ this.attachedArtifacts = new ArrayList( project.getAttachedArtifacts() );
+ }
+
+ if ( project.compileSourceRoots != null )
+ {
+ // clone source roots
+ this.compileSourceRoots = new ArrayList( project.compileSourceRoots );
+ }
+
+ if ( project.testCompileSourceRoots != null )
+ {
+ this.testCompileSourceRoots = new ArrayList( project.testCompileSourceRoots );
+ }
+
+ if ( project.scriptSourceRoots != null )
+ {
+ this.scriptSourceRoots = new ArrayList( project.scriptSourceRoots );
+ }
+
this.model = ModelUtils.cloneModel( project.model );
if ( project.originalModel != null )
@@ -205,7 +246,10 @@
this.executionRoot = project.executionRoot;
- this.artifact = ArtifactUtils.copyArtifact( project.artifact );
+ if ( project.artifact != null )
+ {
+ this.artifact = ArtifactUtils.copyArtifact( project.artifact );
+ }
}
public String getModulePathAdjustment( MavenProject moduleProject ) throws IOException
@@ -799,7 +843,14 @@
public String getGroupId()
{
- return model.getGroupId();
+ String groupId = model.getGroupId();
+
+ if ( groupId == null && model.getParent() != null )
+ {
+ groupId = model.getParent().getGroupId();
+ }
+
+ return groupId;
}
public void setArtifactId( String artifactId )
@@ -837,7 +888,14 @@
public String getVersion()
{
- return model.getVersion();
+ String version = model.getVersion();
+
+ if ( version == null && model.getParent() != null )
+ {
+ version = model.getParent().getVersion();
+ }
+
+ return version;
}
public String getPackaging()