Package org.apache.catalina.ant

## Class BaseRedirectorHelperTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.catalina.ant.BaseRedirectorHelperTask

- All Implemented Interfaces:
    `java.lang.Cloneable`
  Direct Known Subclasses:
    `AbstractCatalinaTask`, `JMXAccessorTask`, `ValidatorTask`

      public abstract class BaseRedirectorHelperTask
      extends org.apache.tools.ant.Task

  Abstract base class to add output redirection support for Catalina Ant tasks. These tasks require Ant 1.5 or later.
  WARNING: due to depends chain, Ant could call a Task more than once and this can affect the output redirection when configured. If you are collecting the output in a property, it will collect the output of only the first run, since Ant properties are immutable and once created they cannot be changed.
  If you are collecting output in a file the file will be overwritten with the output of the last run, unless you set append="true", in which case each run will append it's output to the file.
  Since:
    5.5
  Author:
    Gabriele Garuglieri

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `alwaysLog` | Flag which indicates that, if redirected, output should also be always sent to the log.
    `protected boolean` | `failOnError` | Whether to fail (with a BuildException) if ManagerServlet returns an error.
    `protected java.io.OutputStream` | `redirectErrStream` | The stream for error output
    `protected org.apache.tools.ant.taskdefs.Redirector` | `redirector` | Redirector helper
    `protected boolean` | `redirectorConfigured` | will be set to `true` when the configuration of the Redirector is complete.
    `protected org.apache.tools.ant.types.RedirectorElement` | `redirectorElement` | Redirector element for this task
    `protected boolean` | `redirectOutput` | `true` true when output redirection is requested for this task.
    `protected java.io.OutputStream` | `redirectOutStream` | The stream for info output

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BaseRedirectorHelperTask()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addConfiguredRedirector​(org.apache.tools.ant.types.RedirectorElement redirectorElement)` | Add a `RedirectorElement` to this task.
    `protected void` | `closeRedirector()` | Ask redirector to close all the streams.
    `protected void` | `handleErrorFlush​(java.lang.String output)` | Handles error output with the ERR priority and flushes the stream.
    `protected void` | `handleErrorOutput​(java.lang.String output)` | Handles error output with the ERR priority.
    `protected void` | `handleFlush​(java.lang.String output)` | Handles output with the INFO priority and flushes the stream.
    `protected void` | `handleOutput​(java.lang.String output)` | Handles output with the INFO priority.
    `protected void` | `handleOutput​(java.lang.String output, int priority)` | Handles output with ERR priority to error stream and all other priorities to output stream.
    `boolean` | `isFailOnError()` | Returns the value of the failOnError property.
    `protected void` | `openRedirector()` | Set up properties on the Redirector and create output streams.
    `void` | `setAlwaysLog​(boolean alwaysLog)` | If true, (error and non-error) output will be redirected as specified while being sent to Ant's logging mechanism as if no redirection had taken place.
    `void` | `setAppend​(boolean append)` | If true, append output to existing file.
    `void` | `setCreateEmptyFiles​(boolean createEmptyFiles)` | Whether output and error files should be created even when empty.
    `void` | `setError​(java.io.File error)` | File the error output of the task is redirected to.
    `void` | `setErrorProperty​(java.lang.String errorProperty)` | Property name whose value should be set to the error of the task.
    `void` | `setFailonerror​(boolean fail)` | Whether to fail (with a BuildException) if ManagerServlet returns an error.
    `void` | `setLogError​(boolean logError)` | Controls whether error output is logged.
    `void` | `setOutput​(java.io.File out)` | File the output of the task is redirected to.
    `void` | `setOutputproperty​(java.lang.String outputProperty)` | Property name whose value should be set to the output of the task.

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, execute, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleInput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### redirector

          protected final org.apache.tools.ant.taskdefs.Redirector redirector

      Redirector helper

    - #### redirectorElement

          protected org.apache.tools.ant.types.RedirectorElement redirectorElement

      Redirector element for this task

    - #### redirectOutStream

          protected java.io.OutputStream redirectOutStream

      The stream for info output

    - #### redirectErrStream

          protected java.io.OutputStream redirectErrStream

      The stream for error output

    - #### failOnError

          protected boolean failOnError

      Whether to fail (with a BuildException) if ManagerServlet returns an error. The default behavior is to do so. This flag does not control parameters checking. If the task is called with wrong or invalid parameters, it will throw BuildException independently from the setting of this flag.

    - #### redirectOutput

          protected boolean redirectOutput

      `true` true when output redirection is requested for this task. Default is to log on Ant log.

    - #### redirectorConfigured

          protected boolean redirectorConfigured

      will be set to `true` when the configuration of the Redirector is complete.

    - #### alwaysLog

          protected boolean alwaysLog

      Flag which indicates that, if redirected, output should also be always sent to the log. Default is that output is sent only to redirected streams.

  - ### Constructor Detail

    - #### BaseRedirectorHelperTask

          public BaseRedirectorHelperTask()

  - ### Method Detail

    - #### setFailonerror

          public void setFailonerror​(boolean fail)

      Whether to fail (with a BuildException) if ManagerServlet returns an error. The default behavior is to do so.
      Parameters:
        `fail` - The new value of failonerror

    - #### isFailOnError

          public boolean isFailOnError()

      Returns the value of the failOnError property.
      Returns:
        `true` if the task should will if an error occurs, otherwise `false`

    - #### setOutput

          public void setOutput​(java.io.File out)

      File the output of the task is redirected to.
      Parameters:
        `out` - name of the output file

    - #### setError

          public void setError​(java.io.File error)

      File the error output of the task is redirected to.
      Parameters:
        `error` - name of the error file

    - #### setLogError

          public void setLogError​(boolean logError)

      Controls whether error output is logged. This is only useful when output is being redirected and error output is desired in the Ant log
      Parameters:
        `logError` - if true the standard error is sent to the Ant log system and not sent to output stream.

    - #### setOutputproperty

          public void setOutputproperty​(java.lang.String outputProperty)

      Property name whose value should be set to the output of the task.
      Parameters:
        `outputProperty` - property name

    - #### setErrorProperty

          public void setErrorProperty​(java.lang.String errorProperty)

      Property name whose value should be set to the error of the task.
      Parameters:
        `errorProperty` - property name

    - #### setAppend

          public void setAppend​(boolean append)

      If true, append output to existing file.
      Parameters:
        `append` - if true, append output to existing file

    - #### setAlwaysLog

          public void setAlwaysLog​(boolean alwaysLog)

      If true, (error and non-error) output will be redirected as specified while being sent to Ant's logging mechanism as if no redirection had taken place. Defaults to false.
      Actually handled internally, with Ant 1.6.3 it will be handled by the `Redirector` itself.
      Parameters:
        `alwaysLog` - `boolean`

    - #### setCreateEmptyFiles

          public void setCreateEmptyFiles​(boolean createEmptyFiles)

      Whether output and error files should be created even when empty. Defaults to true.
      Parameters:
        `createEmptyFiles` - `boolean`.

    - #### addConfiguredRedirector

          public void addConfiguredRedirector​(org.apache.tools.ant.types.RedirectorElement redirectorElement)

      Add a `RedirectorElement` to this task.
      Parameters:
        `redirectorElement` - `RedirectorElement`.

    - #### openRedirector

          protected void openRedirector()

      Set up properties on the Redirector and create output streams.

    - #### closeRedirector

          protected void closeRedirector()

      Ask redirector to close all the streams. It is necessary to call this method before leaving the Task to have the Streams flush their contents. If you are collecting output in a property, it will be created only if this method is called, otherwise you'll find it unset.

    - #### handleOutput

          protected void handleOutput​(java.lang.String output)

      Handles output with the INFO priority.
      Overrides:
        `handleOutput` in class `org.apache.tools.ant.Task`
      Parameters:
        `output` - The output to log. Should not be `null`.

    - #### handleFlush

          protected void handleFlush​(java.lang.String output)

      Handles output with the INFO priority and flushes the stream.
      Overrides:
        `handleFlush` in class `org.apache.tools.ant.Task`
      Parameters:
        `output` - The output to log. Should not be `null`.

    - #### handleErrorOutput

          protected void handleErrorOutput​(java.lang.String output)

      Handles error output with the ERR priority.
      Overrides:
        `handleErrorOutput` in class `org.apache.tools.ant.Task`
      Parameters:
        `output` - The error output to log. Should not be `null`.

    - #### handleErrorFlush

          protected void handleErrorFlush​(java.lang.String output)

      Handles error output with the ERR priority and flushes the stream.
      Overrides:
        `handleErrorFlush` in class `org.apache.tools.ant.Task`
      Parameters:
        `output` - The error output to log. Should not be `null`.

    - #### handleOutput

          protected void handleOutput​(java.lang.String output,
                                      int priority)

      Handles output with ERR priority to error stream and all other priorities to output stream.
      Parameters:
        `output` - The output to log. Should not be `null`.
        `priority` - The priority level that should be used