On 2010-05-07, Bruce Atherton <br...@callenish.com> wrote:

> On 07/05/2010 7:52 AM, Stefan Bodewig wrote:

> I'm a big fan of a little consistency.

you won't like what I'm going to say 8-)

>> I see several options:

>> (2) Add a new attribute that controls whether read-only files should be
>>      overwritten (let's rely on File.canWrite).

>>      What should be its default value?  What would be its name?

> This is the only sensible option IMO. I like your idea of "force".

That's what I implemented - and I did so at the
ResourceUtils#copyResource level so anything that uses that method to
copy to a potentially read-only destination file is going to be
affected.

Then I scanned the sources to see which other tasks use this method (or
FileUtils' copyFile) to see whether I feel they should be adapted.

The following non-deprecated tasks use copyFile or copyResource as well:
<move>, the WebLogic deployment tool, <netrexxc>, <rmic>. <concat> and
<echo>.

For most of them I'd be willing to accept the backwards incompatibility
and just have the tasks throw exceptions if they cannot write to the
destination files.  The main exception to me would be <move> and
<concat>.

<move> will try to perform a rename which falls back to delete if
File#rename fails - so in general it will replace read-only files.  To
be consitent it should either check whether the destination is read-only
before trying to rename as well, or it should always overwrite existing
files in copy mode.  I tend to perform the check before renaming and am
not sure what the default should be.

<concat> already defines an attribute named force - and it does just
what the attibute named overwrite does for <copy>.  Does anybody have a
good idea for an attribute name that says "overwrite read-only
destination files" and can be used in both <copy> and <concat>?

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to