RExecTask (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs.optional.net, class: RExecTask

# Class RExecTask

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.optional.net.RExecTask

All Implemented Interfaces:
  `Cloneable`

public class RExecTask extends Task
Automates the rexec protocol.

Since:
  Ant 1.6

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `class`
  `RExecTask.AntRExecClient`
  This class handles the abstraction of the rexec protocol.
  `class`
  `RExecTask.RExecRead`
  Reads the output from the connected server until the required string is found or we time out.
  `class`
  `RExecTask.RExecSubTask`
  This class is the parent of the Read and Write tasks.
  `class`
  `RExecTask.RExecWrite`
  Sends text to the connected server

- ## Field Summary

  ### Fields inherited from class Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RExecTask()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RExecTask.RExecSubTask`
  `createRead()`
  A string to wait for from the server.
  `RExecTask.RExecSubTask`
  `createWrite()`
  Add text to send to the server A subTask <write> tag was found.
  `void`
  `execute()`
  Verify that all parameters are included.
  `void`
  `setCommand(String c)`
  Set the the command to execute on the server;
  `void`
  `setInitialCR(boolean b)`
  send a carriage return after connecting; optional, defaults to false.
  `void`
  `setPassword(String p)`
  Set the the login password to use required if `userid` is set.
  `void`
  `setPort(int p)`
  Set the tcp port to connect to; default is 23.
  `void`
  `setServer(String m)`
  Set the hostname or address of the remote server.
  `void`
  `setTimeout(Integer i)`
  set a default timeout in seconds to wait for a response, zero means forever (the default)
  `void`
  `setUserid(String u)`
  Set the the login id to use on the server; required if `password` is set.

  ### Methods inherited from class Task

  `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### RExecTask

    public RExecTask()

- ## Method Details

  - ### createRead

    public RExecTask.RExecSubTask createRead()
    A string to wait for from the server. A subTask <read> tag was found. Create the object, Save it in our list, and return it.
    Returns:
      a read sub task

  - ### createWrite

    public RExecTask.RExecSubTask createWrite()
    Add text to send to the server A subTask <write> tag was found. Create the object, Save it in our list, and return it.
    Returns:
      a write sub task

  - ### execute

    public void execute() throws BuildException
    Verify that all parameters are included. Connect and possibly login. Iterate through the list of Reads and writes.
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - on error

  - ### setCommand

    public void setCommand(String c)
    Set the the command to execute on the server;
    Parameters:
      `c` - a `String` value

  - ### setInitialCR

    public void setInitialCR(boolean b)
    send a carriage return after connecting; optional, defaults to false.
    Parameters:
      `b` - a `boolean` value

  - ### setPassword

    public void setPassword(String p)
    Set the the login password to use required if `userid` is set.
    Parameters:
      `p` - a `String` value

  - ### setPort

    public void setPort(int p)
    Set the tcp port to connect to; default is 23.
    Parameters:
      `p` - an `int` value

  - ### setServer

    public void setServer(String m)
    Set the hostname or address of the remote server.
    Parameters:
      `m` - a `String` value

  - ### setTimeout

    public void setTimeout(Integer i)
    set a default timeout in seconds to wait for a response, zero means forever (the default)
    Parameters:
      `i` - an `Integer` value

  - ### setUserid

    public void setUserid(String u)
    Set the the login id to use on the server; required if `password` is set.
    Parameters:
      `u` - a `String` value