git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270129 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -18,9 +18,6 @@ or as character data nested into the element.</p> | |||||
| <p>Optinonally a set of valid imput arguments can be defined via the validargs | <p>Optinonally a set of valid imput arguments can be defined via the validargs | ||||
| attribute. Input task will require the user to reenter values until the entered | attribute. Input task will require the user to reenter values until the entered | ||||
| value matches one of the predefined.</p> | value matches one of the predefined.</p> | ||||
| <p>Optionally a set of exit arguments can be defined via the exitargs attribute. | |||||
| Input task will throw a BuildException with a customisable exit message if the | |||||
| entered value matches one of the predefined.</p> | |||||
| <p>Optionally a property can be created from the value entered by the user. This | <p>Optionally a property can be created from the value entered by the user. This | ||||
| property can then be used during the following build run. Input behaves according | property can then be used during the following build run. Input behaves according | ||||
| to <a href="property.html">property task</a> which means that existing properties | to <a href="property.html">property task</a> which means that existing properties | ||||
| @@ -37,11 +34,6 @@ cannot be overriden.</p> | |||||
| <td valign="top">the Message which gets displayed to the user during the build run.</td> | <td valign="top">the Message which gets displayed to the user during the build run.</td> | ||||
| <td valign="top" align="center">No</td> | <td valign="top" align="center">No</td> | ||||
| </tr> | </tr> | ||||
| <tr> | |||||
| <td valign="top">exitmessage</td> | |||||
| <td valign="top">the exit message which gets displayed when exiting the build run.</td> | |||||
| <td valign="top" align="center">No</td> | |||||
| </tr> | |||||
| <tr> | <tr> | ||||
| <td valign="top">validargs</td> | <td valign="top">validargs</td> | ||||
| <td valign="top">comma separated String containing valid input arguments. If set, | <td valign="top">comma separated String containing valid input arguments. If set, | ||||
| @@ -51,15 +43,6 @@ cannot be overriden.</p> | |||||
| be accepted you will need to define both arguments within validargs.</td> | be accepted you will need to define both arguments within validargs.</td> | ||||
| <td valign="top" align="center">No</td> | <td valign="top" align="center">No</td> | ||||
| </tr> | </tr> | ||||
| <tr> | |||||
| <td valign="top">exitargs</td> | |||||
| <td valign="top">comma separated String containing exit arguments. If set, | |||||
| input task will throw a BuildException with a customisable exit message if the | |||||
| entered value matches to one of the predefined. Exitargs are compared case | |||||
| sensitive. If you want 'x' and 'X' to end the build run you will need to define | |||||
| both arguments within exitargs.</td> | |||||
| <td valign="top" align="center">No</td> | |||||
| </tr> | |||||
| <tr> | <tr> | ||||
| <td valign="top">addproperty</td> | <td valign="top">addproperty</td> | ||||
| <td valign="top">the name of a property to be created from input. Behaviour is equal | <td valign="top">the name of a property to be created from input. Behaviour is equal | ||||
| @@ -79,12 +62,17 @@ the build run until return key is pressed.</p> | |||||
| /></pre> | /></pre> | ||||
| <p>Will display the message "Press Return key to continue..." and pause | <p>Will display the message "Press Return key to continue..." and pause | ||||
| the build run until return key is pressed.</p> | the build run until return key is pressed.</p> | ||||
| <pre> <input | |||||
| <pre> | |||||
| <input | |||||
| message="All data is going to be deleted from DB continue (y/n)?" | message="All data is going to be deleted from DB continue (y/n)?" | ||||
| validargs="y,n" | validargs="y,n" | ||||
| exitargs="n" | |||||
| exitmessage="Build abborted by user." | |||||
| /></pre> | |||||
| addproperty="do.delete" | |||||
| /> | |||||
| <condition propert="do.abort"> | |||||
| <equals arg1="n" arg2="${do.delete}" /> | |||||
| </condition> | |||||
| <fail if="do.abort">Build abborted by user.</fail> | |||||
| </pre> | |||||
| <p>Will display the message "All data is going to be deleted from DB continue | <p>Will display the message "All data is going to be deleted from DB continue | ||||
| (y/n)?" and require 'y+retrun key' to continue build or 'n+return key' | (y/n)?" and require 'y+retrun key' to continue build or 'n+return key' | ||||
| to exit build with following message "Build abborted by user.".</p> | to exit build with following message "Build abborted by user.".</p> | ||||
| @@ -16,15 +16,6 @@ | |||||
| <input testinput="test" | <input testinput="test" | ||||
| message="All data is going to be deleted from DB continue (y/n)?" | message="All data is going to be deleted from DB continue (y/n)?" | ||||
| validargs="y,n" | validargs="y,n" | ||||
| exitargs="n" | |||||
| /> | |||||
| </target> | |||||
| <target name="test4"> | |||||
| <input testinput="n" | |||||
| message="All data is going to be deleted from DB continue (y/n)?" | |||||
| validargs="y,n" | |||||
| exitargs="n" | |||||
| /> | /> | ||||
| </target> | </target> | ||||
| @@ -32,7 +23,6 @@ | |||||
| <input testinput="y" | <input testinput="y" | ||||
| message="All data is going to be deleted from DB continue (y/n)?" | message="All data is going to be deleted from DB continue (y/n)?" | ||||
| validargs="y,n" | validargs="y,n" | ||||
| exitargs="n" | |||||
| /> | /> | ||||
| </target> | </target> | ||||
| @@ -43,13 +33,4 @@ | |||||
| /> | /> | ||||
| </target> | </target> | ||||
| <target name="test7"> | |||||
| <input testinput="R" | |||||
| message="Press 'R' to make you very rich!" | |||||
| validargs="R" | |||||
| exitargs="R" | |||||
| exitmessage="Don't trust if you don't have the source ;-)" | |||||
| /> | |||||
| </target> | |||||
| </project> | </project> | ||||
| @@ -69,8 +69,6 @@ import org.apache.tools.ant.*; | |||||
| */ | */ | ||||
| public class Input extends Task { | public class Input extends Task { | ||||
| private String validargs = null; | private String validargs = null; | ||||
| private String exitargs = null; | |||||
| private String exitmessage = "Build abborted."; | |||||
| private String message = ""; | private String message = ""; | ||||
| private String addproperty = null; | private String addproperty = null; | ||||
| private String input = null; | private String input = null; | ||||
| @@ -92,33 +90,12 @@ public class Input extends Task { | |||||
| * according to property task which means that existing properties | * according to property task which means that existing properties | ||||
| * cannot be overriden. | * cannot be overriden. | ||||
| * | * | ||||
| * @param exitargs Name for the property to be created from input | |||||
| * @param addproperty Name for the property to be created from input | |||||
| */ | */ | ||||
| public void setAddproperty (String addproperty) { | public void setAddproperty (String addproperty) { | ||||
| this.addproperty = addproperty; | this.addproperty = addproperty; | ||||
| } | } | ||||
| /* | |||||
| * Defines exit condition parameters as comma separated String. If input | |||||
| * matches one of these input task will end build by throwing a | |||||
| * BuildException. ExitArgs are case sensitive. If you want the build to | |||||
| * end on 'x' and 'X' you need to define both values as exit arguments. | |||||
| * | |||||
| * @param exitargs A comma separated String defining exit arguments. | |||||
| */ | |||||
| public void setExitargs (String exitargs) { | |||||
| this.exitargs = exitargs; | |||||
| } | |||||
| /** | |||||
| * Sets the ExitMessage which gets displayed when exiting the build run. | |||||
| * Default is 'Build abborted.' | |||||
| * @param exitmessage The exit message to be displayed. | |||||
| */ | |||||
| public void setExitmessage (String exitmessage) { | |||||
| this.exitmessage = exitmessage; | |||||
| } | |||||
| /** | /** | ||||
| * Sets the Message which gets displayed to the user during the build run. | * Sets the Message which gets displayed to the user during the build run. | ||||
| * @param message The message to be displayed. | * @param message The message to be displayed. | ||||
| @@ -154,14 +131,6 @@ public class Input extends Task { | |||||
| accept.addElement(stok.nextToken()); | accept.addElement(stok.nextToken()); | ||||
| } | } | ||||
| } | } | ||||
| Vector exit = null; | |||||
| if (exitargs != null) { | |||||
| exit = new Vector(); | |||||
| StringTokenizer stok = new StringTokenizer(exitargs, ",", false); | |||||
| while (stok.hasMoreTokens()) { | |||||
| exit.addElement(stok.nextToken()); | |||||
| } | |||||
| } | |||||
| log(message, Project.MSG_WARN); | log(message, Project.MSG_WARN); | ||||
| if (input == null) { | if (input == null) { | ||||
| try { | try { | ||||
| @@ -193,9 +162,6 @@ public class Input extends Task { | |||||
| log("Override ignored for " + addproperty, Project.MSG_VERBOSE); | log("Override ignored for " + addproperty, Project.MSG_VERBOSE); | ||||
| } | } | ||||
| } | } | ||||
| if (exit != null && exit.contains(input)) { | |||||
| throw new BuildException(exitmessage); | |||||
| } | |||||
| } | } | ||||
| // copied n' pasted from org.apache.tools.ant.taskdefs.Exit | // copied n' pasted from org.apache.tools.ant.taskdefs.Exit | ||||
| @@ -203,8 +169,7 @@ public class Input extends Task { | |||||
| * Set a multiline message. | * Set a multiline message. | ||||
| */ | */ | ||||
| public void addText(String msg) { | public void addText(String msg) { | ||||
| message += | |||||
| ProjectHelper.replaceProperties(project, msg); | |||||
| message += project.replaceProperties(msg); | |||||
| } | } | ||||
| } | } | ||||
| @@ -88,18 +88,6 @@ public class InputTest extends BuildFileTest { | |||||
| } | } | ||||
| } | } | ||||
| public void test4() { | |||||
| String log = "All data is going to be deleted from DB continue (y/n)?"; | |||||
| String message = "Build abborted."; | |||||
| try { | |||||
| executeTarget("test4"); | |||||
| } catch (org.apache.tools.ant.BuildException e) { | |||||
| String realLog = getLog(); | |||||
| assertEquals(log, realLog); | |||||
| assertEquals(message, e.getMessage()); | |||||
| } | |||||
| } | |||||
| public void test5() { | public void test5() { | ||||
| expectLog("test5", | expectLog("test5", | ||||
| "All data is going to be deleted from DB continue (y/n)?"); | "All data is going to be deleted from DB continue (y/n)?"); | ||||
| @@ -111,8 +99,4 @@ public class InputTest extends BuildFileTest { | |||||
| assertEquals("scott", project.getProperty("db.user")); | assertEquals("scott", project.getProperty("db.user")); | ||||
| } | } | ||||
| public void test7() { | |||||
| expectBuildException("test7", | |||||
| "Don't trust if you don't have the source ;-)"); | |||||
| } | |||||
| } | } | ||||