I would use property files:

<property value="which" value="dev" /> 
  <!-- values: dev,stage,prod -->
<property file="${which}.properties" />


If your third instruction is
        <property file="default.properties" />
you can set default values which only have to be overwritten.

Although you can load user specific propertyfiles.
All together:


<property value="${user.home}/myprogram.properties" />
<property value="which" value="dev" /> 
<property file="${which}.properties" />
<property file="default.properties" />



Jan Matčrne


-----Ursprüngliche Nachricht-----
Von: Chris Reeves [mailto:[EMAIL PROTECTED]]
Gesendet am: Dienstag, 11. Februar 2003 22:44
An: [EMAIL PROTECTED]
Betreff: Parsing task

I've been searching for a task that would do a little parsing for
me...it seems I've seen this sort of thing before, but that may have
been a dream...

I have two ant xml files for my project - one builds the project
(build.xml), one runs the executable (run.xml) produced by the build;
this second file is simply bundled with the distribution.

It works great - except that the properties in the run.xml must be
changed on a per-environment basis (dev, stage, prod). And I only need
to change a couple of lines.

So, I'd like to have something like:

<!-- ========== mail properties ========== -->

<dev>
<property name="to.address"
value="[EMAIL PROTECTED]"/>           
<property name="from.address"
value="[EMAIL PROTECTED]"/>
<property name="smtp.server"
value="myserver.nowhere.com"/>
</dev>

<stage>
<property name="to.address"
value="[EMAIL PROTECTED]"/>           
<property name="from.address"
value="[EMAIL PROTECTED]"/>
<property name="smtp.server"
value="myserver.nowhere.com"/>
</stage>

<prod>
<property name="to.address"
value="[EMAIL PROTECTED], [EMAIL PROTECTED]"/>          
<property name="from.address"
value="[EMAIL PROTECTED]"/>
<property name="smtp.server"
value="myserver.prod.nowhere.com"/>
</prod>

The end product should contain only the xml relevant for the environment
it was built for.

Also, I know I could run ant with a specific target that sets these
properties, but that means that all properties for all env's would be on
each system.

I suppose I could use xslt to alter the file, but it seems there should
be something easier. I scoured the Hatchet/Loughran book, but didn't
find what I was looking for. Any ideas?

Chris

----------------------------------------
Chris Reeves
Senior Software Developer
Medfusion, Inc.
[EMAIL PROTECTED]
----------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to