You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by mb...@apache.org on 2007/06/28 17:14:04 UTC

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

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


Re: 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

Posted by Matt Benson <gu...@yahoo.com>.
Steve or anyone else:  Let me know if you feel this
change is too risky; it just seemed intuitive to me.

br,
Matt

--- mbenson@apache.org wrote:

> 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
> 
> 



       
____________________________________________________________________________________
Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. 
http://answers.yahoo.com/dir/?link=list&sid=396545433

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