ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hagen, Christian" <>
Subject RE: Selectively copying versions of files
Date Thu, 09 Nov 2006 14:22:09 GMT

couldn't you make use of immutable properties and specify several

  <available property="" value="" file="" />

starting with the most specific one and ending with the most generic

Just an idea.


> -----Original Message-----
> From: Chris Gibble [] 
> Sent: Tuesday, November 07, 2006 7:14 PM
> To:
> Subject: Re: Selectively copying versions of files
> I've read up on selectors, and you're right -- they do the 
> job, at least on a file-by-file basis.  But this doesn't 
> really do what I want.  Consider:
>   For personnel:
>       -- if there is a day-specific file (day1_personnel.xml), use it.
>       -- else if there is a default file (personnel.xml), use it
>   For locations:
>       -- if there is a coast-specific file 
> (EastCoast_locations.xml), use it.
>       -- else if there is a default file (locations.xml), use it
> ... and so on.  Note that selectors are specific for each 
> file.  So if I add a FOURTH data file (say, forklifts.xml), 
> I'd basically have to copy and paste existing selectors (if 
> they vary on the same parameter, like "days") or write new 
> selectors (if they vary on a new parameter, like "diesel vs. 
> electric") to account for the possible configurations.
> Ideally the selectors would NOT be file-specific, but then 
> the number of possible configurations seem to grow tremendously:
>   For ANY input file:
>       -- if there is a file that is configuration-specific, 
> (NewYearsDay2006_vehicles.xml), use it.
>       -- else if there is a file that is day-specific, 
> location-specific, and vehicle-specific 
> (day1_EastCoast_25_vehicles.xml), use it.
>       -- else if there is a file that is day-specific and 
> vehicle-specific (day1_25vehicle_locations.xml), use it.
>       -- else if there is a file that is location-specific 
> and vehicle-specific (EastCoast_25vehicle_personnel.xml), use it.
>       -- else if...... [repeat for all combinations of day, 
> location, and vehicle number]
> Now, if my new forklift.xml varies based on a new parameter 
> "diesel vs. electric", then the number of combinations (and 
> selectors) just doubled.  Not sure how this does 
> performance-wise, but I'm sure it doesn't help....
> Again, this may be unavoidable.  And my approach of encoding 
> each file with metadata (e.g. "day1_" or "EastCoast_") might 
> not be the best -- subfolders under the top "source" folder 
> might be better, though that has issues of its own. 
> What I REALLY want to do is something like
>     For any input file:
>         -- for the requested configuration (eg. day1, East 
> Coast), use the version of the file whose metadata indicates 
> it is the best match (e.g. day1_personnel.xml, 
> EastCoast_locations.xml, vehicles.xml). 
> Does this help to clarify my question?  I should mention that 
> my real application (not the one I made up for this e-mail) 
> actually has something like 9 input files that vary on 4 
> different parameters, not including specific configuration requests. 
> Chris
>  --- On Tue 11/07, Matt Benson < > wrote:
> From: Matt Benson [mailto:]
> To:,
> Date: Tue, 7 Nov 2006 09:05:03 -0800 (PST)
> Subject: Re: Selectively copying versions of files
> You can copy decreasing levels from most-specific 
> toleast-specific to your target directory, using a<present> 
> selector.  Check the manual for "Selectors".HTH,Matt
> --- Chris Gibble <> wrote:>
> My apologies if this has been asked before, but I couldn't 
> find anything related -- and it seems like a fairly common scenario.
> Let's say I have a warehouse program that initializes itself 
> by reading three configuration files:
> 	vehicles.xml
> 	personnel.xml
> 	locations.xml
> This program runs a simulation and generates output showing 
> the efficiency of the warehouse with the given inputs.
> Now let's say I want to package this program with a variety 
> of pre-generated configurations:
> 	The number of available vehicles (in vehicles.xml) is 
> constant for each configuration -- say, 30
> 	The number of personnel (in personnel.xml) varies by 
> day, with Sunday = day0 and Saturday = day6
> 	The delivery locations (specified by locations.xml) 
> vary between two specified configurations: "East Coast" and 
> "West Coast"
> For example, here are the pre-generated configurations:
> 	day0 personnel, East Coast locations
> 	day1 personnel, East Coast locations
> 	...
> 	day6 personnel, East Coast locations
> 	day0 personnel, West Coast locations
> 	...
> 	day6 personnel, West Coast locations
> To clarify, each "configuration" folder contains a version of 
> the files vehicles.xml, personnel.xml and locations.xml 
> populated with the desired values.  Note that the number of 
> vehicles was not specified by the above configurations, since 
> the default value of 30 is always used.
> Rather than maintain multiple copies of the same file in each 
> configuration folder (e.g. 14 copies of the same 
> vehicles.xml), I was trying to use an Ant build script to 
> copy the appropriate files from one "source" location to the 
> appropriate "destination" configuration folder.  So, there is 
> one "day0-personnel.xml" file, one "EastCoast-locations.xml", 
> and one "vehicles.xml" file (the default, containing 30 
> vehicles) that would be copied (and renamed when needed) into 
> the "Day 0 personnel, East Coast locations, 30 vehicles" 
> configuration folder.
> But here's an added wrinkle: in addition to the 
> configurations mentioned above, there is one more "special" 
> configuration we want to include that uses a different number 
> of vehicles:
> 	day0 personnel, East Coast locations, 25 vehicles
> In this case, the build script would need to copy (and 
> rename) "day0-personnel.xml", "EastCoast-locations.xml", and 
> "25-vehicles.xml".
> Furthermore, there may be future requests for other specific 
> configurations, whether it's different vehicles, personnel 
> (e.g. "New Year's Day personnel"), locations ("International 
> locations"), etc.
> So in short: given a desired configuration, I want an Ant 
> script that copies the MOST SPECIFIC file that exists (e.g. 
> 25-vehicles.xml).  If there is no specific file, then a more 
> generic version should be used (e.g. vehicles.xml).
> Of course, I COULD hard-code configurations to copy specific 
> input files, but I'm trying hard to avoid that....
> Any ideas would be greatly appreciated.
> _______________________________________________
> Join Excite! -
> The most personalized portal on the Web!
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message