cosmetics. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272376 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -64,6 +64,8 @@ import org.apache.tools.ant.BuildException; | |||||
| * | * | ||||
| * @author <a href="mailto:nico@seessle.de">Nico Seessle</a> | * @author <a href="mailto:nico@seessle.de">Nico Seessle</a> | ||||
| * | * | ||||
| * @since Ant 1.2 | |||||
| * | |||||
| * @ant.task name="fail" category="control" | * @ant.task name="fail" category="control" | ||||
| */ | */ | ||||
| public class Exit extends Task { | public class Exit extends Task { | ||||
| @@ -54,11 +54,8 @@ | |||||
| package org.apache.tools.ant.taskdefs; | package org.apache.tools.ant.taskdefs; | ||||
| import java.io.File; | import java.io.File; | ||||
| import org.apache.tools.ant.Task; | import org.apache.tools.ant.Task; | ||||
| import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
| import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
| @@ -72,6 +69,8 @@ import org.apache.tools.ant.Project; | |||||
| * @author Gero Vermaas <a href="mailto:gero@xs4all.nl">gero@xs4all.nl</a> | * @author Gero Vermaas <a href="mailto:gero@xs4all.nl">gero@xs4all.nl</a> | ||||
| * @author <A href="gholam@xtra.co.nz">Michael McCallum</A> | * @author <A href="gholam@xtra.co.nz">Michael McCallum</A> | ||||
| * | * | ||||
| * @since Ant 1.1 | |||||
| * | |||||
| * @ant.task category="filesystem" | * @ant.task category="filesystem" | ||||
| */ | */ | ||||
| public class Filter extends Task { | public class Filter extends Task { | ||||
| @@ -93,11 +92,15 @@ public class Filter extends Task { | |||||
| } | } | ||||
| public void execute() throws BuildException { | public void execute() throws BuildException { | ||||
| boolean isFiltersFromFile = filtersFile != null && token == null && value == null; | |||||
| boolean isSingleFilter = filtersFile == null && token != null && value != null; | |||||
| boolean isFiltersFromFile = | |||||
| filtersFile != null && token == null && value == null; | |||||
| boolean isSingleFilter = | |||||
| filtersFile == null && token != null && value != null; | |||||
| if (!isFiltersFromFile && !isSingleFilter) { | if (!isFiltersFromFile && !isSingleFilter) { | ||||
| throw new BuildException("both token and value parameters, or only a filtersFile parameter is required", location); | |||||
| throw new BuildException("both token and value parameters, or " | |||||
| + "only a filtersFile parameter is " | |||||
| + "required", location); | |||||
| } | } | ||||
| if (isSingleFilter) { | if (isSingleFilter) { | ||||
| @@ -117,6 +117,7 @@ import java.util.NoSuchElementException; | |||||
| * @author Sam Ruby <a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a> | * @author Sam Ruby <a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a> | ||||
| * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a> | * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a> | ||||
| * @version $Revision$ $Name$ | * @version $Revision$ $Name$ | ||||
| * @since Ant 1.1 | |||||
| * | * | ||||
| * @ant.task category="filesystem" | * @ant.task category="filesystem" | ||||
| */ | */ | ||||
| @@ -309,7 +310,7 @@ public class FixCRLF extends MatchingTask { | |||||
| } | } | ||||
| /** | /** | ||||
| * Specify how DOS EOF (control-z) charaters are to be handled | |||||
| * Specify how DOS EOF (control-z) characters are to be handled | |||||
| * | * | ||||
| * @param option valid values: | * @param option valid values: | ||||
| * <ul> | * <ul> | ||||
| @@ -405,7 +406,8 @@ public class FixCRLF extends MatchingTask { | |||||
| try { | try { | ||||
| tmpFile = fileUtils.createTempFile("fixcrlf", "", destD); | tmpFile = fileUtils.createTempFile("fixcrlf", "", destD); | ||||
| Writer writer = (encoding == null) ? new FileWriter(tmpFile) | Writer writer = (encoding == null) ? new FileWriter(tmpFile) | ||||
| : new OutputStreamWriter(new FileOutputStream(tmpFile), encoding); | |||||
| : new OutputStreamWriter(new FileOutputStream(tmpFile), | |||||
| encoding); | |||||
| outWriter = new BufferedWriter(writer); | outWriter = new BufferedWriter(writer); | ||||
| } catch (IOException e) { | } catch (IOException e) { | ||||
| throw new BuildException(e); | throw new BuildException(e); | ||||
| @@ -469,11 +471,13 @@ public class FixCRLF extends MatchingTask { | |||||
| case IN_CHAR_CONST: | case IN_CHAR_CONST: | ||||
| case IN_STR_CONST: | case IN_STR_CONST: | ||||
| // Got here from LOOKING by finding an opening "\'" | |||||
| // next points to that quote character. | |||||
| // Find the end of the constant. Watch out for | |||||
| // backslashes. Literal tabs are left unchanged, and | |||||
| // the column is adjusted accordingly. | |||||
| // Got here from LOOKING by finding an | |||||
| // opening "\'" next points to that quote | |||||
| // character. | |||||
| // Find the end of the constant. Watch | |||||
| // out for backslashes. Literal tabs are | |||||
| // left unchanged, and the column is | |||||
| // adjusted accordingly. | |||||
| int begin = line.getNext(); | int begin = line.getNext(); | ||||
| char terminator = (lines.getState() == IN_STR_CONST | char terminator = (lines.getState() == IN_STR_CONST | ||||
| @@ -482,10 +486,10 @@ public class FixCRLF extends MatchingTask { | |||||
| endOfCharConst(line, terminator); | endOfCharConst(line, terminator); | ||||
| while (line.getNext() < line.getLookahead()) { | while (line.getNext() < line.getLookahead()) { | ||||
| if (line.getNextCharInc() == '\t') { | if (line.getNextCharInc() == '\t') { | ||||
| line.setColumn( | |||||
| line.getColumn() + | |||||
| line.setColumn(line.getColumn() + | |||||
| tablength - | tablength - | ||||
| line.getColumn() % tablength); | |||||
| (line.getColumn() | |||||
| % tablength)); | |||||
| } | } | ||||
| else { | else { | ||||
| line.incColumn(); | line.incColumn(); | ||||
| @@ -494,7 +498,8 @@ public class FixCRLF extends MatchingTask { | |||||
| // Now output the substring | // Now output the substring | ||||
| try { | try { | ||||
| outWriter.write(line.substring(begin, line.getNext())); | |||||
| outWriter.write(line.substring(begin, | |||||
| line.getNext())); | |||||
| } catch (IOException e) { | } catch (IOException e) { | ||||
| throw new BuildException(e); | throw new BuildException(e); | ||||
| } | } | ||||
| @@ -541,16 +546,17 @@ public class FixCRLF extends MatchingTask { | |||||
| } | } | ||||
| File destFile = new File(destD, file); | |||||
| try { | try { | ||||
| lines.close(); | lines.close(); | ||||
| lines = null; | lines = null; | ||||
| } | } | ||||
| catch (IOException e) { | catch (IOException e) { | ||||
| throw new BuildException("Unable to close source file " + srcFile); | |||||
| throw new BuildException("Unable to close source file " | |||||
| + srcFile); | |||||
| } | } | ||||
| File destFile = new File(destD, file); | |||||
| if (destFile.exists()) { | if (destFile.exists()) { | ||||
| // Compare the destination with the temp file | // Compare the destination with the temp file | ||||
| log("destFile exists", Project.MSG_DEBUG); | log("destFile exists", Project.MSG_DEBUG); | ||||
| @@ -65,6 +65,8 @@ import org.apache.tools.ant.types.Commandline; | |||||
| * | * | ||||
| * @author <a href="mailto:donaldp@apache.org">Peter Donald</a> | * @author <a href="mailto:donaldp@apache.org">Peter Donald</a> | ||||
| * | * | ||||
| * @since Ant 1.2 | |||||
| * | |||||
| * @ant.task name="genkey" category="java" | * @ant.task name="genkey" category="java" | ||||
| */ | */ | ||||
| public class GenerateKey extends Task { | public class GenerateKey extends Task { | ||||
| @@ -172,10 +174,12 @@ public class GenerateKey extends Task { | |||||
| public DistinguishedName createDname() throws BuildException { | public DistinguishedName createDname() throws BuildException { | ||||
| if( null != expandedDname ) { | if( null != expandedDname ) { | ||||
| throw new BuildException( "DName sub-element can only be specified once." ); | |||||
| throw new BuildException( "DName sub-element can only be " | |||||
| + "specified once." ); | |||||
| } | } | ||||
| if( null != dname ) { | if( null != dname ) { | ||||
| throw new BuildException( "It is not possible to specify dname both " + | |||||
| throw new BuildException( "It is not possible to specify dname " + | |||||
| " both " + | |||||
| "as attribute and element." ); | "as attribute and element." ); | ||||
| } | } | ||||
| expandedDname = new DistinguishedName(); | expandedDname = new DistinguishedName(); | ||||
| @@ -184,11 +188,12 @@ public class GenerateKey extends Task { | |||||
| public void setDname(final String dname) { | public void setDname(final String dname) { | ||||
| if( null != expandedDname ) { | if( null != expandedDname ) { | ||||
| throw new BuildException( "It is not possible to specify dname both " + | |||||
| throw new BuildException( "It is not possible to specify dname " + | |||||
| " both " + | |||||
| "as attribute and element." ); | "as attribute and element." ); | ||||
| } | } | ||||
| this.dname = dname; | this.dname = dname; | ||||
| } | |||||
| } | |||||
| public void setAlias(final String alias) { | public void setAlias(final String alias) { | ||||
| this.alias = alias; | this.alias = alias; | ||||
| @@ -240,9 +245,9 @@ public class GenerateKey extends Task { | |||||
| public void execute() throws BuildException { | public void execute() throws BuildException { | ||||
| if (Project.getJavaVersion().equals(Project.JAVA_1_1)) { | if (Project.getJavaVersion().equals(Project.JAVA_1_1)) { | ||||
| throw new BuildException( "The genkey task is only available on JDK" + | |||||
| " versions 1.2 or greater" ); | |||||
| } | |||||
| throw new BuildException( "The genkey task is only available on JDK" | |||||
| + " versions 1.2 or greater" ); | |||||
| } | |||||
| if (null == alias) { | if (null == alias) { | ||||
| throw new BuildException( "alias attribute must be set" ); | throw new BuildException( "alias attribute must be set" ); | ||||
| @@ -62,9 +62,10 @@ import java.net.URL; | |||||
| import java.net.URLConnection; | import java.net.URLConnection; | ||||
| import java.net.HttpURLConnection; | import java.net.HttpURLConnection; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import org.apache.tools.ant.Task; | |||||
| import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
| import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
| import org.apache.tools.ant.Task; | |||||
| import org.apache.tools.ant.util.FileUtils; | |||||
| /** | /** | ||||
| * Get a particular file from a URL source. | * Get a particular file from a URL source. | ||||
| @@ -75,6 +76,8 @@ import org.apache.tools.ant.Project; | |||||
| * @author costin@dnt.ro | * @author costin@dnt.ro | ||||
| * @author gg@grtmail.com (Added Java 1.1 style HTTP basic auth) | * @author gg@grtmail.com (Added Java 1.1 style HTTP basic auth) | ||||
| * | * | ||||
| * @since Ant 1.1 | |||||
| * | |||||
| * @ant.task category="network" | * @ant.task category="network" | ||||
| */ | */ | ||||
| public class Get extends Task { | public class Get extends Task { | ||||
| @@ -143,7 +146,8 @@ public class Get extends Task { | |||||
| // check to see if sun's Base64 encoder is available. | // check to see if sun's Base64 encoder is available. | ||||
| try { | try { | ||||
| sun.misc.BASE64Encoder encoder = | sun.misc.BASE64Encoder encoder = | ||||
| (sun.misc.BASE64Encoder) Class.forName("sun.misc.BASE64Encoder").newInstance(); | |||||
| (sun.misc.BASE64Encoder) | |||||
| Class.forName("sun.misc.BASE64Encoder").newInstance(); | |||||
| encoding = encoder.encode (up.getBytes()); | encoding = encoder.encode (up.getBytes()); | ||||
| } | } | ||||
| @@ -151,7 +155,8 @@ public class Get extends Task { | |||||
| Base64Converter encoder = new Base64Converter(); | Base64Converter encoder = new Base64Converter(); | ||||
| encoding = encoder.encode(up.getBytes()); | encoding = encoder.encode(up.getBytes()); | ||||
| } | } | ||||
| connection.setRequestProperty ("Authorization", "Basic " + encoding); | |||||
| connection.setRequestProperty ("Authorization", | |||||
| "Basic " + encoding); | |||||
| } | } | ||||
| //connect to the remote site (may take some time) | //connect to the remote site (may take some time) | ||||
| @@ -159,24 +164,29 @@ public class Get extends Task { | |||||
| //next test for a 304 result (HTTP only) | //next test for a 304 result (HTTP only) | ||||
| if(connection instanceof HttpURLConnection) { | if(connection instanceof HttpURLConnection) { | ||||
| HttpURLConnection httpConnection=(HttpURLConnection)connection; | HttpURLConnection httpConnection=(HttpURLConnection)connection; | ||||
| if(httpConnection.getResponseCode()==HttpURLConnection.HTTP_NOT_MODIFIED) { | |||||
| //not modified so no file download. just return instead | |||||
| //and trace out something so the user doesn't think that the | |||||
| //download happened when it didnt | |||||
| if(httpConnection.getResponseCode() | |||||
| == HttpURLConnection.HTTP_NOT_MODIFIED) { | |||||
| //not modified so no file download. just return | |||||
| //instead and trace out something so the user | |||||
| //doesn't think that the download happened when it | |||||
| //didnt | |||||
| log("Not modified - so not downloaded"); | log("Not modified - so not downloaded"); | ||||
| return; | return; | ||||
| } | } | ||||
| // test for 401 result (HTTP only) | // test for 401 result (HTTP only) | ||||
| if(httpConnection.getResponseCode()==HttpURLConnection.HTTP_UNAUTHORIZED) { | |||||
| if(httpConnection.getResponseCode() | |||||
| == HttpURLConnection.HTTP_UNAUTHORIZED) { | |||||
| log("Not authorized - check " + dest + " for details"); | log("Not authorized - check " + dest + " for details"); | ||||
| return; | return; | ||||
| } | } | ||||
| } | } | ||||
| //REVISIT: at this point even non HTTP connections may support the if-modified-since | |||||
| //behaviour -we just check the date of the content and skip the write if it is not | |||||
| //newer. Some protocols (FTP) dont include dates, of course. | |||||
| //REVISIT: at this point even non HTTP connections may | |||||
| //support the if-modified-since behaviour -we just check | |||||
| //the date of the content and skip the write if it is not | |||||
| //newer. Some protocols (FTP) dont include dates, of | |||||
| //course. | |||||
| FileOutputStream fos = new FileOutputStream(dest); | FileOutputStream fos = new FileOutputStream(dest); | ||||
| @@ -204,26 +214,30 @@ public class Get extends Task { | |||||
| while ((length = is.read(buffer)) >= 0) { | while ((length = is.read(buffer)) >= 0) { | ||||
| fos.write(buffer, 0, length); | fos.write(buffer, 0, length); | ||||
| if (verbose) { | if (verbose) { | ||||
| System.out.print("."); | |||||
| System.out.print("."); | |||||
| } | } | ||||
| } | } | ||||
| if(verbose) { | if(verbose) { | ||||
| System.out.println(); | |||||
| System.out.println(); | |||||
| } | } | ||||
| fos.close(); | fos.close(); | ||||
| is.close(); | is.close(); | ||||
| //if (and only if) the use file time option is set, then the | |||||
| //saved file now has its timestamp set to that of the downloaded file | |||||
| //if (and only if) the use file time option is set, then | |||||
| //the saved file now has its timestamp set to that of the | |||||
| //downloaded file | |||||
| if(useTimestamp) { | if(useTimestamp) { | ||||
| long remoteTimestamp=connection.getLastModified(); | long remoteTimestamp=connection.getLastModified(); | ||||
| if (verbose) { | if (verbose) { | ||||
| Date t=new Date(remoteTimestamp); | Date t=new Date(remoteTimestamp); | ||||
| log("last modified = "+t.toString() | log("last modified = "+t.toString() | ||||
| +((remoteTimestamp==0)?" - using current time instead":"")); | |||||
| +((remoteTimestamp==0) | |||||
| ? " - using current time instead" | |||||
| : "")); | |||||
| } | } | ||||
| if(remoteTimestamp!=0) { | if(remoteTimestamp!=0) { | ||||
| touchFile(dest,remoteTimestamp); | |||||
| FileUtils.newFileUtils() | |||||
| .setFileLastModified(dest, remoteTimestamp); | |||||
| } | } | ||||
| } | } | ||||
| } catch (IOException ioe) { | } catch (IOException ioe) { | ||||
| @@ -235,34 +249,6 @@ public class Get extends Task { | |||||
| } | } | ||||
| } | } | ||||
| /** | |||||
| * set the timestamp of a named file to a specified time. | |||||
| * | |||||
| * @param filename | |||||
| * @param time in milliseconds since the start of the era | |||||
| * @return true if it succeeded. False means that this is a | |||||
| * java1.1 system and that file times can not be set | |||||
| *@exception BuildException Thrown in unrecoverable error. Likely | |||||
| *this comes from file access failures. | |||||
| */ | |||||
| protected boolean touchFile(File file, long timemillis) | |||||
| throws BuildException { | |||||
| if (Project.getJavaVersion() != Project.JAVA_1_1) { | |||||
| Touch touch = (Touch) project.createTask("touch"); | |||||
| touch.setOwningTarget(target); | |||||
| touch.setTaskName(getTaskName()); | |||||
| touch.setLocation(getLocation()); | |||||
| touch.setFile(file); | |||||
| touch.setMillis(timemillis); | |||||
| touch.touch(); | |||||
| return true; | |||||
| } else { | |||||
| return false; | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * Set the URL. | * Set the URL. | ||||
| * | * | ||||
| @@ -302,16 +288,18 @@ public class Get extends Task { | |||||
| /** | /** | ||||
| * Use timestamps, if set to "<CODE>true</CODE>". | * Use timestamps, if set to "<CODE>true</CODE>". | ||||
| * | * | ||||
| * <p>In this situation, the if-modified-since header is set so that the file is | |||||
| * only fetched if it is newer than the local file (or there is no local file) | |||||
| * This flag is only valid on HTTP connections, it is ignored in other cases. | |||||
| * When the flag is set, the local copy of the downloaded file will also | |||||
| * have its timestamp set to the remote file time. | |||||
| * <br> | |||||
| * Note that remote files of date 1/1/1970 (GMT) are treated as 'no timestamp', and | |||||
| * web servers often serve files with a timestamp in the future by replacing their timestamp | |||||
| * with that of the current time. Also, inter-computer clock differences can cause no end of | |||||
| * grief. | |||||
| * <p>In this situation, the if-modified-since header is set so | |||||
| * that the file is only fetched if it is newer than the local | |||||
| * file (or there is no local file) This flag is only valid on | |||||
| * HTTP connections, it is ignored in other cases. When the flag | |||||
| * is set, the local copy of the downloaded file will also have | |||||
| * its timestamp set to the remote file time.</p> | |||||
| * | |||||
| * <p>Note that remote files of date 1/1/1970 (GMT) are treated as | |||||
| * 'no timestamp', and web servers often serve files with a | |||||
| * timestamp in the future by replacing their timestamp with that | |||||
| * of the current time. Also, inter-computer clock differences can | |||||
| * cause no end of grief.</p> | |||||
| * @param v "true" to enable file time fetching | * @param v "true" to enable file time fetching | ||||
| */ | */ | ||||
| public void setUseTimestamp(boolean v) { | public void setUseTimestamp(boolean v) { | ||||
| @@ -327,7 +315,7 @@ public class Get extends Task { | |||||
| * @param u username for authentication | * @param u username for authentication | ||||
| */ | */ | ||||
| public void setUsername(String u) { | public void setUsername(String u) { | ||||
| this.uname = u; | |||||
| this.uname = u; | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -336,7 +324,7 @@ public class Get extends Task { | |||||
| * @param p password for authentication | * @param p password for authentication | ||||
| */ | */ | ||||
| public void setPassword(String p) { | public void setPassword(String p) { | ||||
| this.pword = p; | |||||
| this.pword = p; | |||||
| } | } | ||||
| /********************************************************************* | /********************************************************************* | ||||
| @@ -346,7 +334,7 @@ public class Get extends Task { | |||||
| * | * | ||||
| * @author | * @author | ||||
| * Unknown | * Unknown | ||||
| * @author | |||||
| * @author | |||||
| * <a HREF="gg@grtmail.com">Gautam Guliani</a> | * <a HREF="gg@grtmail.com">Gautam Guliani</a> | ||||
| *********************************************************************/ | *********************************************************************/ | ||||
| @@ -59,7 +59,6 @@ import org.apache.tools.ant.FileScanner; | |||||
| import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
| import org.apache.tools.ant.types.ZipFileSet; | import org.apache.tools.ant.types.ZipFileSet; | ||||
| import org.apache.tools.ant.types.EnumeratedAttribute; | import org.apache.tools.ant.types.EnumeratedAttribute; | ||||
| import org.apache.tools.ant.util.StringUtils; | |||||
| import org.apache.tools.zip.ZipOutputStream; | import org.apache.tools.zip.ZipOutputStream; | ||||
| import java.io.IOException; | import java.io.IOException; | ||||