Author: jkf
Date: Sun Sep 2 05:53:16 2007
New Revision: 571970
URL:
http://svn.apache.org/viewvc?rev=571970&view=rev
Log:
Improvement of handling mappers in the touch task. datetime
and millis now take precedence over the timestamp on the
original file. Bugzilla report 43235.
Modified:
ant/core/trunk/WHATSNEW
ant/core/trunk/docs/manual/CoreTasks/touch.html
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Touch.
java
Modified: ant/core/trunk/WHATSNEW
URL: http://
svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=571970&
;r1=571969&r2=571970&view=diff
============================================================
==================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Sun Sep 2 05:53:16 2007
 -21,6
+21,10 
in Ant 1.7.0 has been removed.
Bugzilla report 40511.
+* In the <touch> task when a <mapper> is used,
the millis and datetime
+ attributes now override the time of the source resource
if provisioned.
+ Bugzilla report 43235.
+
Fixed bugs:
-----------
Modified: ant/core/trunk/docs/manual/CoreTasks/touch.html
URL: http://svn.apache.org/viewvc/ant/core/trunk
/docs/manual/CoreTasks/touch.html?rev=571970&r1=571969&a
mp;r2=571970&view=diff
============================================================
==================
--- ant/core/trunk/docs/manual/CoreTasks/touch.html
(original)
+++ ant/core/trunk/docs/manual/CoreTasks/touch.html Sun Sep
2 05:53:16 2007
 -56,7
+56,9 
</tr>
<tr>
<td valign="top">datetime</td>
- <td valign="top">Specifies the new
modification time of the file.</td>
+ <td valign="top">Specifies the new
modification time of the file. The
+ special value "now" indicates the
current time
+ (now supported since Ant 1.8).</td>
</tr>
<tr>
<td valign="top">pattern</td>
 -99,9
+101,12 
mapper</a> can be specified. Files specified via
nested
<code>fileset</code>s,
<code>filelist</code>s, or the
<code>file</code>
attribute are mapped using the specified mapper. For
each file mapped,
- the resulting files are touched. If the original file
exists its
- timestamp will be used. Otherwise the task settings
(<code>millis</code>,
- <code>datetime</code>) take
effect.</p>
+ the resulting files are touched. If no time has been
specified and
+ the original file exists its timestamp will be used.
+ If no time has been specified and the original file
does not exist the
+ current time is used. Since Ant 1.8 the task settings
(<code>millis</code>,
+ and <code>datetime</code>) have priority
over the timestamp of the original
+ file.</p>
<h3>Examples</h3>
<pre> <touch
file="myfile"/></pre>
<p>creates <code>myfile</code> if it
doesn't exist and changes the
 -126,6
+131,14 
</pre>
<p>creates <code>bar</code> if it doesn't
exist and changes the
modification time to that of
<code>foo</code>.</p>
+
+<pre> <touch file="foo"
datetime="now">
+ <mapper type="regexp"
from="^src(.*).java"
to="shadow1.empty" />
+ </touch>
+</pre>
+<p>creates files in the
<code>shadow</code> directory for every java
file in the
+ <code>src</code> directory if it doesn't
exist and changes the modification
+ time of those files to the current time.</p>
</body>
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Touch.
java
URL: http://svn.apache.org/view
vc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Tou
ch.java?rev=571970&r1=571969&r2=571970&view=diff
============================================================
==================
---
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Touch.
java (original)
+++
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Touch.
java Sun Sep 2 05:53:16 2007
 -231,44
+231,48 
}
if (dateTime != null &&
!dateTimeConfigured) {
long workmillis = millis;
- DateFormat df = dfFactory.getPrimaryFormat();
- ParseException pe = null;
- try {
- workmillis = df.parse(dateTime).getTime();
- } catch (ParseException peOne) {
- df = dfFactory.getFallbackFormat();
- if (df == null) {
- pe = peOne;
- } else {
- try {
- workmillis =
df.parse(dateTime).getTime();
- } catch (ParseException peTwo) {
- pe = peTwo;
+ if ("now".equalsIgnoreCase(dateTime))
{
+ workmillis = System.currentTimeMillis();
+ } else {
+ DateFormat df =
dfFactory.getPrimaryFormat();
+ ParseException pe = null;
+ try {
+ workmillis =
df.parse(dateTime).getTime();
+ } catch (ParseException peOne) {
+ df = dfFactory.getFallbackFormat();
+ if (df == null) {
+ pe = peOne;
+ } else {
+ try {
+ workmillis =
df.parse(dateTime).getTime();
+ } catch (ParseException peTwo) {
+ pe = peTwo;
+ }
}
}
- }
- if (pe != null) {
- throw new BuildException(pe.getMessage(),
pe, getLocation());
- }
- if (workmillis < 0) {
- throw new BuildException("Date of
" + dateTime
- + " results
in negative "
- +
"milliseconds value "
- + "relative
to epoch "
- + "(January
1, 1970, "
- + "00:00:00
GMT).");
+ if (pe != null) {
+ throw new
BuildException(pe.getMessage(), pe, getLocation());
+ }
+ if (workmillis < 0) {
+ throw new BuildException("Date of
" + dateTime
+ + " results in negative
" + "milliseconds value "
+ + "relative to epoch
" + "(January 1, 1970, "
+ + "00:00:00 GMT).");
+ }
}
log("Setting millis to " + workmillis
+ " from datetime attribute",
- ((millis < 0) ? Project.MSG_DEBUG :
Project.MSG_VERBOSE));
+ ((millis < 0) ? Project.MSG_DEBUG :
Project.MSG_VERBOSE));
setMillis(workmillis);
- //only set if successful to this point:
+ // only set if successful to this point:
dateTimeConfigured = true;
}
}
/**
* Execute the touch operation.
- * throws BuildException if an error occurs.
+ *
+ * throws BuildException
+ * if an error occurs.
*/
public void execute() throws BuildException {
checkConfiguration();
 -339,8
+343,10 
} else {
String[] mapped =
fileNameMapper.mapFileName(r.getName());
if (mapped != null && mapped.length
> 0) {
- long modTime = (r.isExists()) ?
r.getLastModified()
- : defaultTimestamp;
+ long modTime = defaultTimestamp;
+ if (millis < 0 &&
r.isExists()){
+ modTime = r.getLastModified();
+ }
for (int i = 0; i < mapped.length; i++)
{
touch(getProject().resolveFile(mapped[i]), modTime);
}
------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribe ant.apache.org
For additional commands, e-mail: dev-help ant.apache.org
|