Class BaseRedirectorHelperTask

  • All Implemented Interfaces:
    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 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 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
    • 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​(String output)
      Handles error output with the ERR priority and flushes the stream.
      protected void handleErrorOutput​(String output)
      Handles error output with the ERR priority.
      protected void handleFlush​(String output)
      Handles output with the INFO priority and flushes the stream.
      protected void handleOutput​(String output)
      Handles output with the INFO priority.
      protected void handleOutput​(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​(File error)
      File the error output of the task is redirected to.
      void setErrorProperty​(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​(File out)
      File the output of the task is redirected to.
      void setOutputproperty​(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
    • 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 OutputStream redirectOutStream
        The stream for info output
      • redirectErrStream

        protected 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​(File out)
        File the output of the task is redirected to.
        Parameters:
        out - name of the output file
      • setError

        public void setError​(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​(String outputProperty)
        Property name whose value should be set to the output of the task.
        Parameters:
        outputProperty - property name
      • setErrorProperty

        public void setErrorProperty​(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​(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​(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​(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​(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​(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