You are right, this feature will require to change a lot of tasks. But the
change will be to remove most of fileset specific code. Even more there
should be no difference between <fileset> and <filelist> usage.
I agree, it might be not easy. Some tasks like <javac> (third-party-tool) or
<delete> (source file access) require real filesets ("constructed" filesets
might also work with virtual file system, but it maybe too difficult to
implement). But even in this case a single base directory should not be
required. Some other tasks (<zip>, <copy>, <sync>) can work with
"constructed" filesets. Even more, it would be possible to write archive
file fileset, so <copy> could extract files from archives. So maybe
"constructed fileset" is different fileset type that some tasks can work
with.
- Alexey.
--
{ http://trelony.cjb.net/ } Alexey N. Solofnenko
Pleasant Hill, CA (GMT-8 usually)
-----Original Message-----
From: Stefan Bodewig [mailto:[EMAIL PROTECTED]
Sent: Wednesday, July 30, 2003 12:09 AM
To: [EMAIL PROTECTED]
Subject: Re: Any chance for fileset arithmetic?
On Tue, 29 Jul 2003, Alexey Solofnenko <[EMAIL PROTECTED]> wrote:
> but a <fileset> or a <filelist> is essentially a collection of data
> files with names
Not in the case of <fileset>.
> (isn't logically <filelist> an ordered <fileset>?).
No.
A <fileset> is a set of names of existing files rooted in the same
base directory. There are lots of tasks that do
String[] files = ds.getIncludedFiles();
File base = fs.getDir(getProject());
for (i = 0; i < files.length; i++) {
File f = new File(base, files[i]);
that would fail horribly if f didn't exist.
> There is no reason for the names to be exactly as they are in the
> file system.
See above.
> Some special tasks like <delete> need to access original files.
All tasks need to. Some task could want to morph the name into
something else after they have accessed the original file.
> Some other tasks like <copy> or <zip> need only data from the files.
> They do not really care about original file names.
Uhm, OK, if you want to put it that way, maybe.
But be careful, <move> will try to File#renameTo the original file, so
it will need the file names as well. <zip> will need the original
file names of files in <zipgroupfileset>s in order to create
<zipfileset> from them.
There are not too many tasks that could be made to work without access
to the original file names, at least that's my rough guess.
> Right now tasks have to be aware about any extra fileset
> functionality they support (<zipfileset>, <tarfileset>,...). So the
> proposal is to make it generic.
How?
I don't see how this could be done without changing all tasks.
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]