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 ma...@apache.org on 2007/06/11 22:22:32 UTC
svn commit: r546306 - in /incubator/ivy/core/trunk: CHANGES.txt
src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java
test/java/org/apache/ivy/plugins/version/VersionRangeMatcherTest.java
Author: maartenc
Date: Mon Jun 11 15:22:30 2007
New Revision: 546306
URL: http://svn.apache.org/viewvc?view=rev&rev=546306
Log:
Ivy does not handle multiple version dependencies in maven2 poms correctly (IVY-494)
Modified:
incubator/ivy/core/trunk/CHANGES.txt
incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/version/VersionRangeMatcherTest.java
Modified: incubator/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=diff&rev=546306&r1=546305&r2=546306
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Mon Jun 11 15:22:30 2007
@@ -57,6 +57,7 @@
- IMPROVEMENT: Remove @author tags (thanks to Stephane Bailliez)
- IMPROVEMENT: Remove use of deprecated elements in ivysettings.xml (IVY-505) (with contribution from Jan Materne)
+- FIX: Ivy does not handle multiple version dependencies in maven2 poms correctly (IVY-494)
- FIX: pom parser doesn't necessarily processes all important information (IVY-524)
- FIX: <info> element of Ivy file in cache is not updated when using namespaces (IVY-516)
- FIX: Retrieve Ant task ignores resolveId attribute (IVY-522) (thanks to Scott Goldstein)
Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java?view=diff&rev=546306&r1=546305&r2=546306
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java Mon Jun 11 15:22:30 2007
@@ -66,24 +66,24 @@
private final static String UI_PATTERN = "\\" + UPPER_INFINITE;
- private final static String SEP_PATTERN = "\\" + SEPARATOR;
+ private final static String SEP_PATTERN = "\\s*\\" + SEPARATOR + "\\s*";
private final static String OPEN_PATTERN = "[" + OPEN_INC_PATTERN + OPEN_EXC_PATTERN + "]";
private final static String CLOSE_PATTERN = "[" + CLOSE_INC_PATTERN + CLOSE_EXC_PATTERN + "]";
- private final static String ANY_NON_SPECIAL_PATTERN = "[^" + SEP_PATTERN + OPEN_INC_PATTERN
+ private final static String ANY_NON_SPECIAL_PATTERN = "[^\\s" + SEPARATOR + OPEN_INC_PATTERN
+ OPEN_EXC_PATTERN + CLOSE_INC_PATTERN + CLOSE_EXC_PATTERN + LI_PATTERN + UI_PATTERN
+ "]";
- private final static String FINITE_PATTERN = OPEN_PATTERN + "(" + ANY_NON_SPECIAL_PATTERN
- + "+)" + SEP_PATTERN + "(" + ANY_NON_SPECIAL_PATTERN + "+)" + CLOSE_PATTERN;
+ private final static String FINITE_PATTERN = OPEN_PATTERN + "\\s*(" + ANY_NON_SPECIAL_PATTERN
+ + "+)" + SEP_PATTERN + "(" + ANY_NON_SPECIAL_PATTERN + "+)\\s*" + CLOSE_PATTERN;
- private final static String LOWER_INFINITE_PATTERN = LI_PATTERN + "\\,("
- + ANY_NON_SPECIAL_PATTERN + "+)" + CLOSE_PATTERN;
+ private final static String LOWER_INFINITE_PATTERN = LI_PATTERN + SEP_PATTERN + "("
+ + ANY_NON_SPECIAL_PATTERN + "+)\\s*" + CLOSE_PATTERN;
- private final static String UPPER_INFINITE_PATTERN = OPEN_PATTERN + "("
- + ANY_NON_SPECIAL_PATTERN + "+)\\," + UI_PATTERN;
+ private final static String UPPER_INFINITE_PATTERN = OPEN_PATTERN + "\\s*("
+ + ANY_NON_SPECIAL_PATTERN + "+)" + SEP_PATTERN + UI_PATTERN;
private final static Pattern FINITE_RANGE = Pattern.compile(FINITE_PATTERN);
Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/version/VersionRangeMatcherTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/version/VersionRangeMatcherTest.java?view=diff&rev=546306&r1=546305&r2=546306
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/version/VersionRangeMatcherTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/version/VersionRangeMatcherTest.java Mon Jun 11 15:22:30 2007
@@ -41,6 +41,30 @@
assertDynamic("]1.0,2.0]", true);
assertDynamic("[1.0,)", true);
assertDynamic("(,1.0]", true);
+
+ assertDynamic("[1.0, 2.0]", true);
+ assertDynamic("[ 1.0, 2.0]", true);
+ assertDynamic("[1.0, 2.0 ]", true);
+ assertDynamic("[ 1.0, 2.0 ]", true);
+ assertDynamic("[1.0, 2.0[", true);
+ assertDynamic("[ 1.0, 2.0[", true);
+ assertDynamic("[1.0, 2.0 [", true);
+ assertDynamic("[ 1.0, 2.0 [", true);
+ assertDynamic("]1.0, 2.0[", true);
+ assertDynamic("] 1.0, 2.0[", true);
+ assertDynamic("]1.0, 2.0 [", true);
+ assertDynamic("] 1.0, 2.0 [", true);
+ assertDynamic("]1.0, 2.0]", true);
+ assertDynamic("] 1.0, 2.0]", true);
+ assertDynamic("]1.0, 2.0 ]", true);
+ assertDynamic("] 1.0, 2.0 ]", true);
+ assertDynamic("[1.0, )", true);
+ assertDynamic("[ 1.0,)", true);
+ assertDynamic("[ 1.0, )", true);
+ assertDynamic("( ,1.0]", true);
+ assertDynamic("(, 1.0]", true);
+ assertDynamic("( , 1.0]", true);
+ assertDynamic("( , 1.0 ]", true);
}
public void testIncludingFinite() {
@@ -49,6 +73,12 @@
assertAccept("[1.0,2.0]", "2.1", false);
assertAccept("[1.0,2.0]", "1.0", true);
assertAccept("[1.0,2.0]", "2.0", true);
+
+ assertAccept("[1.0, 2.0]", "1.1", true);
+ assertAccept("[1.0, 2.0 ]", "0.9", false);
+ assertAccept("[1.0, 2.0]", "2.1", false);
+ assertAccept("[ 1.0,2.0]", "1.0", true);
+ assertAccept("[ 1.0 , 2.0 ]", "2.0", true);
}
public void testExcludingFinite() {
@@ -79,6 +109,11 @@
assertAccept("(,2.0]", "2.0", true);
assertAccept("(,2.0]", "2.3", false);
+
+ assertAccept("[1.0, )", "1.1", true);
+ assertAccept("[1.0 ,)", "2.0", true);
+ assertAccept("[1.0 , )", "3.5.6", true);
+ assertAccept("[ 1.0, )", "1.0", true);
}
public void testExcludingInfinite() {