You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mk...@apache.org on 2007/10/06 14:16:04 UTC
svn commit: r582484 - in /maven/shared/trunk/maven-toolchain: ./
src/main/java/org/apache/maven/toolchain/ src/test/ src/test/java/
src/test/java/org/ src/test/java/org/apache/
src/test/java/org/apache/maven/ src/test/java/org/apache/maven/toolchain/
Author: mkleint
Date: Sat Oct 6 05:16:03 2007
New Revision: 582484
URL: http://svn.apache.org/viewvc?rev=582484&view=rev
Log:
add VersionRange-based requirement matching impl
Added:
maven/shared/trunk/maven-toolchain/src/test/
maven/shared/trunk/maven-toolchain/src/test/java/
maven/shared/trunk/maven-toolchain/src/test/java/org/
maven/shared/trunk/maven-toolchain/src/test/java/org/apache/
maven/shared/trunk/maven-toolchain/src/test/java/org/apache/maven/
maven/shared/trunk/maven-toolchain/src/test/java/org/apache/maven/toolchain/
maven/shared/trunk/maven-toolchain/src/test/java/org/apache/maven/toolchain/RequirementMatcherFactoryTest.java
Modified:
maven/shared/trunk/maven-toolchain/pom.xml
maven/shared/trunk/maven-toolchain/src/main/java/org/apache/maven/toolchain/RequirementMatcherFactory.java
Modified: maven/shared/trunk/maven-toolchain/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-toolchain/pom.xml?rev=582484&r1=582483&r2=582484&view=diff
==============================================================================
--- maven/shared/trunk/maven-toolchain/pom.xml (original)
+++ maven/shared/trunk/maven-toolchain/pom.xml Sat Oct 6 05:16:03 2007
@@ -22,6 +22,11 @@
<artifactId>maven-build-context</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.artifact</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>3.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
<build>
<plugins>
Modified: maven/shared/trunk/maven-toolchain/src/main/java/org/apache/maven/toolchain/RequirementMatcherFactory.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-toolchain/src/main/java/org/apache/maven/toolchain/RequirementMatcherFactory.java?rev=582484&r1=582483&r2=582484&view=diff
==============================================================================
--- maven/shared/trunk/maven-toolchain/src/main/java/org/apache/maven/toolchain/RequirementMatcherFactory.java (original)
+++ maven/shared/trunk/maven-toolchain/src/main/java/org/apache/maven/toolchain/RequirementMatcherFactory.java Sat Oct 6 05:16:03 2007
@@ -19,6 +19,10 @@
package org.apache.maven.toolchain;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
+
/**
*
* @author mkleint
@@ -61,17 +65,31 @@
implements RequirementMatcher
{
- private String version;
+ DefaultArtifactVersion version;
private VersionMatcher( String version )
{
- this.version = version;
+ this.version = new DefaultArtifactVersion(version);
+ System.out.println("version=" + version.toString());
}
public boolean matches( String requirement )
{
- //TODO have exact the same version resolution as the enforcer has..
- return version.equals( requirement );
+ try
+ {
+ VersionRange range = VersionRange.createFromVersionSpec(requirement);
+ if (range.hasRestrictions()) {
+ return range.containsVersion(version);
+ } else {
+ return range.getRecommendedVersion().equals(version);
+ }
+ }
+ catch (InvalidVersionSpecificationException ex)
+ {
+ //TODO error reporting
+ ex.printStackTrace();
+ return false;
+ }
}
}
}
Added: maven/shared/trunk/maven-toolchain/src/test/java/org/apache/maven/toolchain/RequirementMatcherFactoryTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-toolchain/src/test/java/org/apache/maven/toolchain/RequirementMatcherFactoryTest.java?rev=582484&view=auto
==============================================================================
--- maven/shared/trunk/maven-toolchain/src/test/java/org/apache/maven/toolchain/RequirementMatcherFactoryTest.java (added)
+++ maven/shared/trunk/maven-toolchain/src/test/java/org/apache/maven/toolchain/RequirementMatcherFactoryTest.java Sat Oct 6 05:16:03 2007
@@ -0,0 +1,60 @@
+/*
+ * 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.
+ */
+
+package org.apache.maven.toolchain;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ * @author mkleint
+ */
+public class RequirementMatcherFactoryTest extends TestCase {
+
+ public RequirementMatcherFactoryTest(String testName) {
+ super(testName);
+ }
+
+ /**
+ * Test of createExactMatcher method, of class RequirementMatcherFactory.
+ */
+ public void testCreateExactMatcher() {
+ RequirementMatcher matcher;
+ matcher = RequirementMatcherFactory.createExactMatcher("foo");
+ assertFalse(matcher.matches("bar"));
+ assertFalse(matcher.matches("foobar"));
+ assertFalse(matcher.matches("foob"));
+ assertTrue(matcher.matches("foo"));
+ }
+
+ /**
+ * Test of createVersionMatcher method, of class RequirementMatcherFactory.
+ */
+ public void testCreateVersionMatcher() {
+ RequirementMatcher matcher;
+ matcher = RequirementMatcherFactory.createVersionMatcher("1.5.2");
+ assertFalse(matcher.matches("1.5"));
+ assertFalse(matcher.matches("[1.4,1.5)"));
+ assertFalse(matcher.matches("[1.5,1.5.2)"));
+ assertFalse(matcher.matches("(1.5.2,1.6)"));
+ assertTrue(matcher.matches("(1.4,1.5.2]"));
+ assertTrue(matcher.matches("(1.5,)"));
+ }
+
+}