Author: sisbell Date: Mon Jul 14 11:37:33 2008 New Revision: 676674 URL: http://svn.apache.org/viewvc?rev=676674&view=rev Log: Fixed bugs 1) which allowed old builder code to execute; 2) not finding parent pom on local path.
Modified: maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Modified: maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=676674&r1=676673&r2=676674&view=diff ============================================================================== --- maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original) +++ maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Mon Jul 14 11:37:33 2008 @@ -11,7 +11,7 @@ * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, + * Unless required by applicable law or agreed to in writing, r * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the @@ -502,7 +502,11 @@ { // getLogger().debug( "Allowing project-build to proceed for: " + projectDescriptor ); - Model model = readModel( "unknown", projectDescriptor, STRICT_MODEL_PARSING ); + //Model model = readModel( "unknown", projectDescriptor, STRICT_MODEL_PARSING ); + + Model model = readModel( "unknown", projectDescriptor, new PomArtifactResolver(config.getLocalRepository(), + buildArtifactRepositories( getSuperModel() ), artifactResolver) ); + project = buildInternal( model, config, @@ -511,6 +515,7 @@ STRICT_MODEL_PARSING, true, true ); + } // else // { @@ -1796,48 +1801,6 @@ } } - private Model readModel( String projectId, - File file, - boolean strict ) - throws ProjectBuildingException - { - Reader reader = null; - try - { - reader = ReaderFactory.newXmlReader( file ); - - String modelSource = IOUtil.toString( reader ); - - checkModelVersion( modelSource, projectId, file ); - - StringReader sReader = new StringReader( modelSource ); - - try - { - return modelReader.read( sReader, strict ); - } - catch ( XmlPullParserException e ) - { - throw new InvalidProjectModelException( projectId, "Parse error reading POM. Reason: " + e.getMessage(), - file, e ); - } - } - catch ( FileNotFoundException e ) - { - throw new ProjectBuildingException( projectId, - "Could not find the model file '" + file.getAbsolutePath() + "'.", file, e ); - } - catch ( IOException e ) - { - throw new ProjectBuildingException( projectId, "Failed to build model from file '" + - file.getAbsolutePath() + "'.\nError: \'" + e.getLocalizedMessage() + "\'", file, e ); - } - finally - { - IOUtil.close( reader ); - } - } - private void checkModelVersion( String modelSource, String projectId, File file ) @@ -2107,8 +2070,14 @@ PomArtifactResolver resolver ) throws ProjectBuildingException { - //System.out.println(projectDescriptor.getAbsolutePath()); + 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.buildFromStream(new FileInputStream(projectDescriptor), null, resolver, Modified: maven/sandbox/branches/SI_MAVEN_2_1/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/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=676674&r1=676673&r2=676674&view=diff ============================================================================== --- maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original) +++ maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Mon Jul 14 11:37:33 2008 @@ -101,34 +101,38 @@ List<DomainModel> domainModels = new ArrayList<DomainModel>(); Parent parent = domainModel.getModel().getParent(); + if (parent == null) { return domainModels; } - + logger.info("Parent: " + parent.getArtifactId()); Artifact artifactParent = artifactFactory.createParentArtifact(parent.getGroupId(), parent.getArtifactId(), parent.getVersion()); try { artifactResolver.resolve(artifactParent); } catch (IOException e) { - e.printStackTrace(); - throw new IOException("getDomainModelFromRepository"); + // throw new IOException("getDomainModelFromRepository"); } if (!artifactParent.getFile().exists()) { logger.info("Parent pom does not exist in repository: File = " + artifactParent.getFile().getAbsolutePath()); Model model = domainModel.getModel(); - // System.out.println("PATH = " + projectDirectory.getAbsolutePath() + ":" + model.getParent().getRelativePath()); - // System.out.println(new File(projectDirectory, model.getParent().getRelativePath()).getCanonicalFile()); + File parentFile = new File(projectDirectory, model.getParent().getRelativePath()).getCanonicalFile(); if( parentFile.isDirectory()) { parentFile = new File(parentFile, "pom.xml"); } + + //logger.info("Project Directory = " + projectDirectory.getAbsolutePath()) ; + //logger.info("Relative PATH = " + model.getParent().getRelativePath()); + //logger.info("File:" + new File(projectDirectory, model.getParent().getRelativePath()).getAbsolutePath()); + //logger.info("Canonical Parent File: = " + parentFile.getAbsolutePath()); + if (!parentFile.exists()) { logger.warn("Parent pom does not exist on local path: File = " + parentFile.getAbsolutePath()); - return domainModels; - // throw new IOException("Parent pom does not exist: File = " + artifactParent.getFile() + ", Child Id = " + - // model.getGroupId() + ":" + model.getArtifactId() + ":" + model.getVersion()); + throw new IOException("Parent pom does not exist: File = " + artifactParent.getFile() + ", Child Id = " + + model.getGroupId() + ":" + model.getArtifactId() + ":" + model.getVersion()); } artifactParent.setFile(parentFile); } @@ -138,7 +142,7 @@ } domainModels.add(parentDomainModel); - domainModels.addAll(getDomainModelParentsFromRepository(parentDomainModel, artifactResolver, projectDirectory)); + domainModels.addAll(getDomainModelParentsFromRepository(parentDomainModel, artifactResolver, artifactParent.getFile().getParentFile())); return domainModels; } Modified: maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?rev=676674&r1=676673&r2=676674&view=diff ============================================================================== --- maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml (original) +++ maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml Mon Jul 14 11:37:33 2008 @@ -75,12 +75,25 @@ </requirement> </requirements> </component> + <component> + <role>org.apache.maven.project.builder.ProjectBuilder</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.project.builder.impl.DefaultProjectBuilder</implementation> + <requirements> + <requirement> + <role>org.apache.maven.artifact.factory.ArtifactFactory</role> + </requirement> + </requirements> + </component> <component> <role>org.apache.maven.project.MavenProjectBuilder</role> <role-hint>test</role-hint> <implementation>org.apache.maven.project.TestProjectBuilder</implementation> <requirements> <requirement> + <role>org.apache.maven.project.builder.ProjectBuilder</role> + </requirement> + <requirement> <role>org.apache.maven.project.workspace.ProjectWorkspace</role> </requirement> <requirement> Modified: maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?rev=676674&r1=676673&r2=676674&view=diff ============================================================================== --- maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml (original) +++ maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Mon Jul 14 11:37:33 2008 @@ -73,12 +73,26 @@ </requirement> </requirements> </component> + <component> + <role>org.apache.maven.project.builder.ProjectBuilder</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.project.builder.impl.DefaultProjectBuilder</implementation> + <requirements> + <requirement> + <role>org.apache.maven.artifact.factory.ArtifactFactory</role> + </requirement> + </requirements> + </component> + <component> <role>org.apache.maven.project.MavenProjectBuilder</role> <role-hint>test</role-hint> <implementation>org.apache.maven.project.TestProjectBuilder</implementation> <requirements> <requirement> + <role>org.apache.maven.project.builder.ProjectBuilder</role> + </requirement> + <requirement> <role>org.apache.maven.project.workspace.ProjectWorkspace</role> </requirement> <requirement>