- externalized strings (Main)
- name-hiding (Main)
- use StringUtils.LINE_SEP instead of locally getting line.seperator property (Main + other classes), I didn't get chance to replace all of these
Included a base main_messages.properties file, but my 2nd language skills are very poor, so I decided against including a translated version. I may get someone here (in work) to contribute a Vietnamese/Japanese bundle at a later date.
Kev
Index: org/apache/tools/ant/Main.java
===================================================================
RCS file: /home/cvspublic/ant/src/main/org/apache/tools/ant/Main.java,v
retrieving revision 1.116
diff -u -r1.116 Main.java
--- org/apache/tools/ant/Main.java 21 Jan 2005 11:24:26 -0000 1.116
+++ org/apache/tools/ant/Main.java 21 Feb 2005 14:58:16 -0000
@@ -26,9 +26,11 @@
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
+
import org.apache.tools.ant.input.DefaultInputHandler;
import org.apache.tools.ant.input.InputHandler;
import org.apache.tools.ant.launch.AntMain;
+import org.apache.tools.ant.util.StringUtils;
/**
@@ -43,7 +45,7 @@
*
*/
public class Main implements AntMain {
-
+
/** The default build file name. */
public static final String DEFAULT_BUILD_FILENAME = "build.xml";
@@ -297,44 +299,35 @@
} else if (arg.equals("-debug") || arg.equals("-d")) {
printVersion();
msgOutputLevel = Project.MSG_DEBUG;
- } else if (arg.equals("-noinput")) {
+ } else if (arg.equals("-noinput")) {
allowInput = false;
- } else if (arg.equals("-logfile") || arg.equals("-l")) {
+ } else if (arg.equals("-logfile") || arg.equals("-l")) {
try {
File logFile = new File(args[i + 1]);
i++;
logTo = new PrintStream(new FileOutputStream(logFile));
isLogFileUsed = true;
} catch (IOException ioe) {
- String msg = "Cannot write on the specified log file. "
- + "Make sure the path exists and you have write "
- + "permissions.";
- throw new BuildException(msg);
+ throw new BuildException(MainMessages.CANT_WRITE_LOG);
} catch (ArrayIndexOutOfBoundsException aioobe) {
- String msg = "You must specify a log file when "
- + "using the -log argument";
- throw new BuildException(msg);
+ throw new BuildException(MainMessages.NO_LOG_SPECIFIED);
}
} else if (arg.equals("-buildfile") || arg.equals("-file")
- || arg.equals("-f")) {
+ || arg.equals("-f")) {
try {
buildFile = new File(args[i + 1].replace('/',
File.separatorChar));
i++;
} catch (ArrayIndexOutOfBoundsException aioobe) {
- String msg = "You must specify a buildfile when "
- + "using the -buildfile argument";
- throw new BuildException(msg);
+ throw new
BuildException(MainMessages.NO_BUILD_FILE_SPECIFIED);
}
- } else if (arg.equals("-listener")) {
+ } else if (arg.equals("-listener")) {
try {
listeners.addElement(args[i + 1]);
i++;
} catch (ArrayIndexOutOfBoundsException aioobe) {
- String msg = "You must specify a classname when "
- + "using the -listener argument";
- throw new BuildException(msg);
+ throw new
BuildException(MainMessages.NO_LISTENER_CLASS_SPECIFIED);
}
- } else if (arg.startsWith("-D")) {
+ } else if (arg.startsWith("-D")) {
/* Interestingly enough, we get to here when a user
* uses -Dname=value. However, in some cases, the OS
@@ -349,85 +342,73 @@
String name = arg.substring(2, arg.length());
String value = null;
- int posEq = name.indexOf("=");
+ int posEq = name.indexOf("=");
if (posEq > 0) {
value = name.substring(posEq + 1);
name = name.substring(0, posEq);
} else if (i < args.length - 1) {
value = args[++i];
} else {
- throw new BuildException("Missing value for property "
+ throw new
BuildException(MainMessages.MISSING_VALUE_FOR_PROPERTY
+ name);
}
definedProps.put(name, value);
- } else if (arg.equals("-logger")) {
+ } else if (arg.equals("-logger")) {
if (loggerClassname != null) {
- throw new BuildException("Only one logger class may "
- + " be specified.");
+ throw new
BuildException(MainMessages.MORE_THAN_ONE_LOGGER_SPECIFIED);
}
try {
loggerClassname = args[++i];
} catch (ArrayIndexOutOfBoundsException aioobe) {
- throw new BuildException("You must specify a classname
when"
- + " using the -logger argument");
+ throw new
BuildException(MainMessages.NO_LOGGER_CLASS_SPECIFIED);
}
- } else if (arg.equals("-inputhandler")) {
+ } else if (arg.equals("-inputhandler")) {
if (inputHandlerClassname != null) {
- throw new BuildException("Only one input handler class may
"
- + "be specified.");
+ throw new
BuildException(MainMessages.MORE_THAN_ONE_INPUT_HANDLER_SPECIFIED);
}
try {
inputHandlerClassname = args[++i];
} catch (ArrayIndexOutOfBoundsException aioobe) {
- throw new BuildException("You must specify a classname
when"
- + " using the -inputhandler"
- + " argument");
+ throw new
BuildException(MainMessages.NO_INPUT_HANDLER_CLASS_SPECIFIED);
}
- } else if (arg.equals("-emacs") || arg.equals("-e")) {
+ } else if (arg.equals("-emacs") || arg.equals("-e")) {
emacsMode = true;
- } else if (arg.equals("-projecthelp") || arg.equals("-p")) {
+ } else if (arg.equals("-projecthelp") || arg.equals("-p")) {
// set the flag to display the targets and quit
projectHelp = true;
- } else if (arg.equals("-find") || arg.equals("-s")) {
+ } else if (arg.equals("-find") || arg.equals("-s")) {
// eat up next arg if present, default to build.xml
if (i < args.length - 1) {
searchForThis = args[++i];
} else {
searchForThis = DEFAULT_BUILD_FILENAME;
}
- } else if (arg.startsWith("-propertyfile")) {
+ } else if (arg.startsWith("-propertyfile")) {
try {
propertyFiles.addElement(args[i + 1]);
i++;
} catch (ArrayIndexOutOfBoundsException aioobe) {
- String msg = "You must specify a property filename when "
- + "using the -propertyfile argument";
- throw new BuildException(msg);
+ throw new
BuildException(MainMessages.NO_PROPERTY_FILE_SPECIFIED);
}
- } else if (arg.equals("-k") || arg.equals("-keep-going")) {
+ } else if (arg.equals("-k") || arg.equals("-keep-going")) {
keepGoingMode = true;
- } else if (arg.equals("-nice")) {
+ } else if (arg.equals("-nice")) {
try {
threadPriority = Integer.decode(args[i + 1]);
} catch (ArrayIndexOutOfBoundsException aioobe) {
- throw new BuildException(
- "You must supply a niceness value (1-10)"
- + " after the -nice option");
+ throw new BuildException(MainMessages.NO_NICENESS_VALUE);
} catch (NumberFormatException e) {
- throw new BuildException("Unrecognized niceness value: "
- + args[i + 1]);
+ throw new
BuildException(MainMessages.UNRECOGNIZED_NICENESS_VALUE + args[i + 1]);
}
i++;
if (threadPriority.intValue() < Thread.MIN_PRIORITY
|| threadPriority.intValue() > Thread.MAX_PRIORITY) {
- throw new BuildException(
- "Niceness value is out of the range 1-10");
+ throw new
BuildException(MainMessages.NICENESS_VALUE_OUT_OF_RANGE);
}
- } else if (arg.startsWith("-")) {
+ } else if (arg.startsWith("-")) {
// we don't have any more args to recognize!
- String msg = "Unknown argument: " + arg;
- System.out.println(msg);
+ System.out.println(MainMessages.UNKNOWN_ARGUMENT + arg);
printUsage();
throw new BuildException("");
} else {
@@ -440,7 +421,7 @@
if (buildFile == null) {
// but -find then search for it
if (searchForThis != null) {
- buildFile = findBuildFile(System.getProperty("user.dir"),
+ buildFile = findBuildFile(System.getProperty("user.dir"),
searchForThis);
} else {
buildFile = new File(DEFAULT_BUILD_FILENAME);
@@ -449,16 +430,16 @@
// make sure buildfile exists
if (!buildFile.exists()) {
- System.out.println("Buildfile: " + buildFile + " does not exist!");
- throw new BuildException("Build failed");
+ System.out.println("Buildfile: " + buildFile + " does not
exist!");
+ throw new BuildException("Build failed");
}
// make sure it's not a directory (this falls into the ultra
// paranoid lets check everything category
if (buildFile.isDirectory()) {
- System.out.println("What? Buildfile: " + buildFile + " is a dir!");
- throw new BuildException("Build failed");
+ System.out.println("What? Buildfile: " + buildFile + " is a
dir!");
+ throw new BuildException("Build failed");
}
// Load the property files specified by -propertyfile
@@ -473,8 +454,8 @@
fis = new FileInputStream(filename);
props.load(fis);
} catch (IOException e) {
- System.out.println("Could not load property file "
- + filename + ": " + e.getMessage());
+ System.out.println("Could not load property file "
+ + filename + ": " + e.getMessage());
} finally {
if (fis != null) {
try {
@@ -496,7 +477,7 @@
}
if (msgOutputLevel >= Project.MSG_INFO) {
- System.out.println("Buildfile: " + buildFile);
+ System.out.println("Buildfile: " + buildFile);
}
if (logTo != null) {
@@ -521,7 +502,7 @@
File parent = file.getParentFile();
if (parent != null && msgOutputLevel >= Project.MSG_VERBOSE) {
- System.out.println("Searching in " + parent.getAbsolutePath());
+ System.out.println("Searching in " + parent.getAbsolutePath());
}
return parent;
@@ -547,7 +528,7 @@
private File findBuildFile(String start, String suffix)
throws BuildException {
if (msgOutputLevel >= Project.MSG_INFO) {
- System.out.println("Searching for " + suffix + " ...");
+ System.out.println("Searching for " + suffix + " ...");
}
File parent = new File(new File(start).getAbsolutePath());
@@ -561,7 +542,7 @@
// if parent is null, then we are at the root of the fs,
// complain that we can't find the build file.
if (parent == null) {
- throw new BuildException("Could not locate a build file!");
+ throw new BuildException("Could not locate a build file!");
}
// refresh our file handle
@@ -597,13 +578,12 @@
addBuildListeners(project);
addInputHandler(project);
- PrintStream err = System.err;
- PrintStream out = System.out;
- InputStream in = System.in;
+ PrintStream storedErr = System.err;
+ PrintStream storedOut = System.out;
+ InputStream storedIn = System.in;
// use a system manager that prevents from System.exit()
- SecurityManager oldsm = null;
- oldsm = System.getSecurityManager();
+ SecurityManager oldsm = System.getSecurityManager();
//SecurityManager can not be installed here for backwards
//compatibility reasons (PD). Needs to be loaded prior to
@@ -630,7 +610,7 @@
Thread.currentThread().setPriority(threadPriority.intValue());
} catch (SecurityException swallowed) {
//we cannot set the priority here.
- project.log("A security manager refused to set the
-nice value");
+ project.log("A security manager refused to set the
-nice value");
}
}
@@ -645,7 +625,7 @@
project.setUserProperty(arg, value);
}
- project.setUserProperty("ant.file",
+ project.setUserProperty("ant.file",
buildFile.getAbsolutePath());
project.setKeepGoingMode(keepGoingMode);
@@ -673,16 +653,16 @@
System.setSecurityManager(oldsm);
}
- System.setOut(out);
- System.setErr(err);
- System.setIn(in);
+ System.setOut(storedOut);
+ System.setErr(storedErr);
+ System.setIn(storedIn);
}
} catch (RuntimeException exc) {
error = exc;
throw exc;
- } catch (Error err) {
- error = err;
- throw err;
+ } catch (Error er) {
+ error = er;
+ throw er;
} finally {
if (!projectHelp) {
project.fireBuildFinished(error);
@@ -704,7 +684,7 @@
// Add the default listener
project.addBuildListener(createLogger());
- for (int i = 0; i < listeners.size(); i++) {
+ for (int i = 0, size = listeners.size(); i < size; i++) {
String className = (String) listeners.elementAt(i);
try {
BuildListener listener =
@@ -771,13 +751,13 @@
Class loggerClass = Class.forName(loggerClassname);
logger = (BuildLogger) (loggerClass.newInstance());
} catch (ClassCastException e) {
- System.err.println("The specified logger class "
+ System.err.println("The specified logger class "
+ loggerClassname
- + " does not implement the BuildLogger interface");
+ + " does not implement the BuildLogger interface");
throw new RuntimeException();
} catch (Exception e) {
- System.err.println("Unable to instantiate specified logger "
- + "class " + loggerClassname + " : "
+ System.err.println("Unable to instantiate specified logger "
+ + "class " + loggerClassname + " : "
+ e.getClass().getName());
throw new RuntimeException();
}
@@ -797,44 +777,43 @@
* Prints the usage information for this class to <code>System.out</code>.
*/
private static void printUsage() {
- String lSep = System.getProperty("line.separator");
StringBuffer msg = new StringBuffer();
- msg.append("ant [options] [target [target2 [target3] ...]]" + lSep);
- msg.append("Options: " + lSep);
- msg.append(" -help, -h print this message" + lSep);
- msg.append(" -projecthelp, -p print project help information" +
lSep);
- msg.append(" -version print the version information and
exit" + lSep);
- msg.append(" -diagnostics print information that might be
helpful to" + lSep);
- msg.append(" diagnose or report problems." +
lSep);
- msg.append(" -quiet, -q be extra quiet" + lSep);
- msg.append(" -verbose, -v be extra verbose" + lSep);
- msg.append(" -debug, -d print debugging information" +
lSep);
- msg.append(" -emacs, -e produce logging information
without adornments"
- + lSep);
- msg.append(" -lib <path> specifies a path to search for
jars and classes"
- + lSep);
- msg.append(" -logfile <file> use given file for log" + lSep);
- msg.append(" -l <file> ''" + lSep);
- msg.append(" -logger <classname> the class which is to perform
logging" + lSep);
- msg.append(" -listener <classname> add an instance of class as a
project listener"
- + lSep);
- msg.append(" -noinput do not allow interactive input" +
lSep);
- msg.append(" -buildfile <file> use given buildfile" + lSep);
- msg.append(" -file <file> ''" + lSep);
- msg.append(" -f <file> ''" + lSep);
- msg.append(" -D<property>=<value> use value for given property" +
lSep);
- msg.append(" -keep-going, -k execute all targets that do not
depend" + lSep);
- msg.append(" on failed target(s)" + lSep);
- msg.append(" -propertyfile <name> load all properties from file
with -D" + lSep);
- msg.append(" properties taking precedence" +
lSep);
- msg.append(" -inputhandler <class> the class which will handle input
requests" + lSep);
- msg.append(" -find <file> (s)earch for buildfile towards
the root of" + lSep);
- msg.append(" -s <file> the filesystem and use it" +
lSep);
- msg.append(" -nice number A niceness value for the main
thread:" + lSep
- + " 1 (lowest) to 10 (highest); 5
is the default"
- + lSep);
- msg.append(" -nouserlib Run ant without using the jar
files from" + lSep
- + " ${user.home}/.ant/lib" + lSep);
+ msg.append("ant [options] [target [target2 [target3] ...]]" +
StringUtils.LINE_SEP);
+ msg.append("Options: " + StringUtils.LINE_SEP);
+ msg.append(" -help, -h print this message" +
StringUtils.LINE_SEP);
+ msg.append(" -projecthelp, -p print project help information" +
StringUtils.LINE_SEP);
+ msg.append(" -version print the version information and
exit" + StringUtils.LINE_SEP);
+ msg.append(" -diagnostics print information that might be
helpful to" + StringUtils.LINE_SEP);
+ msg.append(" diagnose or report problems." +
StringUtils.LINE_SEP);
+ msg.append(" -quiet, -q be extra quiet" +
StringUtils.LINE_SEP);
+ msg.append(" -verbose, -v be extra verbose" +
StringUtils.LINE_SEP);
+ msg.append(" -debug, -d print debugging information" +
StringUtils.LINE_SEP);
+ msg.append(" -emacs, -e produce logging information
without adornments"
+ + StringUtils.LINE_SEP);
+ msg.append(" -lib <path> specifies a path to search for
jars and classes"
+ + StringUtils.LINE_SEP);
+ msg.append(" -logfile <file> use given file for log" +
StringUtils.LINE_SEP);
+ msg.append(" -l <file> ''" +
StringUtils.LINE_SEP);
+ msg.append(" -logger <classname> the class which is to perform
logging" + StringUtils.LINE_SEP);
+ msg.append(" -listener <classname> add an instance of class as a
project listener"
+ + StringUtils.LINE_SEP);
+ msg.append(" -noinput do not allow interactive input" +
StringUtils.LINE_SEP);
+ msg.append(" -buildfile <file> use given buildfile" +
StringUtils.LINE_SEP);
+ msg.append(" -file <file> ''" +
StringUtils.LINE_SEP);
+ msg.append(" -f <file> ''" +
StringUtils.LINE_SEP);
+ msg.append(" -D<property>=<value> use value for given property" +
StringUtils.LINE_SEP);
+ msg.append(" -keep-going, -k execute all targets that do not
depend" + StringUtils.LINE_SEP);
+ msg.append(" on failed target(s)" +
StringUtils.LINE_SEP);
+ msg.append(" -propertyfile <name> load all properties from file
with -D" + StringUtils.LINE_SEP);
+ msg.append(" properties taking precedence" +
StringUtils.LINE_SEP);
+ msg.append(" -inputhandler <class> the class which will handle input
requests" + StringUtils.LINE_SEP);
+ msg.append(" -find <file> (s)earch for buildfile towards
the root of" + StringUtils.LINE_SEP);
+ msg.append(" -s <file> the filesystem and use it" +
StringUtils.LINE_SEP);
+ msg.append(" -nice number A niceness value for the main
thread:" + StringUtils.LINE_SEP
+ + " 1 (lowest) to 10 (highest); 5
is the default"
+ + StringUtils.LINE_SEP);
+ msg.append(" -nouserlib Run ant without using the jar
files from" + StringUtils.LINE_SEP
+ + " ${user.home}/.ant/lib" +
StringUtils.LINE_SEP);
msg.append(" -noclasspath Run ant without using CLASSPATH");
System.out.println(msg.toString());
}
@@ -1006,15 +985,14 @@
Vector descriptions, String heading,
int maxlen) {
// now, start printing the targets and their descriptions
- String lSep = System.getProperty("line.separator");
// got a bit annoyed that I couldn't find a pad function
String spaces = " ";
while (spaces.length() <= maxlen) {
spaces += spaces;
}
StringBuffer msg = new StringBuffer();
- msg.append(heading + lSep + lSep);
- for (int i = 0; i < names.size(); i++) {
+ msg.append(heading + StringUtils.LINE_SEP + StringUtils.LINE_SEP);
+ for (int i = 0, size = names.size(); i < size; i++) {
msg.append(" ");
msg.append(names.elementAt(i));
if (descriptions != null) {
@@ -1022,8 +1000,8 @@
spaces.substring(0, maxlen - ((String)
names.elementAt(i)).length() + 2));
msg.append(descriptions.elementAt(i));
}
- msg.append(lSep);
+ msg.append(StringUtils.LINE_SEP);
}
project.log(msg.toString());
}
-}
+}
\ No newline at end of file
Index: org/apache/tools/ant/ProjectHelper.java
===================================================================
RCS file: /home/cvspublic/ant/src/main/org/apache/tools/ant/ProjectHelper.java,v
retrieving revision 1.114
diff -u -r1.114 ProjectHelper.java
--- org/apache/tools/ant/ProjectHelper.java 13 Dec 2004 16:43:51 -0000
1.114
+++ org/apache/tools/ant/ProjectHelper.java 21 Feb 2005 14:58:35 -0000
@@ -24,8 +24,11 @@
import java.util.Hashtable;
import java.util.Locale;
import java.util.Vector;
+
import org.apache.tools.ant.helper.ProjectHelper2;
import org.apache.tools.ant.util.LoaderUtils;
+import org.apache.tools.ant.util.StringUtils;
+
import org.xml.sax.AttributeList;
/**
@@ -529,7 +532,7 @@
}
String errorMessage
= "The following error occurred while executing this line:"
- + System.getProperty("line.separator")
+ + StringUtils.LINE_SEP
+ ex.getLocation().toString()
+ ex.getMessage();
if (newLocation == null) {
Index: org/apache/tools/ant/UnknownElement.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/UnknownElement.java,v
retrieving revision 1.84
diff -u -r1.84 UnknownElement.java
--- org/apache/tools/ant/UnknownElement.java 7 Jan 2005 21:56:59 -0000
1.84
+++ org/apache/tools/ant/UnknownElement.java 21 Feb 2005 14:58:54 -0000
@@ -21,7 +21,9 @@
import java.util.Iterator;
import java.util.List;
import java.io.IOException;
+
import org.apache.tools.ant.taskdefs.PreSetDef;
+import org.apache.tools.ant.util.StringUtils;
/**
* Wrapper class that holds all the information necessary to create a task
@@ -458,45 +460,43 @@
*/
protected BuildException getNotFoundException(String what,
String elementName) {
- String lSep = System.getProperty("line.separator");
String msg = "Could not create " + what + " of type: " + elementName
- + "." + lSep + lSep
+ + "." + StringUtils.LINE_SEP + StringUtils.LINE_SEP
+ "Ant could not find the task or a class this "
- + "task relies upon." + lSep + lSep
- + "This is common and has a number of causes; the usual " + lSep
- + "solutions are to read the manual pages then download and" + lSep
- + "install needed JAR files, or fix the build file: " + lSep
- + " - You have misspelt '" + elementName + "'." + lSep
- + " Fix: check your spelling." + lSep
- + " - The task needs an external JAR file to execute" + lSep
- + " and this is not found at the right place in the
classpath." + lSep
- + " Fix: check the documentation for dependencies." + lSep
- + " Fix: declare the task." + lSep
- + " - The task is an Ant optional task and the JAR file and/or
libraries" + lSep
- + " implementing the functionality were not found at the time
you" + lSep
- + " yourself built your installation of Ant from the Ant
sources." + lSep
- + " Fix: Look in the ANT_HOME/lib for the 'ant-' JAR
corresponding to the" + lSep
- + " task and make sure it contains more than merely a
META-INF/MANIFEST.MF." + lSep
- + " If all it contains is the manifest, then rebuild Ant with
the needed" + lSep
- + " libraries present in ${ant.home}/lib/optional/ , or
alternatively," + lSep
- + " download a pre-built release version from apache.org" +
lSep
- + " - The build file was written for a later version of Ant" + lSep
- + " Fix: upgrade to at least the latest release version of Ant"
+ lSep
- + " - The task is not an Ant core or optional task " + lSep
- + " and needs to be declared using <taskdef>." + lSep
- + " - You are attempting to use a task defined using " + lSep
- + " <presetdef> or <macrodef> but have spelt wrong or not " +
lSep
- + " defined it at the point of use" + lSep
- + lSep
- + "Remember that for JAR files to be visible to Ant tasks
implemented" + lSep
- + "in ANT_HOME/lib, the files must be in the same directory or on
the" + lSep
- + "classpath" + lSep
- + lSep
- + "Please neither file bug reports on this problem, nor email the"
+ lSep
- + "Ant mailing lists, until all of these causes have been
explored," + lSep
+ + "task relies upon." + StringUtils.LINE_SEP + StringUtils.LINE_SEP
+ + "This is common and has a number of causes; the usual " +
StringUtils.LINE_SEP
+ + "solutions are to read the manual pages then download and" +
StringUtils.LINE_SEP
+ + "install needed JAR files, or fix the build file: " +
StringUtils.LINE_SEP
+ + " - You have misspelt '" + elementName + "'." +
StringUtils.LINE_SEP
+ + " Fix: check your spelling." + StringUtils.LINE_SEP
+ + " - The task needs an external JAR file to execute" +
StringUtils.LINE_SEP
+ + " and this is not found at the right place in the
classpath." + StringUtils.LINE_SEP
+ + " Fix: check the documentation for dependencies." +
StringUtils.LINE_SEP
+ + " Fix: declare the task." + StringUtils.LINE_SEP
+ + " - The task is an Ant optional task and the JAR file and/or
libraries" + StringUtils.LINE_SEP
+ + " implementing the functionality were not found at the time
you" + StringUtils.LINE_SEP
+ + " yourself built your installation of Ant from the Ant
sources." + StringUtils.LINE_SEP
+ + " Fix: Look in the ANT_HOME/lib for the 'ant-' JAR
corresponding to the" + StringUtils.LINE_SEP
+ + " task and make sure it contains more than merely a
META-INF/MANIFEST.MF." + StringUtils.LINE_SEP
+ + " If all it contains is the manifest, then rebuild Ant with
the needed" + StringUtils.LINE_SEP
+ + " libraries present in ${ant.home}/lib/optional/ , or
alternatively," + StringUtils.LINE_SEP
+ + " download a pre-built release version from apache.org" +
StringUtils.LINE_SEP
+ + " - The build file was written for a later version of Ant" +
StringUtils.LINE_SEP
+ + " Fix: upgrade to at least the latest release version of Ant"
+ StringUtils.LINE_SEP
+ + " - The task is not an Ant core or optional task " +
StringUtils.LINE_SEP
+ + " and needs to be declared using <taskdef>." +
StringUtils.LINE_SEP
+ + " - You are attempting to use a task defined using " +
StringUtils.LINE_SEP
+ + " <presetdef> or <macrodef> but have spelt wrong or not " +
StringUtils.LINE_SEP
+ + " defined it at the point of use" + StringUtils.LINE_SEP
+ + StringUtils.LINE_SEP
+ + "Remember that for JAR files to be visible to Ant tasks
implemented" + StringUtils.LINE_SEP
+ + "in ANT_HOME/lib, the files must be in the same directory or on
the" + StringUtils.LINE_SEP
+ + "classpath" + StringUtils.LINE_SEP
+ + StringUtils.LINE_SEP
+ + "Please neither file bug reports on this problem, nor email the"
+ StringUtils.LINE_SEP
+ + "Ant mailing lists, until all of these causes have been
explored," + StringUtils.LINE_SEP
+ "as this is not an Ant bug.";
-
return new BuildException(msg, getLocation());
}
Index: org/apache/tools/ant/filters/util/JavaClassHelper.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/filters/util/JavaClassHelper.java,v
retrieving revision 1.10
diff -u -r1.10 JavaClassHelper.java
--- org/apache/tools/ant/filters/util/JavaClassHelper.java 9 Mar 2004
16:48:02 -0000 1.10
+++ org/apache/tools/ant/filters/util/JavaClassHelper.java 21 Feb 2005
14:58:57 -0000
@@ -18,10 +18,12 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
+
import org.apache.bcel.classfile.ClassParser;
import org.apache.bcel.classfile.ConstantValue;
import org.apache.bcel.classfile.Field;
import org.apache.bcel.classfile.JavaClass;
+import org.apache.tools.ant.util.StringUtils;
/**
* Helper class that filters constants from a Java Class
@@ -29,9 +31,6 @@
*/
public final class JavaClassHelper {
- /** System specific line separator. */
- private static final String LS = System.getProperty("line.separator");
-
/**
* Get the constants declared in a file as name=value
*
@@ -59,7 +58,7 @@
sb.append(field.getName());
sb.append('=');
sb.append(cvs);
- sb.append(LS);
+ sb.append(StringUtils.LINE_SEP);
}
}
}
Index: org/apache/tools/ant/taskdefs/AbstractCvsTask.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java,v
retrieving revision 1.35
diff -u -r1.35 AbstractCvsTask.java
--- org/apache/tools/ant/taskdefs/AbstractCvsTask.java 17 Jul 2004 15:10:11
-0000 1.35
+++ org/apache/tools/ant/taskdefs/AbstractCvsTask.java 21 Feb 2005 14:59:17
-0000
@@ -375,8 +375,9 @@
public void execute() throws BuildException {
String savedCommand = getCommand();
-
- if (this.getCommand() == null && vecCommandlines.size() == 0) {
+ int commandLinesSize = vecCommandlines.size();
+
+ if (this.getCommand() == null && commandLinesSize == 0) {
// re-implement legacy behaviour:
this.setCommand(AbstractCvsTask.DEFAULT_COMMAND);
}
@@ -387,10 +388,11 @@
cloned = (Commandline) cmd.clone();
cloned.createArgument(true).setLine(c);
this.addConfiguredCommandline(cloned, true);
+ commandLinesSize++; //added another command to vector
}
try {
- for (int i = 0; i < vecCommandlines.size(); i++) {
+ for (int i = 0; i < commandLinesSize; i++) {
this.runCommand((Commandline) vecCommandlines.elementAt(i));
}
} finally {
Index: org/apache/tools/ant/taskdefs/Execute.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/Execute.java,v
retrieving revision 1.89
diff -u -r1.89 Execute.java
--- org/apache/tools/ant/taskdefs/Execute.java 2 Feb 2005 07:59:36 -0000
1.89
+++ org/apache/tools/ant/taskdefs/Execute.java 21 Feb 2005 15:00:52 -0000
@@ -34,6 +34,7 @@
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.util.FileUtils;
+import org.apache.tools.ant.util.StringUtils;
import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.tools.ant.types.Commandline;
@@ -166,15 +167,15 @@
return procEnvironment;
}
String var = null;
- String line, lineSep = System.getProperty("line.separator");
+ String line;
while ((line = in.readLine()) != null) {
if (line.indexOf('=') == -1) {
// Chunk part of previous env var (UNIX env vars can
// contain embedded new lines).
if (var == null) {
- var = lineSep + line;
+ var = StringUtils.LINE_SEP + line;
} else {
- var += lineSep + line;
+ var += StringUtils.LINE_SEP + line;
}
} else {
// New env var...append the previous one if we have it.
Index: org/apache/tools/ant/taskdefs/Javac.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/Javac.java,v
retrieving revision 1.124
diff -u -r1.124 Javac.java
--- org/apache/tools/ant/taskdefs/Javac.java 12 Nov 2004 15:14:59 -0000
1.124
+++ org/apache/tools/ant/taskdefs/Javac.java 21 Feb 2005 15:01:20 -0000
@@ -18,6 +18,7 @@
package org.apache.tools.ant.taskdefs;
import java.io.File;
+
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
Index: org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java,v
retrieving revision 1.27
diff -u -r1.27 CompilerAdapterFactory.java
--- org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java 30 Sep
2004 12:41:52 -0000 1.27
+++ org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java 21 Feb
2005 15:01:26 -0000
@@ -127,6 +127,9 @@
|| compilerType.equalsIgnoreCase("symantec")) {
return new Sj();
}
+ if (compilerType.equalsIgnoreCase("ajc")) {
+ return new Ajc();
+ }
return resolveClassName(compilerType);
}
@@ -146,6 +149,7 @@
return true;
}
} catch (ClassNotFoundException cnfe2) {
+ /* do nothing */
}
}
return false;
Index: org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java,v
retrieving revision 1.58
diff -u -r1.58 DefaultCompilerAdapter.java
--- org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java 26 Jan
2005 15:11:26 -0000 1.58
+++ org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java 21 Feb
2005 15:01:47 -0000
@@ -68,7 +68,7 @@
protected String memoryMaximumSize;
protected File[] compileList;
- protected static final String lSep = System.getProperty("line.separator");
+ protected static final String LINE_SEPARATOR =
System.getProperty("line.separator");
protected Javac attributes;
@@ -398,12 +398,12 @@
}
niceSourceList.append(" to be compiled:");
- niceSourceList.append(lSep);
+ niceSourceList.append(LINE_SEPARATOR);
for (int i = 0; i < compileList.length; i++) {
String arg = compileList[i].getAbsolutePath();
cmd.createArgument().setValue(arg);
- niceSourceList.append(" " + arg + lSep);
+ niceSourceList.append(" " + arg + LINE_SEPARATOR);
}
attributes.log(niceSourceList.toString(), Project.MSG_VERBOSE);
Index: org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java,v
retrieving revision 1.28
diff -u -r1.28 ChangeLogParser.java
--- org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java 6 Dec 2004
17:35:42 -0000 1.28
+++ org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java 21 Feb 2005
15:01:51 -0000
@@ -23,6 +23,8 @@
import java.util.Hashtable;
import java.util.TimeZone;
+import org.apache.tools.ant.util.StringUtils;
+
/**
* A class used to parse the output of the CVS log command.
*
@@ -114,23 +116,22 @@
* @param line the line
*/
private void processComment(final String line) {
- final String lineSeparator = System.getProperty("line.separator");
if (line.equals(
"============================================================================="))
{
//We have ended changelog for that particular file
//so we can save it
final int end
- = comment.length() - lineSeparator.length(); //was -1
+ = comment.length() - StringUtils.LINE_SEP.length(); //was -1
comment = comment.substring(0, end);
saveEntry();
status = GET_FILE;
} else if (line.equals("----------------------------")) {
final int end
- = comment.length() - lineSeparator.length(); //was -1
+ = comment.length() - StringUtils.LINE_SEP.length(); //was -1
comment = comment.substring(0, end);
status = GET_PREVIOUS_REV;
} else {
- comment += line + lineSeparator;
+ comment += line + StringUtils.LINE_SEP;
}
}
@@ -218,12 +219,12 @@
/**
* Parse date out from expected format.
*
- * @param date the string holding date
+ * @param dateToParse the string holding date
* @return the date object or null if unknown date format
*/
- private Date parseDate(final String date) {
+ private Date parseDate(final String dateToParse) {
try {
- return INPUT_DATE.parse(date);
+ return INPUT_DATE.parse(dateToParse);
} catch (ParseException e) {
//final String message = REZ.getString(
"changelog.bat-date.error", date );
//getContext().error( message );
Index: org/apache/tools/ant/taskdefs/email/EmailTask.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/email/EmailTask.java,v
retrieving revision 1.30
diff -u -r1.30 EmailTask.java
--- org/apache/tools/ant/taskdefs/email/EmailTask.java 2 Feb 2005 20:08:57
-0000 1.30
+++ org/apache/tools/ant/taskdefs/email/EmailTask.java 21 Feb 2005 15:02:10
-0000
@@ -202,15 +202,15 @@
/**
* Add a message element.
*
- * @param message The message object.
+ * @param messageToAdd The message object.
* @throws BuildException if a message has already been added.
*/
- public void addMessage(Message message) throws BuildException {
+ public void addMessage(Message messageToAdd) throws BuildException {
if (this.message != null) {
throw new BuildException(
"Only one message can be sent in an email");
}
- this.message = message;
+ this.message = messageToAdd;
}
/**
Index: org/apache/tools/ant/taskdefs/optional/Javah.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java,v
retrieving revision 1.34
diff -u -r1.34 Javah.java
--- org/apache/tools/ant/taskdefs/optional/Javah.java 4 Feb 2005 08:08:07
-0000 1.34
+++ org/apache/tools/ant/taskdefs/optional/Javah.java 21 Feb 2005 15:02:16
-0000
@@ -22,6 +22,7 @@
import java.util.Enumeration;
import java.util.StringTokenizer;
import java.util.Vector;
+
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
@@ -30,7 +31,7 @@
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
-import org.apache.tools.ant.util.JavaEnvUtils;
+import org.apache.tools.ant.util.StringUtils;
import org.apache.tools.ant.util.facade.FacadeTaskHelper;
import org.apache.tools.ant.util.facade.ImplementationSpecificArgument;
@@ -78,7 +79,6 @@
private boolean stubs = false;
private Path bootclasspath;
//private Path extdirs;
- private static String lSep = System.getProperty("line.separator");
private FacadeTaskHelper facade = null;
public Javah() {
@@ -414,7 +414,7 @@
String[] c = getClasses();
for (int i = 0; i < c.length; i++) {
cmd.createArgument().setValue(c[i]);
- niceClassList.append(" " + c[i] + lSep);
+ niceClassList.append(" " + c[i] + StringUtils.LINE_SEP);
}
StringBuffer prefix = new StringBuffer("Class");
@@ -422,7 +422,7 @@
prefix.append("es");
}
prefix.append(" to be compiled:");
- prefix.append(lSep);
+ prefix.append(StringUtils.LINE_SEP);
log(prefix.toString() + niceClassList.toString(), Project.MSG_VERBOSE);
}
Index: org/apache/tools/ant/util/DOMElementWriter.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/util/DOMElementWriter.java,v
retrieving revision 1.26
diff -u -r1.26 DOMElementWriter.java
--- org/apache/tools/ant/util/DOMElementWriter.java 24 Jan 2005 18:13:20
-0000 1.26
+++ org/apache/tools/ant/util/DOMElementWriter.java 21 Feb 2005 15:02:46
-0000
@@ -21,6 +21,7 @@
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
+
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
@@ -28,6 +29,8 @@
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
+import org.apache.tools.ant.util.StringUtils;
+
/**
* Writes a DOM tree to a given Writer.
*
@@ -39,8 +42,6 @@
*/
public class DOMElementWriter {
- private static String lSep = System.getProperty("line.separator");
-
/**
* Don't try to be too smart but at least recognize the predefined
* entities.
@@ -107,7 +108,7 @@
case Node.ELEMENT_NODE:
if (!hasChildren) {
- out.write(lSep);
+ out.write(StringUtils.LINE_SEP);
hasChildren = true;
}
write((Element) child, out, indent + 1, indentWith);
@@ -163,7 +164,7 @@
out.write("</");
out.write(element.getTagName());
out.write(">");
- out.write(lSep);
+ out.write(StringUtils.LINE_SEP);
out.flush();
}
Index: org/apache/tools/ant/MainMessages.java
===================================================================
RCS file: org/apache/tools/ant/MainMessages.java
diff -N org/apache/tools/ant/MainMessages.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ org/apache/tools/ant/MainMessages.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2000-2005 The Apache Software Foundation
+ *
+ * Licensed 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;
+
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class MainMessages {
+ private static final String BUNDLE_NAME =
"org/apache/tools/ant/main_messages";
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+ .getBundle(BUNDLE_NAME, Locale.getDefault());
+
+ static final String CANT_WRITE_LOG =
RESOURCE_BUNDLE.getString("Main.CantWriteLog");
+ static final String NO_LOG_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.NoLogSpecified");
+ static final String NO_BUILD_FILE_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.NoBuildFileSpecified");
+ static final String NO_LISTENER_CLASS_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.NoListenerClassSpecified");
+ static final String MISSING_VALUE_FOR_PROPERTY =
RESOURCE_BUNDLE.getString("Main.MissingValueForProperty");
+ static final String MORE_THAN_ONE_LOGGER_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.MoreThanOneLoggerSpecified");
+ static final String NO_LOGGER_CLASS_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.NoLoggerClassSpecified");
+ static final String MORE_THAN_ONE_INPUT_HANDLER_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.MoreThanOneInputHandlerSpecified");
+ static final String NO_INPUT_HANDLER_CLASS_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.NoInputHandlerClassSpecified");
+ static final String NO_PROPERTY_FILE_SPECIFIED =
RESOURCE_BUNDLE.getString("Main.NoPropertyFileSpecified");
+ static final String NO_NICENESS_VALUE =
RESOURCE_BUNDLE.getString("Main.NoNicenessValue");
+ static final String UNRECOGNIZED_NICENESS_VALUE =
RESOURCE_BUNDLE.getString("Main.UnrecognizedNicenessValue");
+ static final String NICENESS_VALUE_OUT_OF_RANGE =
RESOURCE_BUNDLE.getString("Main.NicenessValueOutOfRange");
+ static final String UNKNOWN_ARGUMENT =
RESOURCE_BUNDLE.getString("Main.UnknownArgument");
+
+ private MainMessages() {
+ //private constructor
+ }
+
+ public static String getString(String key) {
+ try {
+ return RESOURCE_BUNDLE.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
Index: org/apache/tools/ant/main_messages.properties
===================================================================
RCS file: org/apache/tools/ant/main_messages.properties
diff -N org/apache/tools/ant/main_messages.properties
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ org/apache/tools/ant/main_messages.properties 1 Jan 1970 00:00:00
-0000
@@ -0,0 +1,14 @@
+Main.CantWriteLog=Cannot write on the specified log file. Make sure the path
exists and you have write permissions.
+Main.NoLogSpecified=You must specify a log file when using the -log argument.
+Main.NoBuildFileSpecified=You must specify a buildfile when using the
-buildfile argument.
+Main.NoListenerClassSpecified=You must specify a classname when using the
-listener argument.
+Main.MissingPropertyValue=Missing value for property
+Main.MoreThanOneLoggerSpecified=Only one logger class may be specified.
+Main.NoLoggerClassSpecified=You must specify a classname when using the
-logger argument.
+Main.MoreThanOneInputHandlerSpecified=Only one input handler class may be
specified.
+Main.NoInputHandlerClassSpecified=You must specify a classname when using the
-inputhandler argument.
+Main.NoPropertyFileSpecified=You must specify a property filename when using
the -propertyfile argument.
+Main.NoNicenessValue=You must supply a niceness value (1-10) after the -nice
option.
+Main.UnrecognizedNicenessValue=Unrecognized niceness value:
+Main.NicenessValueOutOfRange=Niceness value is out of the range 1-10.
+Main.UnknownArgument=Unknown argument:
Index: org/apache/tools/ant/main_messages_en_US.properties
===================================================================
RCS file: org/apache/tools/ant/main_messages_en_US.properties
diff -N org/apache/tools/ant/main_messages_en_US.properties
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ org/apache/tools/ant/main_messages_en_US.properties 1 Jan 1970 00:00:00
-0000
@@ -0,0 +1,14 @@
+Main.CantWriteLog=Cannot write on the specified log file. Make sure the path
exists and you have write permissions.
+Main.NoLogSpecified=You must specify a log file when using the -log argument.
+Main.NoBuildFileSpecified=You must specify a buildfile when using the
-buildfile argument.
+Main.NoListenerClassSpecified=You must specify a classname when using the
-listener argument.
+Main.MissingValueForProperty=Missing value for property
+Main.MoreThanOneLoggerSpecified=Only one logger class may be specified.
+Main.NoLoggerClassSpecified=You must specify a classname when using the
-logger argument.
+Main.MoreThanOneInputHandlerSpecified=Only one input handler class may be
specified.
+Main.NoInputHandlerClassSpecified=You must specify a classname when using the
-inputhandler argument.
+Main.NoPropertyFileSpecified=You must specify a property filename when using
the -propertyfile argument.
+Main.NoNicenessValue=You must supply a niceness value (1-10) after the -nice
option.
+Main.UnrecognizedNicenessValue=Unrecognized niceness value:
+Main.NicenessValueOutOfRange=Niceness value is out of the range 1-10.
+Main.UnknownArgument=Unknown argument:--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
