ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mben...@apache.org
Subject svn commit: r551592 - in /ant/core/trunk: WHATSNEW src/main/org/apache/tools/ant/types/optional/AbstractScriptComponent.java src/main/org/apache/tools/ant/types/optional/ScriptCondition.java src/tests/antunit/types/scriptcondition-test.xml
Date Thu, 28 Jun 2007 15:14:04 GMT
Author: mbenson
Date: Thu Jun 28 08:14:04 2007
New Revision: 551592

URL: http://svn.apache.org/viewvc?view=rev&rev=551592
Log:
<scriptcondition> now prefers evaluation result/return value over value property.

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/main/org/apache/tools/ant/types/optional/AbstractScriptComponent.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java
    ant/core/trunk/src/tests/antunit/types/scriptcondition-test.xml

Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?view=diff&rev=551592&r1=551591&r2=551592
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Thu Jun 28 08:14:04 2007
@@ -14,6 +14,8 @@
   been modified to encode outgoing (InputStream) content as well as encoding
   incoming (OutputStream) content.
 
+* <scriptcondition> now prefers evaluation result/return value over value property.
+
 Fixed bugs:
 -----------
 * Regression: Locator fails with URI encoding problem when spaces in path

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/optional/AbstractScriptComponent.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/optional/AbstractScriptComponent.java?view=diff&rev=551592&r1=551591&r2=551592
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/optional/AbstractScriptComponent.java
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/optional/AbstractScriptComponent.java
Thu Jun 28 08:14:04 2007
@@ -17,6 +17,8 @@
  */
 package org.apache.tools.ant.types.optional;
 
+import java.io.File;
+
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.ProjectComponent;
 import org.apache.tools.ant.types.Path;
@@ -24,9 +26,6 @@
 import org.apache.tools.ant.util.ScriptRunnerBase;
 import org.apache.tools.ant.util.ScriptRunnerHelper;
 
-
-import java.io.File;
-
 /**
  * This is a {@link ProjectComponent} that has script support built in
  * Use it as a foundation for scriptable things.
@@ -140,5 +139,14 @@
      */
     protected void executeScript(String execName) {
         getRunner().executeScript(execName);
+    }
+
+    /**
+     * Evaluate a script.
+     * @param execName name of the script.
+     * @return the result of the evaluation.
+     */
+    protected Object evaluateScript(String execName) {
+        return getRunner().evaluateScript(execName);
     }
 }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java?view=diff&rev=551592&r1=551591&r2=551592
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java Thu Jun
28 08:14:04 2007
@@ -33,7 +33,6 @@
      */
     private boolean value = false;
 
-
     /**
      * Is this condition true?
      *
@@ -44,8 +43,8 @@
      */
     public boolean eval() throws BuildException {
         initScriptRunner();
-        executeScript("ant_condition");
-        return getValue();
+        Object result = evaluateScript("ant_condition");
+        return result instanceof Boolean ? ((Boolean) result).booleanValue() : getValue();
     }
 
     /**

Modified: ant/core/trunk/src/tests/antunit/types/scriptcondition-test.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/types/scriptcondition-test.xml?view=diff&rev=551592&r1=551591&r2=551592
==============================================================================
--- ant/core/trunk/src/tests/antunit/types/scriptcondition-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/types/scriptcondition-test.xml Thu Jun 28 08:14:04 2007
@@ -70,4 +70,87 @@
       </scriptcondition>
     </f>
   </target>
+
+  <target name="testBeanshellReturnTrue">
+    <t message="testBeanshellReturnTrue">
+      <scriptcondition language="beanshell" value="false">
+        return true;
+      </scriptcondition>
+    </t>
+  </target>
+
+  <target name="testBeanshellReturnFalse">
+    <f message="testBeanshellReturnFalse">
+      <scriptcondition language="beanshell" value="true">
+        return false;
+      </scriptcondition>
+    </f>
+  </target>
+
+  <target name="testBeanshellReturnOverridesValue">
+    <f message="testBeanshellReturnOverridesValue">
+      <scriptcondition language="beanshell" value="false">
+        self.setValue(true);
+        return false;
+      </scriptcondition>
+    </f>
+  </target>
+
+  <target name="testBeanshellReturnNullIgnored">
+    <t message="testBeanshellReturnNullIgnored">
+      <scriptcondition language="beanshell" value="true">
+        return null;
+      </scriptcondition>
+    </t>
+  </target>
+
+  <target name="testBeanshellReturnNonBooleanIgnored">
+    <t message="testBeanshellReturnNonBooleanIgnored">
+      <scriptcondition language="beanshell" value="true">
+        return 20;
+      </scriptcondition>
+    </t>
+  </target>
+
+  <target name="testJsReturnTrue">
+    <t message="testJsReturnTrue">
+      <scriptcondition language="javascript" value="false">
+        java.lang.Boolean.TRUE
+      </scriptcondition>
+    </t>
+  </target>
+
+  <target name="testJsReturnFalse">
+    <f message="testJsReturnFalse">
+      <scriptcondition language="javascript" value="true">
+        java.lang.Boolean.FALSE
+      </scriptcondition>
+    </f>
+  </target>
+
+  <target name="testJsReturnOverridesValue">
+    <f message="testJsReturnOverridesValue">
+      <scriptcondition language="javascript" value="false">
+        self.setValue(true);
+        false
+      </scriptcondition>
+    </f>
+  </target>
+
+  <target name="testJsReturnNullIgnored">
+    <t message="testJsReturnNullIgnored">
+      <scriptcondition language="javascript" value="true">
+        null
+      </scriptcondition>
+    </t>
+  </target>
+
+  <target name="testJsReturnNonBooleanIgnored">
+    <t message="testJsReturnNonBooleanIgnored">
+      <scriptcondition language="javascript" value="true">
+        new java.lang.Integer(20)
+      </scriptcondition>
+    </t>
+  </target>
+
 </project>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message