From f97f71d5d128b4f860d609f73df96a0fafcab58b Mon Sep 17 00:00:00 2001 From: Conor MacNeill Date: Thu, 2 Aug 2001 11:42:55 +0000 Subject: [PATCH] Make if and unless attributes of dynamically evaluated PR: 2955 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269437 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/ProjectHelper.java | 2 +- src/main/org/apache/tools/ant/Target.java | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/org/apache/tools/ant/ProjectHelper.java b/src/main/org/apache/tools/ant/ProjectHelper.java index ca321a74c..be4dab23a 100644 --- a/src/main/org/apache/tools/ant/ProjectHelper.java +++ b/src/main/org/apache/tools/ant/ProjectHelper.java @@ -703,7 +703,7 @@ public class ProjectHelper { * * @param value the string to be scanned for property references. */ - public static String replaceProperties(Project project, String value, Hashtable keys ) + public static String replaceProperties(Project project, String value, Hashtable keys) throws BuildException { if (value == null) { return null; diff --git a/src/main/org/apache/tools/ant/Target.java b/src/main/org/apache/tools/ant/Target.java index 36a28ffd4..4fd72dc8d 100644 --- a/src/main/org/apache/tools/ant/Target.java +++ b/src/main/org/apache/tools/ant/Target.java @@ -196,12 +196,19 @@ public class Target implements TaskContainer { } private boolean testIfCondition() { - return "".equals(ifCondition) - || project.getProperty(ifCondition) != null; + if ("".equals(ifCondition)) { + return true; + } + + String test = ProjectHelper.replaceProperties(getProject(), ifCondition, getProject().getProperties()); + return project.getProperty(test) != null; } private boolean testUnlessCondition() { - return "".equals(unlessCondition) - || project.getProperty(unlessCondition) == null; + if ("".equals(unlessCondition)) { + return true; + } + String test = ProjectHelper.replaceProperties(getProject(), unlessCondition, getProject().getProperties()); + return project.getProperty(test) == null; } }