Author: bodewig
Date: Mon Aug 24 14:09:35 2009
New Revision: 807228

URL: http://svn.apache.org/viewvc?rev=807228&view=rev
Log:
errorproperty and warningproperty for <sql>.  Submitted by Andrew Stevens.  PR 
38807

Modified:
    ant/core/trunk/CONTRIBUTORS
    ant/core/trunk/WHATSNEW
    ant/core/trunk/contributors.xml
    ant/core/trunk/docs/manual/CoreTasks/sql.html
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java

Modified: ant/core/trunk/CONTRIBUTORS
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/CONTRIBUTORS?rev=807228&r1=807227&r2=807228&view=diff
==============================================================================
Binary files - no diff available.

Modified: ant/core/trunk/WHATSNEW
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=807228&r1=807227&r2=807228&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Mon Aug 24 14:09:35 2009
@@ -897,6 +897,10 @@
 
  * A new <resourceexists> condition can check whether resources exists.
 
+ * <sql> has two new attributes errorproperty and warningproperty that
+   can be set if an error/warning occurs.
+   Bugzilla Report 38807.
+
 Changes from Ant 1.7.0 TO Ant 1.7.1
 =============================================
 

Modified: ant/core/trunk/contributors.xml
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/contributors.xml?rev=807228&r1=807227&r2=807228&view=diff
==============================================================================
--- ant/core/trunk/contributors.xml (original)
+++ ant/core/trunk/contributors.xml Mon Aug 24 14:09:35 2009
@@ -67,6 +67,10 @@
     <last>Everitt</last>
   </name>
   <name>
+    <first>Andrew</first>
+    <last>Stevens</last>
+  </name>
+  <name>
     <first>Andrey</first>
     <last>Urazov</last>
   </name>

Modified: ant/core/trunk/docs/manual/CoreTasks/sql.html
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/CoreTasks/sql.html?rev=807228&r1=807227&r2=807228&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/CoreTasks/sql.html (original)
+++ ant/core/trunk/docs/manual/CoreTasks/sql.html Mon Aug 24 14:09:35 2009
@@ -256,6 +256,18 @@
     ever occurs)</td>
 </tr>
 
+<tr>
+  <td valign="top">errorproperty</td>
+  <td valign="top">The name of a property to set in the event of an
+    error.  <em>Since Ant 1.8.0</em></td>
+  <td align="center" valign="top">No</td>
+</tr>
+<tr>
+  <td valign="top">warningproperty</td>
+  <td valign="top">The name of a property to set in the event of an
+    warning.  <em>Since Ant 1.8.0</em></td>
+  <td align="center" valign="top">No</td>
+</tr>
 </table>
 
 <h3>Parameters specified as nested elements</h3>

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java?rev=807228&r1=807227&r2=807228&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java Mon Aug 
24 14:09:35 2009
@@ -251,6 +251,18 @@
     private boolean treatWarningsAsErrors = false;
 
     /**
+     * The name of the property to set in the event of an error
+     * @since Ant 1.8.0
+     */
+    private String errorProperty = null;
+
+    /**
+     * The name of the property to set in the event of a warning
+     * @since Ant 1.8.0
+     */
+    private String warningProperty = null;
+
+    /**
      * Set the name of the SQL file to be run.
      * Required unless statements are enclosed in the build file
      * @param srcFile the file containing the SQL command.
@@ -522,6 +534,28 @@
     }
 
     /**
+     * Property to set to "true" if a statement throws an error.
+     *
+     * @param errorProperty the name of the property to set in the
+     * event of an error.
+     * @since Ant 1.8.0
+     */
+    public void setErrorProperty(String errorProperty) {
+        this.errorProperty = errorProperty;
+    }
+
+    /**
+     * Property to set to "true" if a statement produces a warning.
+     *
+     * @param warningProperty the name of the property to set in the
+     * event of a warning.
+     * @since Ant 1.8.0
+     */
+    public void setWarningProperty(String warningProperty) {
+        this.warningProperty = warningProperty;
+    }
+
+    /**
      * Load the sql file and then execute it
      * @throws BuildException on error.
      */
@@ -614,11 +648,13 @@
                 if (onError.equals("abort")) {
                     throw new BuildException(e, getLocation());
                 }
+                setErrorProperty();
             } catch (SQLException e) {
                 closeQuietly();
                 if (onError.equals("abort")) {
                     throw new BuildException(e, getLocation());
                 }
+                setErrorProperty();
             } finally {
                 try {
                     if (getStatement() != null) {
@@ -758,6 +794,7 @@
             if (!onError.equals("continue")) {
                 throw e;
             }
+            setErrorProperty();
         } finally {
             if (resultSet != null) {
                 try {
@@ -1059,5 +1096,22 @@
         if (treatWarningsAsErrors && initialWarning != null) {
             throw initialWarning;
         }
+        if (initialWarning != null) {
+            setWarningProperty();
+        }
+    }
+
+    protected final void setErrorProperty() {
+        setProperty(errorProperty);
+    }
+
+    protected final void setWarningProperty() {
+        setProperty(warningProperty);
+    }
+
+    private void setProperty(String name) {
+        if (name != null) {
+            getProject().setNewProperty(name, "true");
+        }
     }
 }


Reply via email to