Class PropertyFile

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.optional.PropertyFile
All Implemented Interfaces:
Cloneable

public class PropertyFile extends Task
Modifies settings in a property file.

The following is an example of its usage:

    <target name="setState">
      <property
        name="header"
        value="##Generated file - do not modify!"/>
      <propertyfile file="apropfile.properties" comment="${header}">
        <entry key="product.version.major" type="int"  value="5"/>
        <entry key="product.version.minor" type="int"  value="0"/>
        <entry key="product.build.major"   type="int"  value="0" />
        <entry key="product.build.minor"   type="int"  operation="+"/>
        <entry key="product.build.date"    type="date" value="now"/>
        <entry key="intSet" type="int" operation="=" value="681"/>
        <entry key="intDec" type="int" operation="-"/>
        <entry key="StringEquals" type="string" value="testValue"/>
     </propertyfile>
   </target>
 

The <propertyfile> task must have:

  • file
Other parameters are:
  • comment
  • key
  • operation
  • type
  • value (the final four being eliminated shortly)

The <entry> task must have:

  • key
Other parameters are:
  • operation
  • type
  • value
  • default
  • unit

If type is unspecified, it defaults to string.

Parameter values:
operation:
  • "=" (set -- default)
  • "-" (dec)
  • "+" (inc)
type:
  • "int"
  • "date"
  • "string"
value:
  • holds the default value, if the property was not found in property file
  • "now" In case of type "date", the value "now" will be replaced by the current date/time and used even if a valid date was found in the property file.

String property types can only use the "=" operation. Int property types can only use the "=", "-" or "+" operations.

The message property is used for the property file header, with "\\" being a newline delimiter character.

  • Constructor Details

    • PropertyFile

      public PropertyFile()
  • Method Details

    • execute

      public void execute() throws BuildException
      Execute the task.
      Overrides:
      execute in class Task
      Throws:
      BuildException - on error.
    • createEntry

      public PropertyFile.Entry createEntry()
      The entry nested element.
      Returns:
      an entry nested element to be configured.
    • setFile

      public void setFile(File file)
      Location of the property file to be edited; required.
      Parameters:
      file - the property file.
    • setComment

      public void setComment(String hdr)
      optional header comment for the file
      Parameters:
      hdr - the string to use for the comment.
    • setJDKProperties

      public void setJDKProperties(boolean val)
      optional flag to use original Java properties (as opposed to layout preserving properties)
      Parameters:
      val - boolean