diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java deleted file mode 100644 index aee071d3..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/BuildNumber.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package org.apache.tools.ant.taskdefs; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Properties; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.util.FileUtils; - -/** - * Read, increment, and write a build number in a file - * It will first - * attempt to read a build number from a file, then set the property - * "build.number" to the value that was read in (or 0 if no such value). Then - * it will increment the build number by one and write it back out into the - * file. - * - * @since Ant 1.5 - * @ant.task name="buildnumber" - */ -public class BuildNumber - extends Task { - /** - * The name of the property in which the build number is stored. - */ - private static final String DEFAULT_PROPERTY_NAME = "build.number"; - - /** The default filename to use if no file specified. */ - private static final String DEFAULT_FILENAME = DEFAULT_PROPERTY_NAME; - - private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); - - /** The File in which the build number is stored. */ - private File myFile; - - - /** - * The file in which the build number is stored. Defaults to - * "build.number" if not specified. - * - * @param file the file in which build number is stored. - */ - public void setFile(final File file) { - myFile = file; - } - - - /** - * Run task. - * - * @exception BuildException if an error occurs - */ - public void execute() - throws BuildException { - 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)); - } - - - /** - * Utility method to retrieve build number from properties object. - * - * @param properties the properties to retrieve build number from - * @return the build number or if no number in properties object - * @throws BuildException if build.number property is not an integer - */ - private int getBuildNumber(final Properties properties) - throws BuildException { - 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); - } - } - - - /** - * Utility method to load properties from file. - * - * @return the loaded properties - * @throws BuildException - */ - private Properties loadProperties() - throws BuildException { - 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); - } - } - } - } - - - /** - * Validate that the task parameters are valid. - * - * @throws BuildException if parameters are invalid - */ - private void validate() - throws BuildException { - 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); - } - } -} - |