Author: maartenc
Date: Thu Oct  2 13:19:59 2008
New Revision: 701232

URL: http://svn.apache.org/viewvc?rev=701232&view=rev
Log:
FIX: Maven2 parser doesn't support POMs with <model> as root (IVY-932)

Added:
    ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-model.pom
Modified:
    ant/ivy/core/trunk/CHANGES.txt
    ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
    
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java

Modified: ant/ivy/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=701232&r1=701231&r2=701232&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Thu Oct  2 13:19:59 2008
@@ -99,6 +99,7 @@
 - FIX: ivy:settings doesn't work if id is a property (IVY-925)
 - FIX: HttpClientHandler hanging in certain cases (IVY-930) (thanks to Scott 
Hebert)
 - FIX: Can't download files containing space or + in their names by HTTP 
(IVY-923)
+- FIX: Maven2 parser doesn't support POMs with <model> as root (IVY-932)
 
    2.0.0-rc1
 =====================================

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java?rev=701232&r1=701231&r2=701232&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java 
(original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java 
Thu Oct  2 13:19:59 2008
@@ -58,6 +58,7 @@
     private static final String DEPENDENCIES = "dependencies";
     private static final String DEPENDENCY_MGT = "dependencyManagement";
     private static final String PROJECT = "project";
+    private static final String MODEL = "model";
     private static final String GROUP_ID = "groupId";
     private static final String ARTIFACT_ID = "artifactId";
     private static final String VERSION = "version";
@@ -99,7 +100,7 @@
                 }
             });
             projectElement = pomDomDoc.getDocumentElement();
-            if (!PROJECT.equals(projectElement.getNodeName())) {
+            if (!PROJECT.equals(projectElement.getNodeName()) && 
!MODEL.equals(projectElement.getNodeName())) {
                 throw new SAXParseException("project must be the root tag" , 
res.getName() , 
                                             res.getName(), 0, 0);
             }

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java?rev=701232&r1=701231&r2=701232&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
 Thu Oct  2 13:19:59 2008
@@ -631,5 +631,25 @@
             settings, getClass().getResource("test-entity.pom"), true);
         assertNotNull(md);        
     }
+    
+    public void testModel() throws Exception {
+        ModuleDescriptor md = 
PomModuleDescriptorParser.getInstance().parseDescriptor(
+            settings, getClass().getResource("test-model.pom"), false);
+        assertNotNull(md);
+
+        ModuleRevisionId mrid = ModuleRevisionId.newInstance("org.apache", 
"test", "1.0");
+        assertEquals(mrid, md.getModuleRevisionId());
+
+        assertNotNull(md.getConfigurations());
+        
assertEquals(Arrays.asList(PomModuleDescriptorBuilder.MAVEN2_CONFIGURATIONS), 
Arrays
+                .asList(md.getConfigurations()));
+
+        Artifact[] artifact = md.getArtifacts("master");
+        assertEquals(1, artifact.length);
+        assertEquals(mrid, artifact[0].getModuleRevisionId());
+        assertEquals("test", artifact[0].getName());
+        assertEquals("jar", artifact[0].getExt());
+        assertEquals("jar", artifact[0].getType());
+    }
 
 }

Added: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-model.pom
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-model.pom?rev=701232&view=auto
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-model.pom 
(added)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-model.pom 
Thu Oct  2 13:19:59 2008
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+   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.    
+-->
+<model>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache</groupId>
+  <artifactId>test</artifactId>
+  <name>Test Module for Ivy M2 parsing</name>
+  <version>1.0</version>
+  <url>http://ant.apache.org/ivy</url>
+  <organization>
+    <name>Jayasoft</name>
+    <url>http://www.jayasoft.org/</url>
+  </organization>
+</model>


Reply via email to