ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Antoine Levy-Lambert" <levylamb...@tiscali-dsl.de>
Subject Re: zip update problem - API ideas
Date Fri, 10 Jan 2003 12:49:41 GMT
+8 for everything that Stefan wrote
DirectoryScanner and ZipScanner need a list method

new method suggested by myself in DirectoryScanner and ZipScanner
>> > Resource [ ]  list(String path)
>>
>>
> this function would be used in the scandir method of Directory.java,
> instead of java.io.File.list instead of String []
> newfiles=dir.list();

Would we need to expose this method outside DirectoryScanner?
Right, this method can be private in both DirectoryScanner and ZipScanner,
it should only be called from
DirectoryScanner#scandir

True Stefan, if we are creating new methods returning Resource[] then we do
not need the long getModificationTime(String path)
in DirectoryScanner

----- Original Message -----
From: "Stefan Bodewig" <bodewig@apache.org>
To: <ant-dev@jakarta.apache.org>
Sent: Friday, January 10, 2003 1:04 PM
Subject: zip update problem - API ideas


> This is a rough sketch of my current ideas, as I won't have the time
> to work on this this week and I know Antoine wants to get his feet
> wet.
>
> Stefan
>
> I'm trying to combine Antoine's and my ideas a little here:
>
> * introduce Resource with name, exists and lastmodified as attributes.
>
>   more can be added later, if needed.
>
>   should probably go into the types package.
>
> * introduce ResourceFactory interface with one method:
>
>   Resource getResource(String name)
>
>   types package (or util?).
>
> * make ZipScanner return the names of the ZipEntries instead of the
>   name of the archive in getIncludedFiles and so on.
>
> * introduce SourceSelector with a method
>
>   Resource[] selectOutOfDateSources(Resource[] source,
>                                     FileNameMapper mapper,
>                                     ResourceFactory targets)
>
>   that would basically do what SourceFileScanner#restrict does today,
>   but worked on the lastmodfied properties of the Resources.
>
>   util package.
>
> * in Zip
>
>   - use Resources wrapped around Files for "normal" <fileset>s
>     and wrapped around ZipEntrys for <zipfilesets> that use the src
>     attribute.
>
>   - use a ResourceFactory that wraps resources around ZipEntrys of the
>     existing archive.
>
>   - short-circuit, if the archive doesn't exis, off course.
>
>   we'll probably want to cache the Resources of the existing archive
>   so that we don't re-read the archive for each fileset.
>
> * make SourceFileScanner delegate to SourceSelector using a built-in
>   ResourceFactory that wraps Resources around "new File(srcDir, files[i])"
>   and "new File(destDir, name)" respectively.
>
>   this is here for backwards compatibilty.
>
>
> Optional, not really necessary to fix the bug.
>
> * make DirectoryScanner implement ResourceFactory
>
>   will return a Resource that wraps "new File(dir, name)"
>
> * make ZipScanner override the method so that it will return a wrapper
>   around the correct ZipEntry.
>
> * something similar needs to be done to FTPDirectoryScanner in
>   oata.taskdefs.optional.net.FTP.
>
> * add getIncludedResources() and so on to DirectoryScanner that return
>   Resource instances instead of names.
>
>   use these methods in all tasks and use SourceSelector instead of
>   SourceFileScanner.
>



--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message