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