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/14 20:37:34 UTC

svn commit: r676674 - in /maven/sandbox/branches/SI_MAVEN_2_1/maven-project/src: main/java/org/apache/maven/project/ main/java/org/apache/maven/project/builder/impl/ test/resources/org/apache/maven/project/ test/resources/org/apache/maven/project/canon...

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>