Interesting...
Well if you wouldn't mind...keep me up-to-date on what you discover...
Thanks!
Flossy
Jeremy Weber wrote:
Yeah, I have tweaked it a bit to support some stuff it didnt out of
the box, it seems to work okay. Everything stays in the jar file but
its executable.
I think they real problem is filelist, and that it delimits by
spaces. Probably a bug there. I am going to see if I can patch the
filelist class to accept a delimiter.
Scot P. Floess wrote:
I just (really quickly) looked at the link. That's pretty darn
cool. I hadn't heard of that project :)
So, are you unpacking the jar file first?
I thought Ant dealt with the Windows file system (and spaces)
correctly? I don't run Windows at all so this is all an assumption
on my part ;)
Jeremy Weber wrote:
I guess I could try convert the value of the property, but I'd
rather not.
Yes, all build artifacts are actually in a jar file. Its basically,
a customized version of http://antinstaller.sourceforge.net/.
I am still thinking that creating my own custom task would be
helpful, just cant figure out how to added a fileset to the project
class.
Scot P. Floess wrote:
I see...
Have you considered using escape characters where the spaces are in
the property?
So, curious, you are using build.xml's in a jar file?
Or, do you extract from the jar file and then use those files?
Jeremy Weber wrote:
Sure does, filelist accepts a set of files delimited by a
space... So when a path has a space it doesnt behave. Have used
ant-contrib plenty of times in the past, buts that not an option.
The kicker is this isnt a normal ant environment, but actually all
the build files, etc are in a jar when they are executed.
Although I havent tried ant-contrib, this environment causes
problems with similiar tasks ant-call, ant, etc.
Scot P. Floess wrote:
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="[EMAIL PROTECTED]" 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 [EMAIL PROTECTED]
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Scot P. Floess
27 Lake Royale
Louisburg, NC 27549
252-478-8087 (Home)
919-754-4592 (Work)
Chief Architect JPlate http://sourceforge.net/projects/jplate
Chief Architect JavaPIM http://sourceforge.net/projects/javapim
Architect Keros http://sourceforge.net/projects/keros
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]