You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/08/05 23:43:24 UTC

svn commit: r801424 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/project/ maven-core/src/test/java/org/apache/maven/project/ maven-core/src/test/resources-project-builder/parent-pom-packaging/ maven-core/src/test/resources-pr...

Author: bentmann
Date: Wed Aug  5 21:43:24 2009
New Revision: 801424

URL: http://svn.apache.org/viewvc?rev=801424&view=rev
Log:
[MNG-4283] [regression] Parent POM with packaging other than "pom" is not rejected

Added:
    maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/   (with props)
    maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml   (with props)
    maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/   (with props)
    maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml   (with props)
Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=801424&r1=801423&r2=801424&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java Wed Aug  5 21:43:24 2009
@@ -113,7 +113,7 @@
             }
             catch ( ModelBuildingException e )
             {
-                throw new ProjectBuildingException( "[unknown]", "Failed to build project for " + pomFile, pomFile, e );
+                throw new ProjectBuildingException( "[unknown]", "Encountered POM errors", pomFile, e );
             }
 
             Model model = result.getEffectiveModel();

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=801424&r1=801423&r2=801424&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java Wed Aug  5 21:43:24 2009
@@ -1636,6 +1636,20 @@
         assertEquals( "PASSED", pom.getValue( "properties/interpolatedProperty" ) );
     }
 
+    public void testParentPomPackagingMustBePom()
+        throws Exception
+    {
+        try
+        {
+            buildPom( "parent-pom-packaging/sub" );
+            fail( "Wrong packaging of parent POM was not rejected" );
+        }
+        catch ( ProjectBuildingException e )
+        {
+            // expected
+        }
+    }
+
     private void assertPathSuffixEquals( String expected, Object actual )
     {
         String a = actual.toString();
@@ -1649,7 +1663,7 @@
     }
     
     private PomTestWrapper buildPom( String pomPath, String... profileIds )
-        throws Exception
+        throws ProjectBuildingException
     {
         return buildPom( pomPath, null, profileIds );
     }

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Added: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml?rev=801424&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml (added)
+++ maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml Wed Aug  5 21:43:24 2009
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+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
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4283</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <!-- NOTE: Any packaging other than "pom" must be rejected for a parent POM -->
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4283</name>
+  <description>
+    Test that the model builder fails when a parent POM has not "pom" packaging.
+  </description>
+</project>

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Added: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml?rev=801424&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml (added)
+++ maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml Wed Aug  5 21:43:24 2009
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+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
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.mng4283</groupId>
+    <artifactId>parent</artifactId>
+    <version>0.1</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng4283</groupId>
+  <artifactId>test</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4283</name>
+  <description>
+    Test that the model builder fails when a parent POM has not "pom" packaging.
+  </description>
+</project>

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java?rev=801424&r1=801423&r2=801424&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java Wed Aug  5 21:43:24 2009
@@ -408,6 +408,14 @@
                     }
                 }
             }
+
+            Model parentModel = parentData.getModel();
+
+            if ( !"pom".equals( parentModel.getPackaging() ) )
+            {
+                problems.addError( "Invalid packaging for parent POM " + ModelProblemUtils.toSourceHint( parentModel )
+                    + ", must be \"pom\" but is \"" + parentModel.getPackaging() + "\"" );
+            }
         }
         else
         {