Martijn Kruithof wrote:

Hi,

Adding setting the property using -D to ANT_OPTS should do.

5 things:

1) I saw you removed public members (constants) from FileUtils (Non backward compatible change, keeping everything BC also frustrates me sometimes, but still I think it is best not to break parts we do not know of.)

Yes that was a mistake, I thought that they'd be available from the interface, but realised after I sent the email that only Copy is using the interface and all other tasks are still tied to the implementation. I need to put this back in the default impl to retain bwc as you mentioned.

2) If the FileUtilsFactory is called from or implemented in FileUtils.getFileUtils() / FileUtils.newFileUtils(), every task is going to benefit.

I think the implementation I provided does precisely this, or rather it calls from the interface (FileUtilsAdapter) instead of from the implementation. If you mean that the current FileUtils should delegate to another implementation using the factory that's different.

I think it would be cleaner to gradually transition all the tasks over to an interface (while retaining the FileUtils semi-singleton). At the point where all the tasks are using FileUtilsAdapter, we can refactor and remove the parts of FileUtils that are exposed correctly in the interface, maintaining bwc that way - the only thing left would be a small stub which contains the static methods - that's my view of how a transition would work anyway.

I think that using FileUtils to delegate/proxy to a real class would be less 'elegant' than using an interface - although I can see the immediate advantages of using the approach you mentioned (all tasks benefit without actually having to change each class over to the interface).

3) Again / Still the actual copying has been moved to the ResourceUtils, how do we make sure that files addressed as resources also benefit from this change.

I'm not sure what you mean by this - the code is proof of concept to show that it would be possible to add in nio based file handling in a way that minimizes problems of bwc. I didn't attempt to add nio for handling resources - indeed that would mean changing the ResourceUtils class, which I didn't want to do as it would have been a big waste of time if the overall strategy was wrong. Right now I just want to play with some basic ideas and see if people here on dev list thing that the strategy is good/hopelessly broken/not worth pursuing

The intention isn't to be a complete solution to all resource handling, just to be complete enough to provide a background for further discussion - I fully expect most of the code to be thrown away, but without something that executes it's hard to see the potential flaws.

Regarding the changes in the Copy task:

4) Stringbuffer is not more efficient than concatenation using + in a single statement.

[snip]
Sorry this was change that I didn't roll-back from earlier, it shouldn't be there

5) StringBuffer handling is incorrect for the second part, (you will concatenate all to filenames.)

again please dis-regard this part of the code as it isn't meant to be there

This shows what happens when you have several different ideas being worked on at the same time and you create a unified diff without looking! (my bad)

Thanks for the comments
Kev

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to