git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274939 13f79535-47bb-0310-9956-ffa450edef68master
@@ -129,12 +129,16 @@ public class Copy extends Task { | |||
fileUtils = FileUtils.newFileUtils(); | |||
} | |||
/** | |||
* @return the fileutils object | |||
*/ | |||
protected FileUtils getFileUtils() { | |||
return fileUtils; | |||
} | |||
/** | |||
* Sets a single source file to copy. | |||
* @param file the file to copy | |||
*/ | |||
public void setFile(File file) { | |||
this.file = file; | |||
@@ -142,6 +146,7 @@ public class Copy extends Task { | |||
/** | |||
* Sets the destination file. | |||
* @param destFile the file to copy to | |||
*/ | |||
public void setTofile(File destFile) { | |||
this.destFile = destFile; | |||
@@ -149,6 +154,7 @@ public class Copy extends Task { | |||
/** | |||
* Sets the destination directory. | |||
* @param destDir the destination directory | |||
*/ | |||
public void setTodir(File destDir) { | |||
this.destDir = destDir; | |||
@@ -156,6 +162,7 @@ public class Copy extends Task { | |||
/** | |||
* Adds a FilterChain. | |||
* @return a filter chain object | |||
*/ | |||
public FilterChain createFilterChain() { | |||
FilterChain filterChain = new FilterChain(); | |||
@@ -165,6 +172,7 @@ public class Copy extends Task { | |||
/** | |||
* Adds a filterset. | |||
* @return a filter set object | |||
*/ | |||
public FilterSet createFilterSet() { | |||
FilterSet filterSet = new FilterSet(); | |||
@@ -174,6 +182,7 @@ public class Copy extends Task { | |||
/** | |||
* Give the copied files the same last modified time as the original files. | |||
* @param preserve a boolean string | |||
* @deprecated setPreserveLastModified(String) has been deprecated and | |||
* replaced with setPreserveLastModified(boolean) to | |||
* consistently let the Introspection mechanism work. | |||
@@ -184,6 +193,7 @@ public class Copy extends Task { | |||
/** | |||
* Give the copied files the same last modified time as the original files. | |||
* @param preserve if true perserce the modified time, default is false | |||
*/ | |||
public void setPreserveLastModified(boolean preserve) { | |||
preserveLastModified = preserve; | |||
@@ -192,7 +202,7 @@ public class Copy extends Task { | |||
/** | |||
* Whether to give the copied files the same last modified time as | |||
* the original files. | |||
* | |||
* @return the preserveLastModified attribute | |||
* @since 1.32, Ant 1.5 | |||
*/ | |||
public boolean getPreserveLastModified() { | |||
@@ -219,6 +229,7 @@ public class Copy extends Task { | |||
/** | |||
* If true, enables filtering. | |||
* @param filtering if true enable filtering, default is false | |||
*/ | |||
public void setFiltering(boolean filtering) { | |||
this.filtering = filtering; | |||
@@ -226,6 +237,9 @@ public class Copy extends Task { | |||
/** | |||
* Overwrite any existing destination file(s). | |||
* @param overwrite if true force overwriting of destination file(s) | |||
* even if the destination file(s) are younger than | |||
* the corresponding source file. Default is false. | |||
*/ | |||
public void setOverwrite(boolean overwrite) { | |||
this.forceOverwrite = overwrite; | |||
@@ -237,6 +251,8 @@ public class Copy extends Task { | |||
* the same name in the source directory tree, only the first | |||
* file will be copied into the "flattened" directory, unless | |||
* the forceoverwrite attribute is true. | |||
* @param flatten if true flatten the destination directory. Default | |||
* is false. | |||
*/ | |||
public void setFlatten(boolean flatten) { | |||
this.flatten = flatten; | |||
@@ -244,6 +260,7 @@ public class Copy extends Task { | |||
/** | |||
* Used to force listing of all names of copied files. | |||
* @param verbose output the names of copied files. Default is false. | |||
*/ | |||
public void setVerbose(boolean verbose) { | |||
if (verbose) { | |||
@@ -255,6 +272,7 @@ public class Copy extends Task { | |||
/** | |||
* Used to copy empty directories. | |||
* @param includeEmpty if true copy empty directories. Default is true. | |||
*/ | |||
public void setIncludeEmptyDirs(boolean includeEmpty) { | |||
this.includeEmpty = includeEmpty; | |||
@@ -281,7 +299,7 @@ public class Copy extends Task { | |||
public boolean isEnableMultipleMapping() { | |||
return enableMultipleMappings; | |||
} | |||
/** | |||
* If false, note errors to the output but keep going. | |||
* @param failonerror true or false | |||
@@ -292,6 +310,7 @@ public class Copy extends Task { | |||
/** | |||
* Adds a set of files to copy. | |||
* @param set a set of files to copy | |||
*/ | |||
public void addFileset(FileSet set) { | |||
filesets.addElement(set); | |||
@@ -299,6 +318,8 @@ public class Copy extends Task { | |||
/** | |||
* Defines the mapper to map source to destination files. | |||
* @return a mapper to be configured | |||
* @exception BuildException if more than one mapper is defined | |||
*/ | |||
public Mapper createMapper() throws BuildException { | |||
if (mapperElement != null) { | |||
@@ -311,10 +332,10 @@ public class Copy extends Task { | |||
/** | |||
* Sets the character encoding | |||
* | |||
* @param encoding the character encoding | |||
* @since 1.32, Ant 1.5 | |||
*/ | |||
public void setEncoding (String encoding) { | |||
public void setEncoding(String encoding) { | |||
this.inputEncoding = encoding; | |||
if (outputEncoding == null) { | |||
outputEncoding = encoding; | |||
@@ -332,7 +353,7 @@ public class Copy extends Task { | |||
/** | |||
* Sets the character encoding for output files. | |||
* | |||
* @param encoding the character encoding | |||
* @since Ant 1.6 | |||
*/ | |||
public void setOutputEncoding(String encoding) { | |||
@@ -351,6 +372,7 @@ public class Copy extends Task { | |||
/** | |||
* Performs the copy operation. | |||
* @exception BuildException if an error occurs | |||
*/ | |||
public void execute() throws BuildException { | |||
File savedFile = file; // may be altered in validateAttributes | |||
@@ -456,6 +478,7 @@ public class Copy extends Task { | |||
* Ensure we have a consistent and legal set of attributes, and set | |||
* any internal flags necessary based on different combinations | |||
* of attributes. | |||
* @exception BuildException if an error occurs | |||
*/ | |||
protected void validateAttributes() throws BuildException { | |||
if (file == null && filesets.size() == 0) { | |||
@@ -512,6 +535,11 @@ public class Copy extends Task { | |||
/** | |||
* Compares source files to destination files to see if they should be | |||
* copied. | |||
* | |||
* @param fromDir The source directory | |||
* @param toDir The destination dirctory | |||
* @param files A list of files to copy | |||
* @param dirs A list of directories to copy | |||
*/ | |||
protected void scan(File fromDir, File toDir, String[] files, | |||
String[] dirs) { | |||
@@ -531,6 +559,15 @@ public class Copy extends Task { | |||
} | |||
} | |||
/** | |||
* Add to a map of files/directories to copy | |||
* | |||
* @param fromDir the source directory | |||
* @param toDir the destination directory | |||
* @param names a list of filenames | |||
* @param mapper a <code>FileNameMapper</code> value | |||
* @param map a map of source file to array of destination files | |||
*/ | |||
protected void buildMap(File fromDir, File toDir, String[] names, | |||
FileNameMapper mapper, Hashtable map) { | |||
@@ -90,15 +90,25 @@ import org.apache.tools.ant.types.FilterSetCollection; | |||
*/ | |||
public class Move extends Copy { | |||
/** | |||
* Constructor of object. | |||
* This sets the forceOverwrite attribute of the Copy parent class | |||
* to true. | |||
* | |||
*/ | |||
public Move() { | |||
super(); | |||
forceOverwrite = true; | |||
setOverwrite(true); | |||
} | |||
//************************************************************************ | |||
// protected and private methods | |||
//************************************************************************ | |||
/** | |||
* Override copy's doFileOperations to move the | |||
* files instead of copying them. | |||
*/ | |||
protected void doFileOperations() { | |||
//Attempt complete directory renames, if any, first. | |||
if (completeDirMap.size() > 0) { | |||
@@ -190,7 +200,7 @@ public class Move extends Copy { | |||
if (createCount > 0) { | |||
log("Moved " + dirCopyMap.size() | |||
+ " empty director" | |||
+ (dirCopyMap.size()== 1 ? "y" : "ies") | |||
+ (dirCopyMap.size() == 1 ? "y" : "ies") | |||
+ " to " + createCount | |||
+ " empty director" | |||
+ (createCount == 1 ? "y" : "ies") + " under " | |||
@@ -274,6 +284,7 @@ public class Move extends Copy { | |||
/** | |||
* Its only ok to delete a directory tree if there are | |||
* no files in it. | |||
* @param d the directory to check | |||
* @return true if a deletion can go ahead | |||
*/ | |||
protected boolean okToDelete(File d) { | |||
@@ -299,6 +310,7 @@ public class Move extends Copy { | |||
/** | |||
* Go and delete the directory tree. | |||
* @param d the directory to delete | |||
*/ | |||
protected void deleteDir(File d) { | |||
String[] list = d.list(); | |||
@@ -332,7 +344,15 @@ public class Move extends Copy { | |||
* Method then checks if token filtering is used. If it is, this method | |||
* returns false assuming it is the responsibility to the copyFile method. | |||
* | |||
* @throws IOException | |||
* @param sourceFile the file to rename | |||
* @param destFile the destination file | |||
* @param filtering if true, filtering is in operation, file will | |||
* be copied/deleted instead of renamed | |||
* @param overwrite if true force overwrite even if destination file | |||
* is newer than source file | |||
* @return true if the file was renamed | |||
* @exception IOException if an error occurs | |||
* @exception BuildException if an error occurs | |||
*/ | |||
protected boolean renameFile(File sourceFile, File destFile, | |||
boolean filtering, boolean overwrite) | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -69,6 +69,10 @@ import org.apache.tools.ant.BuildException; | |||
*/ | |||
public class And extends ConditionBase implements Condition { | |||
/** | |||
* @return true if all the contained conditions evaluates to true | |||
* @exception BuildException if an error occurs | |||
*/ | |||
public boolean eval() throws BuildException { | |||
Enumeration enum = getConditions(); | |||
while (enum.hasMoreElements()) { | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001,2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -65,6 +65,8 @@ import org.apache.tools.ant.BuildException; | |||
public interface Condition { | |||
/** | |||
* Is this condition true? | |||
* @return true if the condition is true | |||
* @exception BuildException if an error occurs | |||
*/ | |||
boolean eval() throws BuildException; | |||
} | |||
@@ -76,6 +76,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Count the conditions. | |||
* | |||
* @return the number of conditions in the container | |||
* @since 1.1 | |||
*/ | |||
protected int countConditions() { | |||
@@ -85,6 +86,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Iterate through all conditions. | |||
* | |||
* @return an enumeration to use for iteration | |||
* @since 1.1 | |||
*/ | |||
protected final Enumeration getConditions() { | |||
@@ -93,7 +95,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <available> condition. | |||
* | |||
* @param a an available condition | |||
* @since 1.1 | |||
*/ | |||
public void addAvailable(Available a) { | |||
@@ -103,6 +105,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <checksum> condition. | |||
* | |||
* @param c a Checksum condition | |||
* @since 1.4, Ant 1.5 | |||
*/ | |||
public void addChecksum(Checksum c) { | |||
@@ -112,6 +115,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <uptodate> condition. | |||
* | |||
* @param u an UpToDate condition | |||
* @since 1.1 | |||
*/ | |||
public void addUptodate(UpToDate u) { | |||
@@ -121,6 +125,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <not> condition "container". | |||
* | |||
* @param n a Not condition | |||
* @since 1.1 | |||
*/ | |||
public void addNot(Not n) { | |||
@@ -130,6 +135,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <and> condition "container". | |||
* | |||
* @param a an And condition | |||
* @since 1.1 | |||
*/ | |||
public void addAnd(And a) { | |||
@@ -139,6 +145,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <or> condition "container". | |||
* | |||
* @param o an Or condition | |||
* @since 1.1 | |||
*/ | |||
public void addOr(Or o) { | |||
@@ -148,6 +155,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <equals> condition. | |||
* | |||
* @param e an Equals condition | |||
* @since 1.1 | |||
*/ | |||
public void addEquals(Equals e) { | |||
@@ -157,6 +165,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <os> condition. | |||
* | |||
* @param o an Os condition | |||
* @since 1.1 | |||
*/ | |||
public void addOs(Os o) { | |||
@@ -166,6 +175,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <isset> condition. | |||
* | |||
* @param i an IsSet condition | |||
* @since Ant 1.5 | |||
*/ | |||
public void addIsSet(IsSet i) { | |||
@@ -175,6 +185,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <http> condition. | |||
* | |||
* @param h an Http condition | |||
* @since Ant 1.5 | |||
*/ | |||
public void addHttp(Http h) { | |||
@@ -184,6 +195,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add a <socket> condition. | |||
* | |||
* @param s a Socket condition | |||
* @since Ant 1.5 | |||
*/ | |||
public void addSocket(Socket s) { | |||
@@ -193,6 +205,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add a <filesmatch> condition. | |||
* | |||
* @param test a FilesMatch condition | |||
* @since Ant 1.5 | |||
*/ | |||
public void addFilesMatch(FilesMatch test) { | |||
@@ -202,6 +215,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add a <contains> condition. | |||
* | |||
* @param test a Contains condition | |||
* @since Ant 1.5 | |||
*/ | |||
public void addContains(Contains test) { | |||
@@ -211,6 +225,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add a <istrue> condition. | |||
* | |||
* @param test an IsTrue condition | |||
* @since Ant 1.5 | |||
*/ | |||
public void addIsTrue(IsTrue test) { | |||
@@ -220,6 +235,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add a <isfalse> condition. | |||
* | |||
* @param test an IsFalse condition | |||
* @since Ant 1.5 | |||
*/ | |||
public void addIsFalse(IsFalse test) { | |||
@@ -229,6 +245,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an <isreference> condition. | |||
* | |||
* @param i an IsReference condition | |||
* @since Ant 1.6 | |||
*/ | |||
public void addIsReference(IsReference i) { | |||
@@ -237,6 +254,7 @@ public abstract class ConditionBase extends ProjectComponent { | |||
/** | |||
* Add an arbitary condition | |||
* @param c a condition | |||
* @since Ant 1.6 | |||
*/ | |||
public void add(Condition c) { | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2002-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -71,33 +71,35 @@ public class Contains implements Condition { | |||
/** | |||
* The string to search in. | |||
* | |||
* @since 1.1, Ant 1.5 | |||
* @param string the string to search in | |||
* @since Ant 1.5 | |||
*/ | |||
public void setString(String a1) { | |||
string = a1; | |||
public void setString(String string) { | |||
this.string = string; | |||
} | |||
/** | |||
* The string to search for. | |||
* | |||
* @since 1.1, Ant 1.5 | |||
* @param subString the string to search for | |||
* @since Ant 1.5 | |||
*/ | |||
public void setSubstring(String a2) { | |||
subString = a2; | |||
public void setSubstring(String subString) { | |||
this.subString = subString; | |||
} | |||
/** | |||
* Whether to search ignoring case or not. | |||
* | |||
* @since 1.1, Ant 1.5 | |||
* @param b if true, ignore case | |||
* @since Ant 1.5 | |||
*/ | |||
public void setCasesensitive(boolean b) { | |||
caseSensitive = b; | |||
} | |||
/** | |||
* @since 1.1, Ant 1.5 | |||
* @since Ant 1.5 | |||
* @return true if the substring is within the string | |||
* @exception BuildException if the attributes are not set correctly | |||
*/ | |||
public boolean eval() throws BuildException { | |||
if (string == null || subString == null) { | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -69,18 +69,28 @@ public class Equals implements Condition { | |||
private boolean trim = false; | |||
private boolean caseSensitive = true; | |||
/** | |||
* Set the first string | |||
* | |||
* @param a1 the first string | |||
*/ | |||
public void setArg1(String a1) { | |||
arg1 = a1; | |||
} | |||
/** | |||
* Set the second string | |||
* | |||
* @param a2 the second string | |||
*/ | |||
public void setArg2(String a2) { | |||
arg2 = a2; | |||
} | |||
/** | |||
* Should we want to trim the arguments before comparing them? | |||
* | |||
* @since Revision: 1.3, Ant 1.5 | |||
* @param b if true trim the arguments | |||
* @since Ant 1.5 | |||
*/ | |||
public void setTrim(boolean b) { | |||
trim = b; | |||
@@ -88,13 +98,18 @@ public class Equals implements Condition { | |||
/** | |||
* Should the comparison be case sensitive? | |||
* | |||
* @since Revision: 1.3, Ant 1.5 | |||
* @param b if true use a case sensitive comparision (this is the | |||
* default) | |||
* @since Ant 1.5 | |||
*/ | |||
public void setCasesensitive(boolean b) { | |||
caseSensitive = b; | |||
} | |||
/** | |||
* @return true if the two strings are equal | |||
* @exception BuildException if the attributes are not set correctly | |||
*/ | |||
public boolean eval() throws BuildException { | |||
if (arg1 == null || arg2 == null) { | |||
throw new BuildException("both arg1 and arg2 are required in " | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -72,16 +72,31 @@ import org.apache.tools.ant.ProjectComponent; | |||
public class Http extends ProjectComponent implements Condition { | |||
private String spec = null; | |||
/** | |||
* Set the url attribute | |||
* | |||
* @param url the url of the request | |||
*/ | |||
public void setUrl(String url) { | |||
spec = url; | |||
} | |||
private int errorsBeginAt = 400; | |||
/** | |||
* Set the errorsBeginAt attribute | |||
* | |||
* @param errorsBeginAt number at which errors begin at, default is | |||
* 400 | |||
*/ | |||
public void setErrorsBeginAt(int errorsBeginAt) { | |||
this.errorsBeginAt = errorsBeginAt; | |||
} | |||
/** | |||
* @return true if the HTTP request succeeds | |||
* @exception BuildException if an error occurs | |||
*/ | |||
public boolean eval() throws BuildException { | |||
if (spec == null) { | |||
throw new BuildException("No url specified in http condition"); | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2002-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -71,13 +71,14 @@ public class IsFalse extends ProjectComponent implements Condition { | |||
/** | |||
* set the value to be tested; let ant eval it to true/false | |||
* @param value the value to test | |||
*/ | |||
public void setValue(boolean value) { | |||
this.value = new Boolean(value); | |||
this.value = value ? Boolean.TRUE : Boolean.FALSE; | |||
} | |||
/** | |||
* return the inverted value; | |||
* @return the inverted value; | |||
* @throws BuildException if someone forgot to spec a value | |||
*/ | |||
public boolean eval() throws BuildException { | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2002-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -71,14 +71,29 @@ public class IsReference extends ProjectComponent implements Condition { | |||
private Reference ref; | |||
private String type; | |||
/** | |||
* Set the refid attribute. | |||
* | |||
* @param r a Reference value | |||
*/ | |||
public void setRefid(Reference r) { | |||
ref = r; | |||
} | |||
/** | |||
* Set the type attribute. This is optional attribute. | |||
* | |||
* @param type an ant component type name | |||
*/ | |||
public void setType(String type) { | |||
this.type = type; | |||
} | |||
/** | |||
* @return true if the reference exists and if type is set, if | |||
* the reference is the same type | |||
* @exception BuildException if an error occurs | |||
*/ | |||
public boolean eval() throws BuildException { | |||
if (ref == null) { | |||
throw new BuildException("No reference specified for isreference " | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -67,10 +67,19 @@ import org.apache.tools.ant.ProjectComponent; | |||
public class IsSet extends ProjectComponent implements Condition { | |||
private String property; | |||
/** | |||
* Set the property attribute | |||
* | |||
* @param p the property name | |||
*/ | |||
public void setProperty(String p) { | |||
property = p; | |||
} | |||
/** | |||
* @return true if the property exists | |||
* @exception BuildException if the property attribute is not set | |||
*/ | |||
public boolean eval() throws BuildException { | |||
if (property == null) { | |||
throw new BuildException("No property specified for isset " | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2002-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -71,13 +71,14 @@ public class IsTrue extends ProjectComponent implements Condition { | |||
/** | |||
* set the value to be tested; let ant eval it to true/false | |||
* @param value the value to test | |||
*/ | |||
public void setValue(boolean value) { | |||
this.value = new Boolean(value); | |||
this.value = value ? Boolean.TRUE : Boolean.FALSE; | |||
} | |||
/** | |||
* return the value; | |||
* @return the value | |||
* @throws BuildException if someone forgot to spec a value | |||
*/ | |||
public boolean eval() throws BuildException { | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -69,6 +69,10 @@ import org.apache.tools.ant.BuildException; | |||
*/ | |||
public class Or extends ConditionBase implements Condition { | |||
/** | |||
* @return true if any of the contained conditions evaluate to true | |||
* @exception BuildException if an error occurs | |||
*/ | |||
public boolean eval() throws BuildException { | |||
Enumeration enum = getConditions(); | |||
while (enum.hasMoreElements()) { | |||
@@ -66,22 +66,32 @@ import org.apache.tools.ant.BuildException; | |||
* @version $Revision$ | |||
*/ | |||
public class Os implements Condition { | |||
private static final String osName = | |||
private static final String OS_NAME = | |||
System.getProperty("os.name").toLowerCase(Locale.US); | |||
private static final String osArch = | |||
private static final String OS_ARCH = | |||
System.getProperty("os.arch").toLowerCase(Locale.US); | |||
private static final String osVersion = | |||
private static final String OS_VERSION = | |||
System.getProperty("os.version").toLowerCase(Locale.US); | |||
private static final String pathSep = System.getProperty("path.separator"); | |||
private static final String PATH_SEP = | |||
System.getProperty("path.separator"); | |||
private String family; | |||
private String name; | |||
private String version; | |||
private String arch; | |||
/** | |||
* Default constructor | |||
* | |||
*/ | |||
public Os() { | |||
} | |||
/** | |||
* Constructor that sets the family attribute | |||
* | |||
* @param family a String value | |||
*/ | |||
public Os(String family) { | |||
setFamily(family); | |||
} | |||
@@ -147,7 +157,8 @@ public class Os implements Condition { | |||
/** | |||
* Determines if the OS on which Ant is executing matches the | |||
* given OS family. | |||
* | |||
* @param family the family to check for | |||
* @return true if the OS matches | |||
* @since 1.5 | |||
*/ | |||
public static boolean isFamily(String family) { | |||
@@ -158,6 +169,8 @@ public class Os implements Condition { | |||
* Determines if the OS on which Ant is executing matches the | |||
* given OS name. | |||
* | |||
* @param name the OS name to check for | |||
* @return true if the OS matches | |||
* @since 1.7 | |||
*/ | |||
public static boolean isName(String name) { | |||
@@ -168,6 +181,8 @@ public class Os implements Condition { | |||
* Determines if the OS on which Ant is executing matches the | |||
* given OS architecture. | |||
* | |||
* @param arch the OS architecture to check for | |||
* @return true if the OS matches | |||
* @since 1.7 | |||
*/ | |||
public static boolean isArch(String arch) { | |||
@@ -178,6 +193,8 @@ public class Os implements Condition { | |||
* Determines if the OS on which Ant is executing matches the | |||
* given OS version. | |||
* | |||
* @param version the OS version to check for | |||
* @return true if the OS matches | |||
* @since 1.7 | |||
*/ | |||
public static boolean isVersion(String version) { | |||
@@ -192,7 +209,7 @@ public class Os implements Condition { | |||
* @param name The OS name | |||
* @param arch The OS architecture | |||
* @param version The OS version | |||
* | |||
* @return true if the OS matches | |||
* @since 1.7 | |||
*/ | |||
public static boolean isOs(String family, String name, String arch, | |||
@@ -209,34 +226,34 @@ public class Os implements Condition { | |||
if (family != null) { | |||
if (family.equals("windows")) { | |||
isFamily = osName.indexOf("windows") > -1; | |||
isFamily = OS_NAME.indexOf("windows") > -1; | |||
} else if (family.equals("os/2")) { | |||
isFamily = osName.indexOf("os/2") > -1; | |||
isFamily = OS_NAME.indexOf("os/2") > -1; | |||
} else if (family.equals("netware")) { | |||
isFamily = osName.indexOf("netware") > -1; | |||
isFamily = OS_NAME.indexOf("netware") > -1; | |||
} else if (family.equals("dos")) { | |||
isFamily = pathSep.equals(";") && !isFamily("netware"); | |||
isFamily = PATH_SEP.equals(";") && !isFamily("netware"); | |||
} else if (family.equals("mac")) { | |||
isFamily = osName.indexOf("mac") > -1; | |||
isFamily = OS_NAME.indexOf("mac") > -1; | |||
} else if (family.equals("tandem")) { | |||
isFamily = osName.indexOf("nonstop_kernel") > -1; | |||
isFamily = OS_NAME.indexOf("nonstop_kernel") > -1; | |||
} else if (family.equals("unix")) { | |||
isFamily = pathSep.equals(":") | |||
isFamily = PATH_SEP.equals(":") | |||
&& !isFamily("openvms") | |||
&& (!isFamily("mac") || osName.endsWith("x")); | |||
&& (!isFamily("mac") || OS_NAME.endsWith("x")); | |||
} else if (family.equals("win9x")) { | |||
isFamily = isFamily("windows") | |||
&& (osName.indexOf("95") >= 0 | |||
|| osName.indexOf("98") >= 0 | |||
|| osName.indexOf("me") >= 0 | |||
|| osName.indexOf("ce") >= 0); | |||
&& (OS_NAME.indexOf("95") >= 0 | |||
|| OS_NAME.indexOf("98") >= 0 | |||
|| OS_NAME.indexOf("me") >= 0 | |||
|| OS_NAME.indexOf("ce") >= 0); | |||
} else if (family.equals("z/os")) { | |||
isFamily = osName.indexOf("z/os") > -1 | |||
|| osName.indexOf("os/390") > -1; | |||
isFamily = OS_NAME.indexOf("z/os") > -1 | |||
|| OS_NAME.indexOf("os/390") > -1; | |||
} else if (family.equals("os/400")) { | |||
isFamily = osName.indexOf("os/400") > -1; | |||
isFamily = OS_NAME.indexOf("os/400") > -1; | |||
} else if (family.equals("openvms")) { | |||
isFamily = osName.indexOf("openvms") > -1; | |||
isFamily = OS_NAME.indexOf("openvms") > -1; | |||
} else { | |||
throw new BuildException( | |||
"Don\'t know how to detect os family \"" | |||
@@ -244,13 +261,13 @@ public class Os implements Condition { | |||
} | |||
} | |||
if (name != null) { | |||
isName = name.equals(osName); | |||
isName = name.equals(OS_NAME); | |||
} | |||
if (arch != null) { | |||
isArch = arch.equals(osArch); | |||
isArch = arch.equals(OS_ARCH); | |||
} | |||
if (version != null) { | |||
isVersion = version.equals(osVersion); | |||
isVersion = version.equals(OS_VERSION); | |||
} | |||
retValue = isFamily && isName && isArch && isVersion; | |||
} | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -60,7 +60,7 @@ import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.ProjectComponent; | |||
/** | |||
* Condition to wait for a TCP/IP socket to have a listener. Its attribute(s) are: | |||
* Condition to wait for a TCP/IP socket to have a listener. Its attributes are: | |||
* server - the name of the server. | |||
* port - the port number of the socket. | |||
* | |||
@@ -71,14 +71,28 @@ public class Socket extends ProjectComponent implements Condition { | |||
private String server = null; | |||
private int port = 0; | |||
/** | |||
* Set the server attribute | |||
* | |||
* @param server the server name | |||
*/ | |||
public void setServer(String server) { | |||
this.server = server; | |||
} | |||
/** | |||
* Set the port attribute | |||
* | |||
* @param port the port number of the socket | |||
*/ | |||
public void setPort(int port) { | |||
this.port = port; | |||
} | |||
/** | |||
* @return true if a socket can be created | |||
* @exception BuildException if the attributes are not set | |||
*/ | |||
public boolean eval() throws BuildException { | |||
if (server == null) { | |||
throw new BuildException("No server specified in socket " | |||