diff --git a/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java b/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java
index 9cc8f4fae..33abd474c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java
+++ b/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java
@@ -20,25 +20,38 @@ package org.apache.tools.ant.taskdefs.condition;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
import org.apache.tools.ant.util.DeweyDecimal;
/**
* An Ant version condition.
* @since Ant 1.7
*/
-public class AntVersion implements Condition {
+public class AntVersion extends Task implements Condition {
private String atLeast = null;
private String exactly = null;
+ private String propertyname = null;
+
/**
* Evalute the condition.
* @return true if the condition is true.
* @throws BuildException if an error occurs.
*/
+ public void execute() throws BuildException {
+ if (propertyname == null) {
+ throw new BuildException("'property' must be set.");
+ }
+ getProject().setNewProperty(propertyname, getVersion().toString());
+ }
+
public boolean eval() throws BuildException {
validate();
DeweyDecimal actual = getVersion();
+
+ System.out.println("AntVersion::actual = " + actual);
+
if (null != atLeast) {
return actual.isGreaterThanOrEqual(new DeweyDecimal(atLeast));
}
@@ -123,4 +136,13 @@ public class AntVersion implements Condition {
public void setExactly(String exactly) {
this.exactly = exactly;
}
+
+ public String getProperty() {
+ return propertyname;
+ }
+
+ public void setProperty(String propertyname) {
+ this.propertyname = propertyname;
+ }
+
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/defaults.properties b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
index 392099b08..e1f11f74a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/defaults.properties
+++ b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
@@ -2,6 +2,7 @@
ant=org.apache.tools.ant.taskdefs.Ant
antcall=org.apache.tools.ant.taskdefs.CallTarget
antstructure=org.apache.tools.ant.taskdefs.AntStructure
+antversion=org.apache.tools.ant.taskdefs.condition.AntVersion
apply=org.apache.tools.ant.taskdefs.Transform
available=org.apache.tools.ant.taskdefs.Available
basename=org.apache.tools.ant.taskdefs.Basename
diff --git a/src/tests/antunit/taskdefs/condition/antversion-test.xml b/src/tests/antunit/taskdefs/condition/antversion-test.xml
index 4e13967b9..4be5b1b98 100644
--- a/src/tests/antunit/taskdefs/condition/antversion-test.xml
+++ b/src/tests/antunit/taskdefs/condition/antversion-test.xml
@@ -3,6 +3,7 @@
+
@@ -19,6 +20,11 @@
+
+
+
+
+
@@ -27,4 +33,4 @@
-
\ No newline at end of file
+