org.apache.tools.ant.taskdefs.optional

Class PropertyFile

  • All Implemented Interfaces:
    java.lang.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 Detail

      • PropertyFile

        public PropertyFile()
    • Method Detail

      • createEntry

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

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

        public void setComment(java.lang.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