OK I think I see the problem. It breaks down due to the space?
Have you looked at Ant Contrib?
They have a <for> task that may help you. It uses delimiters - in this
case you can define the delimiter as a comma. You might also want to
define in a macrodef (sorry I am a huge huge fan of macrodefs)...
<macrodef name="copy-files" description = "Will copy files contained in
@{property} to dir @{to-dir} storing all the files in ref id @{id}">
<attribute name="property" description="Property that contains all
files to copy"/>
<attribute name="id" description="Path id reference once files copied"/>
<attribute name="to-dir" description="Directory to copy files"/>
<attribute name="delim" default="," description = "Delimiter used in
@{property}"/>
<sequence>
<mkdir dir="@{to-dir}"/>
<for list="${@{property}}" param="toCopy" delimiter="@{delim}">
<sequential>
<copy file = "@{toCopy}" toDir="@{to-dir}"/>
</sequential>
</for>
<path id="@{id}">
<fileset dir="@{to-dir}"/>
</path>
</sequence>
</macrodef>
Keep in mind, I just whipped this out ;)
To use:
<property name="jdbc.jar" value="C:\Documents and
Settings\jweber\Desktop\db2_test\db2jcc.jar,C:\Documents and
Settings\jweber\Desktop\db2_test\db2jcc_license_cu.jar"/>
<copy-files property="jdbc.jar" id = "copied.files" to-dir =
"new-directory"/>
Note that property attribute simply lists the property name...not using
the dollar notation as that is taken care of in the <for> task via
${@{property}}
HTH,
Flossy
Jeremy Weber wrote:
> Not sure that accomplishes what I need to do. The problem I wish to
> solve is this:
>
> I have a property that equates to this:
>
> <property name="jdbc.jar" value="C:\Documents and
> Settings\jweber\Desktop\db2_test\db2jcc.jar,C:\Documents and
> Settings\jweber\Desktop\db2_test\db2jcc_license_cu.jar"/>
>
> The value of this property is variable.
>
> I then have a couple of tasks that perform the following:
>
> <!-- use filelist to copy the files to a temp dir so we can build
> a fileset -->
> <copy toDir=".tmp_cp" overwrite="true" failonerror="false">
> <filelist files="${jdbc.jar}" />
> <flattenmapper/>
> </copy>
>
> <!-- create a referencable path object to be used in sql task -->
> <path id="sql.cp">
> <fileset dir=".tmp_cp"/>
> </path>*
> *
> This all works great (although not so straight forward), until there
> is a space in one of the paths in jdbc.jar property. If you have
> another approach I'd be willing to try but I dont think your suggest
> will work for this.
> *
>
>
> *
>
> Scot P. Floess wrote:
>> Have you considered using a macrodef and elements?
>>
>> Maybe something like:
>>
>> <macrodef name="my-macro">
>> <attribute name="id"/>
>> <element name="includes"/>
>> <sequential>
>> <path id="@{id}">
>> <includes/>
>> </path>
>> </sequential>
>> </macrodef>
>>
>> Then you can supply whatever you want in <includes> as long as it
>> adheres to <path> allowances....
>>
>> 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@...
>>> For additional commands, e-mail:
user-help@...
>>>
>>>
>>
>
--
Scot P. Floess
27 Lake Royale
Louisburg, NC 27549
252-478-8087 (Home)
919-754-4592 (Work)
Chief Architect JPlate
http://sourceforge.net/projects/jplateChief Architect JavaPIM
http://sourceforge.net/projects/javapimArchitect Keros
http://sourceforge.net/projects/keros---------------------------------------------------------------------
To unsubscribe, e-mail:
user-unsubscribe@...
For additional commands, e-mail:
user-help@...