peterreilly    2004/10/20 01:38:05

  Modified:    .        WHATSNEW CONTRIBUTORS
               docs/manual/CoreTasks typedef.html
               src/etc/testcases/taskdefs typedef.xml
               src/main/org/apache/tools/ant/taskdefs Definer.java
               src/testcases/org/apache/tools/ant/taskdefs TypedefTest.java
  Log:
  add failall value for onerror attribute of <typedef>
  PR: 31685
  Obtained from:        steve morin
  
  Revision  Changes    Path
  1.673     +3 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.672
  retrieving revision 1.673
  diff -u -r1.672 -r1.673
  --- WHATSNEW  7 Oct 2004 16:25:03 -0000       1.672
  +++ WHATSNEW  20 Oct 2004 08:38:04 -0000      1.673
  @@ -65,6 +65,9 @@
   
   * Added revision and userid attributes to <pvcs> documentation.
   
  +* Added a new "failall" value for the onerror attribute of <typedef>.
  +  Bugzilla report 31685.
  +
   Changes from Ant 1.6.2 to current Ant 1.6 CVS version
   =====================================================
   
  
  
  
  1.34      +1 -0      ant/CONTRIBUTORS
  
  Index: CONTRIBUTORS
  ===================================================================
  RCS file: /home/cvs/ant/CONTRIBUTORS,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- CONTRIBUTORS      30 Sep 2004 09:24:28 -0000      1.33
  +++ CONTRIBUTORS      20 Oct 2004 08:38:04 -0000      1.34
  @@ -190,6 +190,7 @@
   Stephen Chin
   Steve Cohen
   Steve Loughran
  +Steve Morin
   Steven E. Newton
   Takashi Okamoto
   Thomas Butz
  
  
  
  1.17      +6 -2      ant/docs/manual/CoreTasks/typedef.html
  
  Index: typedef.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/manual/CoreTasks/typedef.html,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- typedef.html      6 Oct 2004 09:17:36 -0000       1.16
  +++ typedef.html      20 Oct 2004 08:38:04 -0000      1.17
  @@ -116,9 +116,13 @@
       <td valign="top">onerror</td>
       <td valign="top">The action to take if there was a failure in defining 
the
         type. The values are <i>fail</i> - cause a build exception, 
<i>report</i>,
  -      output a warning, but continue, <i>ignore</i>, do nothing. The default
  -      is <i>fail</i>.
  +      output a warning, but continue, <i>ignore</i>, do nothing.
         (introduced in ant1.6)
  +      An additional value is <i>failall</i> - causes all behavior of fail 
but also
  +      causes a build exception for the resource or file attribute
  +      if the resource or file is not found.
  +      (introduced in ant1.7) 
  +      The default is <i>fail</i>.
       </td>
       <td valign="top" align="center">No</td>
     </tr>
  
  
  
  1.4       +13 -1     ant/src/etc/testcases/taskdefs/typedef.xml
  
  Index: typedef.xml
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/typedef.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- typedef.xml       27 Nov 2003 09:07:44 -0000      1.3
  +++ typedef.xml       20 Oct 2004 08:38:04 -0000      1.4
  @@ -53,4 +53,16 @@
                onerror="ignore"/>
       <mytask>hi</mytask>
     </target>
  -</project>
  \ No newline at end of file
  +  
  +  <target name="noresourcefailall">
  +     <typedef resource="somenotpresentfile.properties" onerror="failall"/>
  +  </target>
  +  
  +  <target name="noresourcefail">
  +     <typedef resource="somenotpresentfile.properties" onerror="fail"/>
  +  </target>
  +  
  +  <target name="noresourcenotfail">
  +     <typedef resource="somenotpresentfile.properties" />
  +  </target>
  +</project>
  
  
  
  1.55      +43 -15    ant/src/main/org/apache/tools/ant/taskdefs/Definer.java
  
  Index: Definer.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Definer.java,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- Definer.java      28 May 2004 15:23:26 -0000      1.54
  +++ Definer.java      20 Oct 2004 08:38:04 -0000      1.55
  @@ -73,7 +73,7 @@
        */
       public static class OnError extends EnumeratedAttribute {
           /** Enumerated values */
  -        public static final int  FAIL = 0, REPORT = 1, IGNORE = 2;
  +        public static final int  FAIL = 0, REPORT = 1, IGNORE = 2, FAIL_ALL 
= 3;
           /**
            * Constructor
            */
  @@ -94,7 +94,7 @@
            * @return an array of the allowed values for this attribute.
            */
           public String[] getValues() {
  -            return new String[] {"fail", "report", "ignore"};
  +            return new String[] {"fail", "report", "ignore", "failall"};
           }
       }
   
  @@ -244,21 +244,38 @@
       }
   
       private URL fileToURL() {
  +        String message = null;
           if (!(file.exists())) {
  -            log("File " + file + " does not exist", Project.MSG_WARN);
  -            return null;
  +            message = "File " + file + " does not exist";
           }
  -        if (!(file.isFile())) {
  -            log("File " + file + " is not a file", Project.MSG_WARN);
  -            return null;
  +        if (message == null && !(file.isFile())) {
  +            message = "File " + file + " is not a file";
           }
           try {
  -            return file.toURL();
  +            if (message == null) {
  +                return file.toURL();
  +            }
           } catch (Exception ex) {
  -            log("File " + file + " cannot use as URL: "
  -                + ex.toString(), Project.MSG_WARN);
  -            return null;
  +            message =
  +                "File " + file + " cannot use as URL: "
  +                + ex.toString();
  +        }
  +        // Here if there is an error
  +        switch (onError) {
  +            case OnError.FAIL_ALL:
  +                throw new BuildException(message);
  +            case OnError.FAIL:
  +                // Fall Through
  +            case OnError.REPORT:
  +                log(message, Project.MSG_WARN);
  +                break;
  +            case OnError.IGNORE:
  +                // Fall Through
  +            default:
  +                // Ignore the problem
  +                break;
           }
  +        return null;
       }
   
       private Enumeration/*<URL>*/ resourceToURLs(ClassLoader classLoader) {
  @@ -271,10 +288,20 @@
                   e, getLocation());
           }
           if (!ret.hasMoreElements()) {
  -            if (onError != OnError.IGNORE) {
  -                log("Could not load definitions from resource "
  -                    + resource + ". It could not be found.",
  -                    Project.MSG_WARN);
  +            String message = "Could not load definitions from resource "
  +                + resource + ". It could not be found.";
  +            switch (onError) {
  +                case OnError.FAIL_ALL:
  +                    throw new BuildException(message);
  +                case OnError.FAIL:
  +                case OnError.REPORT:
  +                    log(message, Project.MSG_WARN);
  +                    break;
  +                case OnError.IGNORE:
  +                    // Fall Through
  +                default:
  +                    // Ignore the problem
  +                    break;
               }
           }
           return ret;
  @@ -488,6 +515,7 @@
               }
           } catch (BuildException ex) {
               switch (onError) {
  +                case OnError.FAIL_ALL:
                   case OnError.FAIL:
                       throw ex;
                   case OnError.REPORT:
  
  
  
  1.12      +13 -1     
ant/src/testcases/org/apache/tools/ant/taskdefs/TypedefTest.java
  
  Index: TypedefTest.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/TypedefTest.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- TypedefTest.java  9 Mar 2004 16:48:57 -0000       1.11
  +++ TypedefTest.java  20 Oct 2004 08:38:05 -0000      1.12
  @@ -73,4 +73,16 @@
       public void testDoubleNotPresent() {
           expectLogContaining("double-notpresent", "hi");
       }
  +    
  +    public void testNoResourceOnErrorFailAll(){
  +             this.expectBuildExceptionContaining("noresourcefailall","the 
requested resource does not exist","Could not load definitions from resource ");
  +    }
  +    
  +    public void testNoResourceOnErrorFail(){
  +             expectLogContaining("noresourcefail","Could not load 
definitions from resource ");
  +    }
  +    
  +    public void testNoResourceOnErrorNotFail(){
  +             expectLogContaining("noresourcenotfail","Could not load 
definitions from resource ");
  +    }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to