git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277906 13f79535-47bb-0310-9956-ffa450edef68master
@@ -83,6 +83,12 @@ public class RExecTask extends Task { | |||||
*/ | */ | ||||
public class RExecSubTask { | public class RExecSubTask { | ||||
protected String taskString = ""; | protected String taskString = ""; | ||||
/** | |||||
* Execute the subtask. | |||||
* @param rexec the client | |||||
* @throws BuildException always as it is not allowed to instantiate this object | |||||
*/ | |||||
public void execute(AntRExecClient rexec) | public void execute(AntRExecClient rexec) | ||||
throws BuildException { | throws BuildException { | ||||
throw new BuildException("Shouldn't be able instantiate a SubTask directly"); | throw new BuildException("Shouldn't be able instantiate a SubTask directly"); | ||||
@@ -90,6 +96,7 @@ public class RExecTask extends Task { | |||||
/** | /** | ||||
* the message as nested text | * the message as nested text | ||||
* @param s the nested text | |||||
*/ | */ | ||||
public void addText(String s) { | public void addText(String s) { | ||||
setString(getProject().replaceProperties(s)); | setString(getProject().replaceProperties(s)); | ||||
@@ -97,6 +104,7 @@ public class RExecTask extends Task { | |||||
/** | /** | ||||
* the message as an attribute | * the message as an attribute | ||||
* @param s a <code>String</code> value | |||||
*/ | */ | ||||
public void setString(String s) { | public void setString(String s) { | ||||
taskString += s; | taskString += s; | ||||
@@ -108,6 +116,11 @@ public class RExecTask extends Task { | |||||
*/ | */ | ||||
public class RExecWrite extends RExecSubTask { | public class RExecWrite extends RExecSubTask { | ||||
private boolean echoString = true; | private boolean echoString = true; | ||||
/** | |||||
* Execute the write exec task. | |||||
* @param rexec the task to use | |||||
* @throws BuildException on error | |||||
*/ | |||||
public void execute(AntRExecClient rexec) | public void execute(AntRExecClient rexec) | ||||
throws BuildException { | throws BuildException { | ||||
rexec.sendString(taskString, echoString); | rexec.sendString(taskString, echoString); | ||||
@@ -116,6 +129,7 @@ public class RExecTask extends Task { | |||||
/** | /** | ||||
* Whether or not the message should be echoed to the log. | * Whether or not the message should be echoed to the log. | ||||
* Defaults to <code>true</code>. | * Defaults to <code>true</code>. | ||||
* @param b a <code>boolean</code> value | |||||
*/ | */ | ||||
public void setEcho(boolean b) { | public void setEcho(boolean b) { | ||||
echoString = b; | echoString = b; | ||||
@@ -128,12 +142,18 @@ public class RExecTask extends Task { | |||||
*/ | */ | ||||
public class RExecRead extends RExecSubTask { | public class RExecRead extends RExecSubTask { | ||||
private Integer timeout = null; | private Integer timeout = null; | ||||
/** | |||||
* Execute the read exec task. | |||||
* @param rexec the task to use | |||||
* @throws BuildException on error | |||||
*/ | |||||
public void execute(AntRExecClient rexec) | public void execute(AntRExecClient rexec) | ||||
throws BuildException { | throws BuildException { | ||||
rexec.waitForString(taskString, timeout); | rexec.waitForString(taskString, timeout); | ||||
} | } | ||||
/** | /** | ||||
* a timeout value that overrides any task wide timeout. | * a timeout value that overrides any task wide timeout. | ||||
* @param i an <code>Integer</code> value | |||||
*/ | */ | ||||
public void setTimeout(Integer i) { | public void setTimeout(Integer i) { | ||||
this.timeout = i; | this.timeout = i; | ||||
@@ -141,6 +161,7 @@ public class RExecTask extends Task { | |||||
/** | /** | ||||
* Sets the default timeout if none has been set already | * Sets the default timeout if none has been set already | ||||
* @param defaultTimeout an <code>Integer</code> value | |||||
* @ant.attribute ignore="true" | * @ant.attribute ignore="true" | ||||
*/ | */ | ||||
public void setDefaultTimeout(Integer defaultTimeout) { | public void setDefaultTimeout(Integer defaultTimeout) { | ||||
@@ -206,7 +227,8 @@ public class RExecTask extends Task { | |||||
/** | /** | ||||
* Write this string to the rexec session. | * Write this string to the rexec session. | ||||
* @param echoString Logs string sent | |||||
* @param s the string to write | |||||
* @param echoString if true log the string sent | |||||
*/ | */ | ||||
public void sendString(String s, boolean echoString) { | public void sendString(String s, boolean echoString) { | ||||
OutputStream os = this.getOutputStream(); | OutputStream os = this.getOutputStream(); | ||||
@@ -279,6 +301,7 @@ public class RExecTask extends Task { | |||||
* A string to wait for from the server. | * A string to wait for from the server. | ||||
* A subTask <read> tag was found. Create the object, | * A subTask <read> tag was found. Create the object, | ||||
* Save it in our list, and return it. | * Save it in our list, and return it. | ||||
* @return a read sub task | |||||
*/ | */ | ||||
public RExecSubTask createRead() { | public RExecSubTask createRead() { | ||||
@@ -290,6 +313,7 @@ public class RExecTask extends Task { | |||||
* Add text to send to the server | * Add text to send to the server | ||||
* A subTask <write> tag was found. Create the object, | * A subTask <write> tag was found. Create the object, | ||||
* Save it in our list, and return it. | * Save it in our list, and return it. | ||||
* @return a write sub task | |||||
*/ | */ | ||||
public RExecSubTask createWrite() { | public RExecSubTask createWrite() { | ||||
RExecSubTask task = (RExecSubTask) new RExecWrite(); | RExecSubTask task = (RExecSubTask) new RExecWrite(); | ||||
@@ -298,8 +322,9 @@ public class RExecTask extends Task { | |||||
} | } | ||||
/** | /** | ||||
* Verify that all parameters are included. | * Verify that all parameters are included. | ||||
* Connect and possibly login | |||||
* Iterate through the list of Reads and writes | |||||
* Connect and possibly login. | |||||
* Iterate through the list of Reads and writes. | |||||
* @throws BuildException on error | |||||
*/ | */ | ||||
public void execute() throws BuildException { | public void execute() throws BuildException { | ||||
/** A server name is required to continue */ | /** A server name is required to continue */ | ||||
@@ -367,10 +392,15 @@ public class RExecTask extends Task { | |||||
} | } | ||||
/** | /** | ||||
* Set the the comand to execute on the server; | * Set the the comand to execute on the server; | ||||
* @param c a <code>String</code> value | |||||
*/ | */ | ||||
public void setCommand(String c) { this.command = c; } | |||||
public void setCommand(String c) { | |||||
this.command = c; | |||||
} | |||||
/** | /** | ||||
* send a carriage return after connecting; optional, defaults to false. | * send a carriage return after connecting; optional, defaults to false. | ||||
* @param b a <code>boolean</code> value | |||||
*/ | */ | ||||
public void setInitialCR(boolean b) { | public void setInitialCR(boolean b) { | ||||
this.addCarriageReturn = b; | this.addCarriageReturn = b; | ||||
@@ -378,19 +408,32 @@ public class RExecTask extends Task { | |||||
/** | /** | ||||
* Set the the login password to use | * Set the the login password to use | ||||
* required if <tt>userid</tt> is set. | * required if <tt>userid</tt> is set. | ||||
* @param p a <code>String</code> value | |||||
*/ | */ | ||||
public void setPassword(String p) { this.password = p; } | |||||
public void setPassword(String p) { | |||||
this.password = p; | |||||
} | |||||
/** | /** | ||||
* Set the tcp port to connect to; default is 23. | * Set the tcp port to connect to; default is 23. | ||||
* @param p an <code>int</code> value | |||||
*/ | */ | ||||
public void setPort(int p) { this.port = p; } | |||||
public void setPort(int p) { | |||||
this.port = p; | |||||
} | |||||
/** | /** | ||||
* Set the hostname or address of the remote server. | * Set the hostname or address of the remote server. | ||||
* @param m a <code>String</code> value | |||||
*/ | */ | ||||
public void setServer(String m) { this.server = m; } | |||||
public void setServer(String m) { | |||||
this.server = m; | |||||
} | |||||
/** | /** | ||||
* set a default timeout in seconds to wait for a response, | * set a default timeout in seconds to wait for a response, | ||||
* zero means forever (the default) | * zero means forever (the default) | ||||
* @param i an <code>Integer</code> value | |||||
*/ | */ | ||||
public void setTimeout(Integer i) { | public void setTimeout(Integer i) { | ||||
this.defaultTimeout = i; | this.defaultTimeout = i; | ||||
@@ -398,6 +441,9 @@ public class RExecTask extends Task { | |||||
/** | /** | ||||
* Set the the login id to use on the server; | * Set the the login id to use on the server; | ||||
* required if <tt>password</tt> is set. | * required if <tt>password</tt> is set. | ||||
* @param u a <code>String</code> value | |||||
*/ | */ | ||||
public void setUserid(String u) { this.userid = u; } | |||||
public void setUserid(String u) { | |||||
this.userid = u; | |||||
} | |||||
} | } |
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* Copyright 2000-2004 The Apache Software Foundation | |||||
* Copyright 2000-2005 The Apache Software Foundation | |||||
* | * | ||||
* Licensed under the Apache License, Version 2.0 (the "License"); | * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
* you may not use this file except in compliance with the License. | * you may not use this file except in compliance with the License. | ||||
@@ -16,15 +16,12 @@ | |||||
*/ | */ | ||||
package org.apache.tools.ant.taskdefs.optional.net; | package org.apache.tools.ant.taskdefs.optional.net; | ||||
import java.lang.reflect.InvocationTargetException; | |||||
import java.lang.reflect.Method; | |||||
import java.net.Authenticator; | import java.net.Authenticator; | ||||
import java.net.PasswordAuthentication; | import java.net.PasswordAuthentication; | ||||
import java.util.Properties; | import java.util.Properties; | ||||
import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
import org.apache.tools.ant.Task; | import org.apache.tools.ant.Task; | ||||
import org.apache.tools.ant.util.JavaEnvUtils; | |||||
/** | /** | ||||
* Sets Java's web proxy properties, so that tasks and code run in | * Sets Java's web proxy properties, so that tasks and code run in | ||||
@@ -74,6 +74,7 @@ public class TelnetTask extends Task { | |||||
* Verify that all parameters are included. | * Verify that all parameters are included. | ||||
* Connect and possibly login | * Connect and possibly login | ||||
* Iterate through the list of Reads and writes | * Iterate through the list of Reads and writes | ||||
* @throws BuildException on error | |||||
*/ | */ | ||||
public void execute() throws BuildException { | public void execute() throws BuildException { | ||||
/** A server name is required to continue */ | /** A server name is required to continue */ | ||||
@@ -141,27 +142,40 @@ public class TelnetTask extends Task { | |||||
/** | /** | ||||
* Set the the login id to use on the server; | * Set the the login id to use on the server; | ||||
* required if <tt>password</tt> is set. | * required if <tt>password</tt> is set. | ||||
* @param u a <code>String</code> value | |||||
*/ | */ | ||||
public void setUserid(String u) { this.userid = u; } | |||||
public void setUserid(String u) { | |||||
this.userid = u; | |||||
} | |||||
/** | /** | ||||
* Set the the login password to use | * Set the the login password to use | ||||
* required if <tt>userid</tt> is set. | * required if <tt>userid</tt> is set. | ||||
* @param p a <code>String</code> value | |||||
*/ | */ | ||||
public void setPassword(String p) { this.password = p; } | |||||
public void setPassword(String p) { | |||||
this.password = p; | |||||
} | |||||
/** | /** | ||||
* Set the hostname or address of the remote server. | * Set the hostname or address of the remote server. | ||||
* @param m a <code>String</code> value | |||||
*/ | */ | ||||
public void setServer(String m) { this.server = m; } | |||||
public void setServer(String m) { | |||||
this.server = m; | |||||
} | |||||
/** | /** | ||||
* Set the tcp port to connect to; default is 23. | * Set the tcp port to connect to; default is 23. | ||||
* @param p an <code>int</code> value | |||||
*/ | */ | ||||
public void setPort(int p) { this.port = p; } | |||||
public void setPort(int p) { | |||||
this.port = p; | |||||
} | |||||
/** | /** | ||||
* send a carriage return after connecting; optional, defaults to false. | * send a carriage return after connecting; optional, defaults to false. | ||||
* @param b a <code>boolean</code> value | |||||
*/ | */ | ||||
public void setInitialCR(boolean b) { | public void setInitialCR(boolean b) { | ||||
this.addCarriageReturn = b; | this.addCarriageReturn = b; | ||||
@@ -170,6 +184,7 @@ public class TelnetTask extends Task { | |||||
/** | /** | ||||
* set a default timeout in seconds to wait for a response, | * set a default timeout in seconds to wait for a response, | ||||
* zero means forever (the default) | * zero means forever (the default) | ||||
* @param i an <code>Integer</code> value | |||||
*/ | */ | ||||
public void setTimeout(Integer i) { | public void setTimeout(Integer i) { | ||||
this.defaultTimeout = i; | this.defaultTimeout = i; | ||||
@@ -179,6 +194,7 @@ public class TelnetTask extends Task { | |||||
* A string to wait for from the server. | * A string to wait for from the server. | ||||
* A subTask <read> tag was found. Create the object, | * A subTask <read> tag was found. Create the object, | ||||
* Save it in our list, and return it. | * Save it in our list, and return it. | ||||
* @return a read telnet sub task | |||||
*/ | */ | ||||
public TelnetSubTask createRead() { | public TelnetSubTask createRead() { | ||||
@@ -191,6 +207,7 @@ public class TelnetTask extends Task { | |||||
* Add text to send to the server | * Add text to send to the server | ||||
* A subTask <write> tag was found. Create the object, | * A subTask <write> tag was found. Create the object, | ||||
* Save it in our list, and return it. | * Save it in our list, and return it. | ||||
* @return a write telnet sub task | |||||
*/ | */ | ||||
public TelnetSubTask createWrite() { | public TelnetSubTask createWrite() { | ||||
TelnetSubTask task = (TelnetSubTask) new TelnetWrite(); | TelnetSubTask task = (TelnetSubTask) new TelnetWrite(); | ||||
@@ -204,6 +221,11 @@ public class TelnetTask extends Task { | |||||
*/ | */ | ||||
public class TelnetSubTask { | public class TelnetSubTask { | ||||
protected String taskString = ""; | protected String taskString = ""; | ||||
/** | |||||
* Execute the subtask. | |||||
* @param telnet the client | |||||
* @throws BuildException always as it is not allowed to instantiate this object | |||||
*/ | |||||
public void execute(AntTelnetClient telnet) | public void execute(AntTelnetClient telnet) | ||||
throws BuildException { | throws BuildException { | ||||
throw new BuildException("Shouldn't be able instantiate a SubTask directly"); | throw new BuildException("Shouldn't be able instantiate a SubTask directly"); | ||||
@@ -211,6 +233,7 @@ public class TelnetTask extends Task { | |||||
/** | /** | ||||
* the message as nested text | * the message as nested text | ||||
* @param s the nested text | |||||
*/ | */ | ||||
public void addText(String s) { | public void addText(String s) { | ||||
setString(getProject().replaceProperties(s)); | setString(getProject().replaceProperties(s)); | ||||
@@ -218,6 +241,7 @@ public class TelnetTask extends Task { | |||||
/** | /** | ||||
* the message as an attribute | * the message as an attribute | ||||
* @param s a <code>String</code> value | |||||
*/ | */ | ||||
public void setString(String s) { | public void setString(String s) { | ||||
taskString += s; | taskString += s; | ||||
@@ -229,6 +253,11 @@ public class TelnetTask extends Task { | |||||
*/ | */ | ||||
public class TelnetWrite extends TelnetSubTask { | public class TelnetWrite extends TelnetSubTask { | ||||
private boolean echoString = true; | private boolean echoString = true; | ||||
/** | |||||
* Execute the write task. | |||||
* @param telnet the task to use | |||||
* @throws BuildException on error | |||||
*/ | |||||
public void execute(AntTelnetClient telnet) | public void execute(AntTelnetClient telnet) | ||||
throws BuildException { | throws BuildException { | ||||
telnet.sendString(taskString, echoString); | telnet.sendString(taskString, echoString); | ||||
@@ -237,6 +266,7 @@ public class TelnetTask extends Task { | |||||
/** | /** | ||||
* Whether or not the message should be echoed to the log. | * Whether or not the message should be echoed to the log. | ||||
* Defaults to <code>true</code>. | * Defaults to <code>true</code>. | ||||
* @param b a <code>boolean</code> value | |||||
*/ | */ | ||||
public void setEcho(boolean b) { | public void setEcho(boolean b) { | ||||
echoString = b; | echoString = b; | ||||
@@ -249,12 +279,18 @@ public class TelnetTask extends Task { | |||||
*/ | */ | ||||
public class TelnetRead extends TelnetSubTask { | public class TelnetRead extends TelnetSubTask { | ||||
private Integer timeout = null; | private Integer timeout = null; | ||||
/** | |||||
* Execute the read task. | |||||
* @param telnet the task to use | |||||
* @throws BuildException on error | |||||
*/ | |||||
public void execute(AntTelnetClient telnet) | public void execute(AntTelnetClient telnet) | ||||
throws BuildException { | throws BuildException { | ||||
telnet.waitForString(taskString, timeout); | telnet.waitForString(taskString, timeout); | ||||
} | } | ||||
/** | /** | ||||
* a timeout value that overrides any task wide timeout. | * a timeout value that overrides any task wide timeout. | ||||
* @param i an <code>Integer</code> value | |||||
*/ | */ | ||||
public void setTimeout(Integer i) { | public void setTimeout(Integer i) { | ||||
this.timeout = i; | this.timeout = i; | ||||
@@ -262,6 +298,7 @@ public class TelnetTask extends Task { | |||||
/** | /** | ||||
* Sets the default timeout if none has been set already | * Sets the default timeout if none has been set already | ||||
* @param defaultTimeout an <code>Integer</code> value | |||||
* @ant.attribute ignore="true" | * @ant.attribute ignore="true" | ||||
*/ | */ | ||||
public void setDefaultTimeout(Integer defaultTimeout) { | public void setDefaultTimeout(Integer defaultTimeout) { | ||||
@@ -328,9 +365,10 @@ public class TelnetTask extends Task { | |||||
} | } | ||||
/** | /** | ||||
* Write this string to the telnet session. | |||||
* @param echoString Logs string sent | |||||
*/ | |||||
* Write this string to the telnet session. | |||||
* @param s the string to write | |||||
* @param echoString if true log the string sent | |||||
*/ | |||||
public void sendString(String s, boolean echoString) { | public void sendString(String s, boolean echoString) { | ||||
OutputStream os = this.getOutputStream(); | OutputStream os = this.getOutputStream(); | ||||
try { | try { | ||||