Java Mailing List Archive

http://www.ant-tasks.com/

Home » Ant Users List »

Re: Programmatically create a fileset and reference

Matt Benson

2008-05-03

Replies:

Author LoginPost Reply

--- Wascally Wabbit <wascallywabbit@(protected)>
wrote:

> If you're not averse to creating a little helper
> class, why not
> just write a custom file selector that can read your
> delimited
> file. Then you can just leverage the built in
> resource collection
> mechanisms like:
>
> <files id="myfiles">
>   <custom
> classname="your.new.custom.csvfile.reader.Selector">
>    <param name="file"
> value="/your/files/location"/>
>   </custom>
> </files>

Actually, I've been watching this thread but did -not-
suggest <files> because of the embedded spaces. I
-certainly- would warn against using <files> without
include patterns as this would, I believe, scan the
entire filesystem! But, the Wabbit's post made me
think--the includesfile attribute would work around
the embedded space issue. So you could use Ant's
filtering mechanisms to transform your comma-delimited
string into a line-delimited includesfile, then use
that with <files>. This -should- work. Thanks
Wabbit!

-Matt


>
> As of 1.7 this <files> item can be used just about
> wherever the
> older <fileset> type was allowed...
>
> WARNING: I have not worked with the new resource
> collections in
> 1.7 extensively; so not sure *exactly* how this
> might work.
>
> -The Wabbit
>
> Jeremy Weber wrote:
> > Hi All,
> >
> > I have created dozen of custom tasks before, but
> find myself struggling
> > with this one. I wish to create a task that does
> the following:
> >
> > 1. Accepts a file attribute to represent the
> absolute path of a file
> > contains comma separated absolute paths.
> >   a. this file name will be read in, parsed and
> each file found will
> > be added to a fileset object, which in term is
> added to a resources object.
> > 2. Accepts a id property
> >   a. this id will be the id of the resource
> created in step 1a.
> >
> > So essentially I want...
> >
> >   <csvtofileset file="csv.file.name"
> id="some.id.name">
> >
> > I am unclear on how to add the fileset i create in
> my code to the
> > project. Additionally I am unsure of how to
> assign this an 'id' that I
> > can reference elsewhere. Basically what I want to
> be able to do is
> > create a collection of files on the fly which I
> can reference on the
> > fly.  Essentially in the following snippet, the
> resources element would
> > be replaced by my new task element
> >
> > <project name="test" basedir="." default="test">
> >
> >  <!-- old -->
> >   <resources id="fsd">
> >      <fileset
> file="c:\temp\db2_test\db2jcc.jar" />      
> > <fileset
> file="c:\temp\db2_test\db2jcc_license_cu.jar" />  
>  
> > </resources>
> >   <!-- old -->
> >
> >   <!-- new -->
> >       <csvtofileset file="csv.file.name"
> id="fsd">
> >   <!-- new -->
> >
> >  <target name="test">
> >       <copy toDir="c:\temp\ failonerror="true">
> >         <resources refid="fsd"/>
> >       </copy>
> >  </target>
> > </project>
> >
> >
> > Any help at all would be appreciated.
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> user-unsubscribe@(protected)
> > For additional commands, e-mail:
> user-help@(protected)
> >
> >
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> user-unsubscribe@(protected)
> For additional commands, e-mail:
> user-help@(protected)
>
>



   ____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)

©2008 ant-tasks.com - Jax Systems, LLC, U.S.A.