Methods Summary |
---|
public void | execute()Run task.
File savedFile = myFile; // may be altered in validate
validate();
final Properties properties = loadProperties();
final int buildNumber = getBuildNumber(properties);
properties.put(DEFAULT_PROPERTY_NAME,
String.valueOf(buildNumber + 1));
// Write the properties file back out
FileOutputStream output = null;
try {
output = new FileOutputStream(myFile);
final String header = "Build Number for ANT. Do not edit!";
properties.store(output, header);
} catch (final IOException ioe) {
final String message = "Error while writing " + myFile;
throw new BuildException(message, ioe);
} finally {
if (null != output) {
try {
output.close();
} catch (final IOException ioe) {
log("error closing output stream " + ioe, Project.MSG_ERR);
}
}
myFile = savedFile;
}
//Finally set the property
getProject().setNewProperty(DEFAULT_PROPERTY_NAME,
String.valueOf(buildNumber));
|
private int | getBuildNumber(java.util.Properties properties)Utility method to retrieve build number from properties object.
final String buildNumber =
properties.getProperty(DEFAULT_PROPERTY_NAME, "0").trim();
// Try parsing the line into an integer.
try {
return Integer.parseInt(buildNumber);
} catch (final NumberFormatException nfe) {
final String message =
myFile + " contains a non integer build number: " + buildNumber;
throw new BuildException(message, nfe);
}
|
private java.util.Properties | loadProperties()Utility method to load properties from file.
FileInputStream input = null;
try {
final Properties properties = new Properties();
input = new FileInputStream(myFile);
properties.load(input);
return properties;
} catch (final IOException ioe) {
throw new BuildException(ioe);
} finally {
if (null != input) {
try {
input.close();
} catch (final IOException ioe) {
log("error closing input stream " + ioe, Project.MSG_ERR);
}
}
}
|
public void | setFile(java.io.File file)The file in which the build number is stored. Defaults to
"build.number" if not specified.
myFile = file;
|
private void | validate()Validate that the task parameters are valid.
if (null == myFile) {
myFile = FILE_UTILS.resolveFile(getProject().getBaseDir(), DEFAULT_FILENAME);
}
if (!myFile.exists()) {
try {
FILE_UTILS.createNewFile(myFile);
} catch (final IOException ioe) {
final String message =
myFile + " doesn't exist and new file can't be created.";
throw new BuildException(message, ioe);
}
}
if (!myFile.canRead()) {
final String message = "Unable to read from " + myFile + ".";
throw new BuildException(message);
}
if (!myFile.canWrite()) {
final String message = "Unable to write to " + myFile + ".";
throw new BuildException(message);
}
|