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/07/18 08:07:50 UTC

svn commit: r677830 - in /maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project: ./ builder/ builder/impl/

Author: sisbell
Date: Thu Jul 17 23:07:49 2008
New Revision: 677830

URL: http://svn.apache.org/viewvc?rev=677830&view=rev
Log:
Numerous fixes.

Added:
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DomainModelCache.java
Modified:
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
    maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java

Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=677830&r1=677829&r2=677830&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Thu Jul 17 23:07:49 2008
@@ -126,7 +126,7 @@
     implements MavenProjectBuilder,
     Initializable, LogEnabled
 {
-    protected MavenProfilesBuilder profilesBuilder;
+    protected MavenProfilesBuilder profilesBuilder;                        
 
     protected ArtifactResolver artifactResolver;
 
@@ -487,28 +487,16 @@
     {
 //        getLogger().debug( "Checking cache-hit on project (in build*): " + projectDescriptor );
 
-        MavenProject legacy_project = projectWorkspace.getProject( projectDescriptor );
-
-   //     if ( legacy_project == null )
-     //   {
-//            getLogger().debug( "Allowing project-build to proceed for: " + projectDescriptor );
-
-            Model legacy_model = readModelLegacy( "unknown", projectDescriptor, STRICT_MODEL_PARSING );
-
-            legacy_project = buildInternal(legacy_model,
-                config,
-                buildArtifactRepositories( getSuperModel() ),
-                projectDescriptor,
-                STRICT_MODEL_PARSING,
-                true,
-                true );
+        MavenProject project = projectWorkspace.getProject( projectDescriptor );
 
+        if ( project == null )
+        {
             Model model = readModelFromLocalPath( "unknown", projectDescriptor, new PomArtifactResolver(config.getLocalRepository(),
                     buildArtifactRepositories( getSuperModel() ), artifactResolver) );
-            Parent parent = legacy_model.getParent();
+            Parent parent = model.getParent();
 
-            model.setParent(null);
-            MavenProject project = buildInternal(model,
+           //model.setParent(null);
+            project = buildInternal(model,
                 config,
                 buildArtifactRepositories( getSuperModel() ),
                 projectDescriptor,
@@ -516,42 +504,9 @@
                 true,
                 true );
 
-        project.getModel().setParent(parent);
-        /*
-        PomClassicDomainModel domainModel = null;
-        PomClassicDomainModel legacy_domainModel = null;
-        try {
-            domainModel = new PomClassicDomainModel(project.getModel());
-            legacy_domainModel = new PomClassicDomainModel(legacy_project.getModel());
-
-            if(!domainModel.equals(legacy_domainModel)) {
-                byte[] x = domainModel.asString().getBytes();
-                byte[] y = legacy_domainModel.asString().getBytes();
-                int breakPoint = x.length;
-                for(int i = 0; i < x.length; i++) {
-                    if(x[i] != y[i]) {
-                        System.out.println("Break at position = " + i);
-                        breakPoint = i;
-                        break;
-                    }
-                }
-
-                System.out.println("-----------------***");
-                System.out.println(domainModel.asString().substring(0, breakPoint));
-                System.out.println("--------------------BREAK-------------------");
-                System.out.println(domainModel.asString().substring(breakPoint, x.length));
-
-                System.out.println(legacy_domainModel.asString().substring(0, breakPoint));
-                System.out.println("--------------------BREAK-------------------");
-                System.out.println(legacy_domainModel.asString().substring(breakPoint, y.length));
+       //     project.getModel().setParent(parent);
 
-                System.out.println("------------------");
-               // throw new ProjectBuildingException("", "");
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
         }
-         */
         return project;
     }
 
@@ -560,8 +515,9 @@
                                            ArtifactRepository localRepository )
         throws ProjectBuildingException
     {
-        String projectId = safeVersionlessKey( artifact.getGroupId(), artifact.getArtifactId() );
 
+        String projectId = safeVersionlessKey( artifact.getGroupId(), artifact.getArtifactId() );
+        getLogger().info("findModelFromRepository ID = " + projectId);
         remoteArtifactRepositories = normalizeToArtifactRepositories( remoteArtifactRepositories, projectId );
 
         Artifact projectArtifact;
@@ -593,45 +549,11 @@
 
             legacy_model = readModelLegacy( projectId, file, STRICT_MODEL_PARSING );
 
-            model =  readModelFromRepository( "unknown", file, new PomArtifactResolver(localRepository,
-                    buildArtifactRepositories( getSuperModel() ), artifactResolver) );
-            model.setParent(legacy_model.getParent());
-
-            /*
-            PomClassicDomainModel domainModel = new PomClassicDomainModel(model);
-            PomClassicDomainModel legacy_domainModel = new PomClassicDomainModel(legacy_model);
-
-            if(!domainModel.equals(legacy_domainModel)) {
-                byte[] x = domainModel.asString().getBytes();
-                byte[] y = legacy_domainModel.asString().getBytes();
-                int breakPoint = x.length;
-                for(int i = 0; i < x.length; i++) {
-                    if(x[i] != y[i]) {
-                        System.out.println("Break at position = " + i);
-                        breakPoint = i;
-                        break;
-                    }
-                }
-
-                System.out.println("-----------------Repository Model: File* = " + file.getAbsolutePath());
-                System.out.println(domainModel.asString().substring(0, breakPoint));
-                System.out.println("--------------------BREAK-------------------");
-                System.out.println(domainModel.asString().substring(breakPoint, x.length));
-
-                System.out.println(legacy_domainModel.asString().substring(0, breakPoint));
-                System.out.println("--------------------BREAK-------------------");
-                System.out.println(legacy_domainModel.asString().substring(breakPoint, y.length));
-
-                System.out.println("------------------");
-              //  throw new ProjectBuildingException("", "");
-
-            }
-            */
             String downloadUrl = null;
 
             ArtifactStatus status = ArtifactStatus.NONE;
 
-            DistributionManagement distributionManagement = model.getDistributionManagement();
+            DistributionManagement distributionManagement = legacy_model.getDistributionManagement();
 
             if ( distributionManagement != null )
             {
@@ -650,7 +572,7 @@
             }
             else
             {
-                projectArtifact.setDownloadUrl( model.getUrl() );
+                projectArtifact.setDownloadUrl( legacy_model.getUrl() );
             }
         }
         catch ( ArtifactResolutionException e )
@@ -661,12 +583,8 @@
         {
             throw new ProjectBuildingException( projectId, "POM '" + projectId + "' not found in repository: " + e.getMessage(), e );
         }
-        /*
-        catch(IOException e) {
-            throw new ProjectBuildingException( projectId, "POM '" + projectId + "' not found in repository: " + e.getMessage(), e );
-        } */
 
-        return model;
+        return legacy_model;
     }
 
     private List normalizeToArtifactRepositories( List remoteArtifactRepositories,
@@ -914,9 +832,9 @@
 
 //        getLogger().debug( "Caching project: " + project.getId() + " (also keyed by file: " + project.getFile() + ")" );
 
-        //TODO: SI  - Disable for now
-     //   projectWorkspace.storeProjectByCoordinate( project );
-     //   projectWorkspace.storeProjectByFile( project );
+
+        projectWorkspace.storeProjectByCoordinate( project );
+        projectWorkspace.storeProjectByFile( project );
 
         project.setManagedVersionMap( createManagedVersionMap( projectId, project.getDependencyManagement(), projectDescriptor ) );
 
@@ -2172,7 +2090,7 @@
        MavenProject mavenProject;
        try {
            mavenProject = projectBuilder.buildFromLocalPath(new FileInputStream(projectDescriptor),
-                   Arrays.asList(getSuperModel()), null, resolver,
+                   null, null, resolver,
                    projectDescriptor.getParentFile());
        } catch (IOException e) {
            e.printStackTrace();
@@ -2182,31 +2100,4 @@
       return mavenProject.getModel();
 
    }
-
-    private Model readModelFromRepository( String projectId,
-                            File projectDescriptor,
-                            PomArtifactResolver resolver )
-       throws ProjectBuildingException
-   {
-       if(projectDescriptor == null) {
-           throw new IllegalArgumentException("projectDescriptor: null, Project Id =" + projectId);
-       }
-
-       if(projectBuilder == null) {
-           throw new IllegalArgumentException("projectBuilder: not initialized");
-       }
-
-       MavenProject mavenProject;
-       try {
-           mavenProject = projectBuilder.buildFromRepository(new FileInputStream(projectDescriptor),
-                   Arrays.asList(getSuperModel()), null, resolver
-           );
-       } catch (IOException e) {
-           e.printStackTrace();
-           throw new ProjectBuildingException(projectId, "File = " + projectDescriptor.getAbsolutePath() , e);
-       }
-
-      return mavenProject.getModel();
-
-   }
 }

Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java?rev=677830&r1=677829&r2=677830&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java Thu Jul 17 23:07:49 2008
@@ -41,6 +41,8 @@
 
         private String version;
 
+        private String type;
+
         private List<ModelProperty> properties;
 
         private ArtifactModelContainer(List<ModelProperty> properties) {
@@ -54,6 +56,8 @@
                     this.artifactId = mp.getValue();
                 } else if (mp.getUri().endsWith("groupId")) {
                     this.groupId = mp.getValue();
+                } else if(mp.getUri().equals(ProjectUri.Dependencies.Dependency.type)) {
+                    this.type = mp.getValue();
                 }
             }
             if (groupId == null) {
@@ -66,6 +70,10 @@
                 throw new IllegalArgumentException("Properties does not contain artifact id. Group ID = " + groupId +
                         ", Version = " + version);
             }
+
+            if(type == null) {
+                type = "";
+            }
         }
 
         public ModelContainerAction containerAction(ModelContainer modelContainer) {
@@ -82,7 +90,16 @@
                 if (c.version == null) {
                     return ModelContainerAction.NOP;
                 }
-                return (c.version.equals(version)) ? ModelContainerAction.JOIN : ModelContainerAction.DELETE;
+
+                if(c.version.equals(version)) {
+                    if(c.type.equals(type)) {
+                        return ModelContainerAction.JOIN;
+                    } else {
+                        return ModelContainerAction.NOP; 
+                    }
+                } else {
+                   return ModelContainerAction.DELETE;
+                }
             } else {
                 return ModelContainerAction.NOP;
             }

Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java?rev=677830&r1=677829&r2=677830&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java Thu Jul 17 23:07:49 2008
@@ -15,7 +15,6 @@
             ProjectUri.Reporting.Plugins.Plugin.ReportSets.ReportSet.xUri,
             ProjectUri.Profiles.Profile.xUri,
             ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri
-            //ProjectUri.Profiles.Profile.Build.Plugins.Plugin.Executions.Execution.xUri
     ));
 
     public Collection<String> getUris() {

Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java?rev=677830&r1=677829&r2=677830&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java Thu Jul 17 23:07:49 2008
@@ -22,6 +22,9 @@
 
     private String eventHistory;
 
+    private Model model;
+
+
     /**
      * Constructor
      *
@@ -46,6 +49,25 @@
         this.inputBytes = removeIllegalCharacters(IOUtil.toByteArray(inputStream));
     }
 
+    public boolean matchesModel(Model a) {
+        Model model;
+        try {
+            model = getModel();
+        } catch (IOException e) {
+            return false;
+        }
+
+        String groupId = (model.getGroupId() == null) ? model.getParent().getGroupId() : model.getGroupId();
+        String artifactId = (model.getArtifactId() == null) ? model.getParent().getArtifactId() : model.getArtifactId();
+        String version = (model.getVersion() == null) ? model.getParent().getVersion() : model.getVersion();
+
+        String aGroupId = (a.getGroupId() == null) ? a.getParent().getGroupId() : a.getGroupId();
+        String aArtifactId = (a.getArtifactId() == null) ? a.getParent().getArtifactId() : a.getArtifactId();
+        String aVersion = (a.getVersion() == null) ? a.getParent().getVersion() : a.getVersion();
+
+        return groupId.equals(aGroupId) && artifactId.equals(aArtifactId) && version.equals(aVersion);
+    }
+
     public boolean matchesParent(Parent parent) {
         Model model;
         try {
@@ -80,8 +102,11 @@
      * @return maven model
      */
     public Model getModel() throws IOException {
+        if(model != null) {
+            return model;
+        }
         try {                                                                
-            return new MavenXpp3Reader().read( new ByteArrayInputStream( inputBytes ) );
+            return new MavenXpp3Reader().read( ReaderFactory.newXmlReader(new ByteArrayInputStream( inputBytes )) );
         }
         catch (XmlPullParserException e) {
             e.printStackTrace();

Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java?rev=677830&r1=677829&r2=677830&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java Thu Jul 17 23:07:49 2008
@@ -24,6 +24,9 @@
         this.uris = new HashSet<String>(Arrays.asList(
                 ProjectUri.Build.Extensions.xUri,
                 ProjectUri.Build.PluginManagement.Plugins.xUri,
+                ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.xUri,
+                ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.Dependency.Exclusions.xUri,
+                ProjectUri.Build.PluginManagement.Plugins.Plugin.Executions.xUri,
                 ProjectUri.Build.Plugins.xUri,
                 ProjectUri.Build.Plugins.Plugin.configuration,
                 ProjectUri.Build.Plugins.Plugin.Dependencies.xUri,
@@ -32,9 +35,7 @@
                 ProjectUri.Build.Resources.Resource.includes,
                 ProjectUri.Build.Resources.Resource.excludes,
                 ProjectUri.Build.TestResources.xUri,
-                //ProjectUri.Build.TestResources.TestResource.Includes.xUri,
-              //  ProjectUri.Build.TestResources.TestResource.excludes,
-
+   
                 ProjectUri.CiManagement.Notifiers.xUri,
 
                 ProjectUri.Contributors.xUri,
@@ -76,13 +77,7 @@
                 "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/dependencies/dependency/exclusions#collection",
                 "http://apache.org/maven/project/profiles/profile/dependencyManagement/dependencies/dependency/exclusions#collection",
                 "http://apache.org/maven/project/profiles/profile/reporting/plugins/plugin/reportSets#collection",
-                "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/executions#collection",
-
-                "http://apache.org/maven/project/build/plugins/plugin/dependencies/dependency/exclusions#collection",
-                "http://apache.org/maven/project/build/pluginManagement/plugins/plugin/dependencies/dependency/exclusions#collection",
-                "http://apache.org/maven/project/build/pluginManagement/plugins/plugin/executions#collection",
-                "http://apache.org/maven/project/build/pluginManagement/plugins/plugin/dependencies#collection"
-
+                "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/executions#collection"
         ));
     }
 
@@ -250,8 +245,15 @@
                if(domainModels.indexOf(domainModel) > 0 && mp.getUri().startsWith(ProjectUri.Build.TestResources.xUri)){
                    clearedProperties.add(mp);
                }
-           }
+            }
 
+            //Profiles not inherited rule
+            for(ModelProperty mp : tmp) {
+               if(domainModels.indexOf(domainModel) > 0 && mp.getUri().startsWith(ProjectUri.Profiles.xUri)){
+                   clearedProperties.add(mp);
+               }
+            }
+                       
             ModelProperty artifactId = getPropertyFor(ProjectUri.artifactId, tmp);
             if(artifactId != null) {
                 projectNames.add(0, artifactId.getValue());
@@ -261,12 +263,13 @@
             modelProperties.addAll(tmp);
 
             //Remove Parent Info
+            /*
             for (ModelProperty mp : tmp) {
                 if (mp.getUri().startsWith(ProjectUri.Parent.xUri)) {
                     modelProperties.remove(mp);
                 }
             }
-            
+                       */
         }
         return modelProperties;
     }

Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java?rev=677830&r1=677829&r2=677830&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java Thu Jul 17 23:07:49 2008
@@ -19,9 +19,4 @@
                                     PomArtifactResolver resolver, File baseDirectory)
             throws IOException;
 
-    MavenProject buildFromRepository(InputStream pom, List<Model> inheritedModels,
-                                     Collection<InterpolatorProperty> interpolatorProperties,
-                                     PomArtifactResolver resolver)
-            throws IOException;
-
 }

Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=677830&r1=677829&r2=677830&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Thu Jul 17 23:07:49 2008
@@ -38,55 +38,12 @@
         this.artifactFactory = artifactFactory;
     }
 
-    public MavenProject buildFromRepository(InputStream pom, List<Model> inheritedModels,
-                                            Collection<InterpolatorProperty> interpolatorProperties,
-                                            PomArtifactResolver resolver)
-            throws IOException {
-
-        if (pom == null) {
-            throw new IllegalArgumentException("pom: null");
-        }
-
-        if (resolver == null) {
-            throw new IllegalArgumentException("resolver: null");
-        }
-
-        if(inheritedModels == null) {
-            inheritedModels = new ArrayList<Model>();
-        } else {
-            inheritedModels = new ArrayList<Model>(inheritedModels);
-            Collections.reverse(inheritedModels);                     
-        }
-
-        List<InterpolatorProperty> properties;
-        if (interpolatorProperties == null) {
-            properties = new ArrayList<InterpolatorProperty>();
-        } else {
-            properties = new ArrayList<InterpolatorProperty>(interpolatorProperties);
-        }
-
-        DomainModel domainModel = new PomClassicDomainModel(pom);
-        List<DomainModel> domainModels = new ArrayList<DomainModel>();
-        domainModels.add(domainModel);
-        domainModels.addAll(getDomainModelParentsFromRepository((PomClassicDomainModel) domainModel, resolver));
-        for(Model model : inheritedModels) {
-            domainModels.add(new PomClassicDomainModel(model));
-        }
-
-        PomClassicTransformer transformer = new PomClassicTransformer();
-        ModelTransformerContext ctx = new ModelTransformerContext(
-                Arrays.asList(new ArtifactModelContainerFactory(), new IdModelContainerFactory()));
-        Model model = ((PomClassicDomainModel) ctx.transform(domainModels, transformer,
-                transformer, properties)).getModel();
-              //  System.out.println("*:" + new PomClassicDomainModel(model).asString());
-        return new MavenProject(model);
-    }
-
     public MavenProject buildFromLocalPath(InputStream pom, List<Model> inheritedModels,
                                            Collection<InterpolatorProperty> interpolatorProperties,
                                            PomArtifactResolver resolver, File projectDirectory)
             throws IOException {
-
+        logger.info("BuildFromLocalPath");
+        long start = System.currentTimeMillis();
         if (pom == null) {
             throw new IllegalArgumentException("pom: null");
         }
@@ -119,7 +76,6 @@
 
         if(domainModel.getModel().getParent() != null) {
             if(isParentLocal(domainModel.getModel().getParent(), projectDirectory )) {
-                logger.info("Found parent on local path:");
                  domainModels.addAll(getDomainModelParentsFromLocalPath(domainModel, resolver,
                          projectDirectory));
             }  else {
@@ -136,8 +92,9 @@
                 Arrays.asList(new ArtifactModelContainerFactory(), new IdModelContainerFactory()));
         PomClassicDomainModel transformedDomainModel = ((PomClassicDomainModel) ctx.transform(domainModels, transformer,
                 transformer, properties));
-        //logger.info(transformedDomainModel.getEventHistory());
-        return new MavenProject(transformedDomainModel.getModel());
+        Model model = transformedDomainModel.getModel();
+        System.out.println("buildFromLocalPath: Time = " + (System.currentTimeMillis() - start));
+        return new MavenProject(model);
     }
 
     private boolean isParentLocal(Parent parent, File projectDirectory){
@@ -159,12 +116,13 @@
             throw new IllegalArgumentException("artifactFactory: not initialized");
         }
 
+        long start = System.currentTimeMillis();
+
         List<DomainModel> domainModels = new ArrayList<DomainModel>();
 
         Parent parent = domainModel.getModel().getParent();
 
         if (parent == null) {
-            logger.info("End of inheritance chain");
             return domainModels;
         }
 
@@ -177,12 +135,14 @@
             logger.warn("Parent pom ids do not match: File = " + artifactParent.getFile().getAbsolutePath());
             return domainModels;
         } else {
-            logger.info("Adding pom to hierarchy: Group Id = " + parent.getGroupId() + ", Artifact Id ="
-                + parent.getArtifactId()  + ", Version = " + parent.getVersion() + ", File" + artifactParent.getFile());
+          //  logger.info("Adding pom to hierarchy: Group Id = " + parent.getGroupId() + ", Artifact Id ="
+          //      + parent.getArtifactId()  + ", Version = " + parent.getVersion() + ", File" + artifactParent.getFile());
         }
 
         domainModels.add(parentDomainModel);
         domainModels.addAll(getDomainModelParentsFromRepository(parentDomainModel, artifactResolver));
+        System.out.println("getDomainModelParentsFromRepository: Time = " + (System.currentTimeMillis() - start) + ", Gid ="
+                + parent.getGroupId() + ", Artifact Id= " + parent.getArtifactId() + ", Version = " + parent.getVersion());
         return domainModels;
     }
 
@@ -195,29 +155,22 @@
         if (artifactFactory == null) {
             throw new IllegalArgumentException("artifactFactory: not initialized");
         }
+        long start = System.currentTimeMillis();
+
 
         List<DomainModel> domainModels = new ArrayList<DomainModel>();
 
         Parent parent = domainModel.getModel().getParent();
 
         if (parent == null) {
-            logger.info("End of inheritance chain");
             return domainModels;
         }
 
         Model model = domainModel.getModel();
         
-        logger.info("-----------------");
-        System.out.println("Project Directory =" + projectDirectory.getAbsolutePath());
-        logger.info("Parent Path = " + model.getParent().getRelativePath());
-        logger.info("Relative Path = " + new File(projectDirectory, model.getParent().getRelativePath()));
-
         File parentFile = new File(projectDirectory, model.getParent().getRelativePath()).getCanonicalFile();
-        //logger.info("Parent File = " + parentFile.getAbsolutePath());
         if (parentFile.isDirectory()) {
-          //  logger.info("Is directory = " + parentFile.getAbsolutePath());
             parentFile = new File(parentFile.getAbsolutePath(), "pom.xml");
-            //logger.info("New Directory = " + parentFile.getAbsolutePath());
         }
 
         if(!parentFile.exists()) {
@@ -232,13 +185,14 @@
         domainModels.add(parentDomainModel);
         if(parentDomainModel.getModel().getParent() != null) {
             if(isParentLocal( parentDomainModel.getModel().getParent(), parentFile.getParentFile() )) {
-              //  logger.info("Parent Local: " + parentFile.getParentFile());
                  domainModels.addAll(getDomainModelParentsFromLocalPath(parentDomainModel, artifactResolver, parentFile.getParentFile()));
             }  else {
-                //logger.info("Parent Repo: ");
                 domainModels.addAll(getDomainModelParentsFromRepository(parentDomainModel, artifactResolver));
             }
         }
+
+        System.out.println("getDomainModelParentsFromLocalPath: Time = " + (System.currentTimeMillis() - start) + ", Gid ="
+                + model.getGroupId() + ", Artifact Id= " + model.getArtifactId() + ", Version = " + model.getVersion());
         return domainModels;
     }
 

Added: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DomainModelCache.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DomainModelCache.java?rev=677830&view=auto
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DomainModelCache.java (added)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/builder/impl/DomainModelCache.java Thu Jul 17 23:07:49 2008
@@ -0,0 +1,59 @@
+package org.apache.maven.project.builder.impl;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.project.builder.PomClassicDomainModel;
+
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+
+final class DomainModelCache {
+
+    private Set<PomClassicDomainModel> cache;
+
+    DomainModelCache() {
+        cache = new HashSet<PomClassicDomainModel>();
+    }
+
+    public PomClassicDomainModel findDomainModelFor(Model model) {
+        for (PomClassicDomainModel domainModel : cache) {
+            if (domainModel.matchesModel(model)) {
+                System.out.println("Return domain model from cache: " + model.getGroupId() + ":" + model.getArtifactId()
+                        + model.getVersion());
+                return domainModel;
+            }
+        }
+        return null;
+    }
+
+    public PomClassicDomainModel findDomainModelParentFor(Model model) {
+        for (PomClassicDomainModel domainModel : cache) {
+            if (domainModel.matchesParent(model.getParent())) {
+                return domainModel;
+            }
+        }
+        return null;
+    }
+
+    public void storeDomainModel(PomClassicDomainModel domainModel) {
+        if (!cache.contains(domainModel)) {
+            cache.add(domainModel);
+        }
+    }
+
+    public boolean contains(PomClassicDomainModel domainModel) {
+        Model model;
+        try {
+            model = domainModel.getModel();
+        } catch (IOException e) {
+            return false;
+        }
+
+        for (PomClassicDomainModel dm : cache) {
+            if (dm.matchesModel(model)) {
+                return true;
+            }
+        }
+        return false;
+    }
+}