You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by xa...@apache.org on 2007/03/08 13:06:17 UTC

svn commit: r516029 - in /incubator/ivy/core/trunk: ./ src/java/org/apache/ivy/plugins/parser/m2/ test/java/org/apache/ivy/plugins/parser/m2/

Author: xavier
Date: Thu Mar  8 05:06:16 2007
New Revision: 516029

URL: http://svn.apache.org/viewvc?view=rev&rev=516029
Log:
FIX: Incorrect pom parsing with profile (IVY-423)

Added:
    incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/mule-module-builders-1.3.3.pom
Modified:
    incubator/ivy/core/trunk/CHANGES.txt
    incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
    incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java

Modified: incubator/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=diff&rev=516029&r1=516028&r2=516029
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Thu Mar  8 05:06:16 2007
@@ -18,6 +18,7 @@
 
 - FIX: NPE when no organisation or no name is provided in module element of ivyconf (IVY-422)
 - FIX: FileUtil#copy(File src, File dest, CopyProgressListener l, boolean overwrite) (IVY-420)
+- FIX: Incorrect pom parsing with profile (IVY-423)
 - FIX: Ivy doesn't recognize maven2 classifiers (IVY-418)
 - FIX: Static revision replacement is not working when delivering an artifact with a dependency having extra attributes (IVY-415)
 - FIX: Static revision replacement is not working when delivering an artifact with a dependency on a branch (IVY-404)

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java?view=diff&rev=516029&r1=516028&r2=516029
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java Thu Mar  8 05:06:16 2007
@@ -101,9 +101,10 @@
 
         public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
             _contextStack.push(qName);
+            String context = getContext();
             if ("optional".equals(qName)) {
                 _optional = true;
-            } else if ("exclusions".equals(qName)) {
+            } else if ("project/dependencies/dependency/exclusions".equals(context)) {
                 if (_dd == null) {
                     // stores dd now cause exclusions will override org and module
                     _dd = new DefaultDependencyDescriptor(_md, ModuleRevisionId.newInstance(_organisation, _module, _revision), true, false, true);
@@ -111,8 +112,11 @@
                     _module = null;
                     _revision = null;
                 }
-            } else if (_md.getModuleRevisionId() == null  && ("project/dependencies/dependency".equals(getContext()))) {
-                fillMrid();
+            } else if (_md.getModuleRevisionId() == null) {
+            	if ("project/dependencies".equals(context)
+            			|| "project/profiles".equals(context)) {
+            		fillMrid();
+            	}
             }
         }
 
@@ -230,7 +234,8 @@
             if (context.startsWith("project/parent")) {
                 return;
             }
-            if (_md.getModuleRevisionId() == null || context.startsWith("project/dependencies/dependency")) {
+            if (_md.getModuleRevisionId() == null
+            		 || context.startsWith("project/dependencies/dependency")) {
                 if (context.equals("project/groupId")) {
                     _organisation = txt;
                 } else if (_organisation == null && context.endsWith("groupId")) {

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java?view=diff&rev=516029&r1=516028&r2=516029
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java Thu Mar  8 05:06:16 2007
@@ -169,6 +169,14 @@
         assertEquals(ModuleRevisionId.newInstance("junit", "junit", "3.7"), dds[0].getDependencyRevisionId());
     }
     
+    public void testDependenciesInProfile() throws Exception {
+    	// test case for IVY-423
+        ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new IvySettings(), getClass().getResource("mule-module-builders-1.3.3.pom"), false);
+        assertNotNull(md);
+        
+        assertEquals(ModuleRevisionId.newInstance("org.mule.modules", "mule-module-builders", "1.3.3"), md.getModuleRevisionId());
+    }
+    
     public void testOptional() throws Exception {
         ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new IvySettings(), getClass().getResource("test-optional.pom"), false);
         assertNotNull(md);

Added: incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/mule-module-builders-1.3.3.pom
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/mule-module-builders-1.3.3.pom?view=auto&rev=516029
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/mule-module-builders-1.3.3.pom (added)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/mule-module-builders-1.3.3.pom Thu Mar  8 05:06:16 2007
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?><project>
+  <parent>
+    <artifactId>mule-modules</artifactId>
+    <groupId>org.mule.modules</groupId>
+    <version>1.3.3</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>mule-module-builders</artifactId>
+  <name>Mule Configuration Builders</name>
+  <version>1.3.3</version>
+  <description>Standard configuration builders for Mule</description>
+  <profiles>
+    <profile>
+      <id>java14</id>
+
+      <activation>
+        <jdk>1.4</jdk>
+      </activation>
+      <dependencies>
+        <dependency>
+          <groupId>xml-apis</groupId>
+          <artifactId>xml-apis</artifactId>
+
+          <version>1.3.03</version>
+        </dependency>
+        <dependency>
+          <groupId>xerces</groupId>
+          <artifactId>xercesImpl</artifactId>
+          <version>2.8.1</version>
+        </dependency>
+
+        <dependency>
+          <groupId>commons-digester</groupId>
+          <artifactId>commons-digester</artifactId>
+          <version>1.7</version>
+        </dependency>
+      </dependencies>
+    </profile>
+
+    <profile>
+      <id>java5</id>
+      <activation>
+        <jdk>1.5</jdk>
+      </activation>
+      <dependencies>
+        <dependency>
+          <groupId>commons-digester</groupId>
+
+          <artifactId>commons-digester</artifactId>
+          <version>1.7</version>
+          <exclusions>
+            <exclusion>
+              <artifactId>xml-apis</artifactId>
+              <groupId>xml-apis</groupId>
+            </exclusion>
+
+          </exclusions>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+
+      <artifactId>geronimo-servlet_2.4_spec</artifactId>
+      <version>1.0.1</version>
+    </dependency>
+  </dependencies>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+
+</project>
\ No newline at end of file