diff --git a/src/main/org/apache/tools/ant/taskdefs/ConditionTask.java b/src/main/org/apache/tools/ant/taskdefs/ConditionTask.java
index 119843c18..18e5cec5c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ConditionTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ConditionTask.java
@@ -43,6 +43,13 @@ public class ConditionTask extends ConditionBase {
private String value = "true";
private String alternative = null;
+ /**
+ * Constructor, names this task "condition".
+ */
+ public ConditionTask() {
+ super("condition");
+ }
+
/**
* The name of the property to set. Required.
* @param p the name of the property
diff --git a/src/main/org/apache/tools/ant/taskdefs/WaitFor.java b/src/main/org/apache/tools/ant/taskdefs/WaitFor.java
index ceddea5ea..e520e0fd0 100644
--- a/src/main/org/apache/tools/ant/taskdefs/WaitFor.java
+++ b/src/main/org/apache/tools/ant/taskdefs/WaitFor.java
@@ -59,6 +59,13 @@ public class WaitFor extends ConditionBase {
private long checkEveryMultiplier = 1L;
private String timeoutProperty;
+ /**
+ * Constructor, names this task "waitfor".
+ */
+ public WaitFor() {
+ super("waitfor");
+ }
+
/**
* Set the maximum length of time to wait.
* @param time a long
value
diff --git a/src/main/org/apache/tools/ant/taskdefs/condition/ConditionBase.java b/src/main/org/apache/tools/ant/taskdefs/condition/ConditionBase.java
index 6772a4f91..942c8723d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/condition/ConditionBase.java
+++ b/src/main/org/apache/tools/ant/taskdefs/condition/ConditionBase.java
@@ -23,7 +23,7 @@ import java.util.Vector;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.DynamicElement;
import org.apache.tools.ant.ComponentHelper;
-import org.apache.tools.ant.Task;
+import org.apache.tools.ant.ProjectComponent;
import org.apache.tools.ant.taskdefs.Available;
import org.apache.tools.ant.taskdefs.Checksum;
import org.apache.tools.ant.taskdefs.UpToDate;
@@ -35,17 +35,38 @@ import org.apache.tools.ant.taskdefs.UpToDate;
*
* @since Ant 1.4
*/
-public abstract class ConditionBase extends Task
+public abstract class ConditionBase extends ProjectComponent
implements DynamicElement {
private static final String CONDITION_ANTLIB
= "antlib:org.apache.tools.ant.types.conditions:";
+ /**
+ * name of the component
+ */
+ private String taskName="condition";
+
/**
*
*/
private Vector conditions = new Vector();
+ /**
+ * Simple constructor.
+ */
+ protected ConditionBase() {
+ taskName = "component";
+ }
+
+ /**
+ * Constructor that takes the name of the task in the task name.
+ * @param taskName
+ * @since Ant 1.7
+ */
+ protected ConditionBase(String taskName) {
+ this.taskName = taskName;
+ }
+
/**
* Count the conditions.
*
@@ -66,6 +87,27 @@ public abstract class ConditionBase extends Task
return conditions.elements();
}
+ /**
+ * Sets the name to use in logging messages.
+ *
+ * @param name The name to use in logging messages.
+ * Should not be null
.
+ * @since Ant 1.7
+ */
+ public void setTaskName(String name) {
+ this.taskName = name;
+ }
+
+ /**
+ * Returns the name to use in logging messages.
+ *
+ * @return the name to use in logging messages.
+ * @since Ant 1.7
+ */
+ public String getTaskName() {
+ return taskName;
+ }
+
/**
* Add an <available> condition.
* @param a an available condition
diff --git a/src/tests/junit/org/apache/tools/ant/LocationTest.java b/src/tests/junit/org/apache/tools/ant/LocationTest.java
index a8fdcde98..b8c9af03c 100644
--- a/src/tests/junit/org/apache/tools/ant/LocationTest.java
+++ b/src/tests/junit/org/apache/tools/ant/LocationTest.java
@@ -46,7 +46,8 @@ public class LocationTest extends BuildFileTest {
public void testConditionTask() {
executeTarget("testConditionTask");
- ConditionTask c = (ConditionTask) getProject().getReference("cond");
+ TaskAdapter ta = (TaskAdapter) getProject().getReference("cond");
+ ConditionTask c = (ConditionTask) ta.getProxy();
assertFalse(c.getLocation() == Location.UNKNOWN_LOCATION);
assertFalse(c.getLocation().getLineNumber() == 0);
}