Java Mailing List Archive

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

Home » Ant Users List »

Re: Programmatically create a fileset and reference

Wascally Wabbit

2008-05-03

Replies:

Author LoginPost Reply
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>

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)

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