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

# Class Rpm

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

All Implemented Interfaces:
  `Cloneable`

public class Rpm extends Task
Invokes the rpm tool to build a Linux installation file.

- ## 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
  `Rpm()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `execute()`
  Execute the task
  `protected Execute`
  `getExecute(Commandline toExecute, ExecuteStreamHandler streamhandler)`
  Get the execute object.
  `protected String`
  `guessRpmBuildCommand()`
  Checks whether `rpmbuild` is on the PATH and returns the absolute path to it - falls back to `rpm` otherwise.
  `void`
  `setCleanBuildDir(boolean cbd)`
  Flag (optional, default=false) to remove the generated files in the BUILD directory
  `void`
  `setCommand(String c)`
  What command to issue to the rpm build tool; optional.
  `void`
  `setError(File error)`
  Optional file to save stderr to
  `void`
  `setFailOnError(boolean value)`
  If `true`, stop the build process when the rpmbuild command exits with an error status.
  `void`
  `setOutput(File output)`
  Optional file to save stdout to.
  `void`
  `setQuiet(boolean value)`
  If true, output from the RPM build command will only be logged to DEBUG.
  `void`
  `setRemoveSource(boolean rs)`
  Flag (optional, default=false) to remove the sources after the build.
  `void`
  `setRemoveSpec(boolean rs)`
  Flag (optional, default=false) to remove the spec file from SPECS
  `void`
  `setRpmBuildCommand(String c)`
  The executable to run when building; optional.
  `void`
  `setSpecFile(String sf)`
  The name of the spec File to use; required.
  `void`
  `setTopDir(File td)`
  The directory which will have the expected subdirectories, SPECS, SOURCES, BUILD, SRPMS; optional.

  ### 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

  - ### Rpm

    public Rpm()

- ## Method Details

  - ### execute

    public void execute() throws BuildException
    Execute the task
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - is there is a problem in the task execution.

  - ### setTopDir

    public void setTopDir(File td)
    The directory which will have the expected subdirectories, SPECS, SOURCES, BUILD, SRPMS; optional. If this isn't specified, the `baseDir` value is used
    Parameters:
      `td` - the directory containing the normal RPM directories.

  - ### setCommand

    public void setCommand(String c)
    What command to issue to the rpm build tool; optional. The default is "-bb"
    Parameters:
      `c` - the command to use.

  - ### setSpecFile

    public void setSpecFile(String sf)
    The name of the spec File to use; required.
    Parameters:
      `sf` - the spec file name to use.

  - ### setCleanBuildDir

    public void setCleanBuildDir(boolean cbd)
    Flag (optional, default=false) to remove the generated files in the BUILD directory
    Parameters:
      `cbd` - a `boolean` value.

  - ### setRemoveSpec

    public void setRemoveSpec(boolean rs)
    Flag (optional, default=false) to remove the spec file from SPECS
    Parameters:
      `rs` - a `boolean` value.

  - ### setRemoveSource

    public void setRemoveSource(boolean rs)
    Flag (optional, default=false) to remove the sources after the build. See the `--rmsource` option of rpmbuild.
    Parameters:
      `rs` - a `boolean` value.

  - ### setOutput

    public void setOutput(File output)
    Optional file to save stdout to.
    Parameters:
      `output` - the file to save stdout to.

  - ### setError

    public void setError(File error)
    Optional file to save stderr to
    Parameters:
      `error` - the file to save error output to.

  - ### setRpmBuildCommand

    public void setRpmBuildCommand(String c)
    The executable to run when building; optional. The default is `rpmbuild`.
    Parameters:
      `c` - the rpm build executable
    Since:
      Ant 1.6

  - ### setFailOnError

    public void setFailOnError(boolean value)
    If `true`, stop the build process when the rpmbuild command exits with an error status.
    Parameters:
      `value` - `true` if it should halt, otherwise `false`. The default is `false`.
    Since:
      Ant 1.6.3

  - ### setQuiet

    public void setQuiet(boolean value)
    If true, output from the RPM build command will only be logged to DEBUG.
    Parameters:
      `value` - `false` if output should be logged, otherwise `true`. The default is `false`.
    Since:
      Ant 1.6.3

  - ### guessRpmBuildCommand

    protected String guessRpmBuildCommand()
    Checks whether `rpmbuild` is on the PATH and returns the absolute path to it - falls back to `rpm` otherwise.
    Returns:
      the command used to build RPM's
    Since:
      1.6

  - ### getExecute

    protected Execute getExecute(Commandline toExecute, ExecuteStreamHandler streamhandler)
    Get the execute object.
    Parameters:
      `toExecute` - the command line to use.
      `streamhandler` - the stream handler to use.
    Returns:
      the execute object.
    Since:
      Ant 1.6.3