You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Matt Benson <gu...@yahoo.com> on 2008/08/04 16:40:08 UTC
Loading interdependent properties files WAS RE: Trying (and failing) to build the nightly snapshot
--- EJ Ciramella <ej...@upromise.com> wrote:
> Right - in an ideal world, sure.
>
> We're using ant for deployments and the first file
> is the MOST specific
> file, the secondary one is the more generic file.
>
> So, in a nutshell, we can't alter the order of the
> property files.
>
> What is interesting though is if all the properties
> are in the SAME
> file, there's no problem (as all the expansion can
> happen at once). Can
> I do something with concat? <propertyfileset> or
> something?
>
> If concat could do something like, "first found
> takes precedence but in
> general add all the properties" that would be
> perfect...
>
In Ant 1.7.x, if you can "bundle" all your files, you
should be able to <loadproperties><concat><!--insert
bundle here--></concat></loadproperties> them.
HTH,
Matt
> -----Original Message-----
> From: Steve Loughran [mailto:stevel@apache.org]
> Sent: Monday, August 04, 2008 9:48 AM
> To: Ant Developers List
> Subject: Re: Trying (and failing) to build the
> nightly snapshot
>
> EJ Ciramella wrote:
> > I think I misunderstood this particular bug. It
> appears to be a
> problem
> > with $${someprop} versus loading two property
> files and the first one
> > containing a ${property} that is set in the second
> one loaded.
> >
> > To be explicit, if you have two property files,
> a.properties and
> > b.properties, in the first one loaded you have a
> ${property} that is
> set
> > in b.properties, ant leaves it as ${}.
> >
> > a.properties:
> >
> > foo=bar
> >
> > coolprop=${foo}:${from.b.properties}
> >
> >
> >
> >
> >
> > b.properties:
> >
> > from.b.properties=awesome
> >
> >
> >
> >
> > build.xml:
> >
> > <project default="go">
> > <target name="go" >
> > <property file="a.properties" />
> > <property file="b.properties" />
> > <echo>This is a problem:
> ${coolprop}</echo>
> > </target>
> > </project>
> >
> > You'll see this:
> >
> > This is a problem: bar:${from.b.properties}
>
> That's because property expansion takes place when
> the properties files
> are loaded. If you want properties from
> b.properties, load it before
> a.properties
>
>
>
>
> --
> Steve Loughran
> http://www.1060.org/blogxter/publish/5
> Author: Ant in Action http://antbook.org/
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: Loading interdependent properties files WAS RE: Trying (and failing) to build the nightly snapshot
Posted by EJ Ciramella <ej...@upromise.com>.
Ignore the "pom.xml" in there - that should have been
something.properties.
-----Original Message-----
From: EJ Ciramella [mailto:ejciramella@upromise.com]
Sent: Monday, August 04, 2008 4:32 PM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
Actually, after thinking about this again with a full stomach, why not
after properties are loaded fully expand them (if there is a value)?
I know the following is very simplistic but just humor me, what if this
were directly in loadFile():
Properties props = new Properties();
try
{
props.load(new FileInputStream("pom.xml"));
String oprop;
String iprop;
for (Enumeration outer = props.elements() ; outer.hasMoreElements()
;)
{
oprop=outer.nextElement().toString();
if(props.getProperty(oprop).contains("${"))
{
for (Enumeration inner = props.elements() ;
inner.hasMoreElements() ;)
{
iprop=inner.nextElement().toString();
if(!props.getProperty(iprop).contains("${"))
{
props.setProperty(oprop, iprop);
}
}
}
}
}
-----Original Message-----
From: EJ Ciramella [mailto:ejciramella@upromise.com]
Sent: Monday, August 04, 2008 12:56 PM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
Actually, there's a much more elegant solution. The core of the issue
is the property value NOT existing at the time property file load.
So here's what we're going to do:
1 - Load the property files in the order we'd like using the <property
file=> kinda thing.
2 - use <echoproperties file="final.properties"/>
3 - Load final.properties.
This gives us the order in which we'd like to load the properties AND
full expansion of any ${} type properties.
Thought I'd share.
-----Original Message-----
From: EJ Ciramella [mailto:ejciramella@upromise.com]
Sent: Monday, August 04, 2008 12:18 PM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
Right - I meant to ask, is that possible to do? I'm digging around the
documentation and it's unclear if I can do:
<concat>
<propertyset>
.....
Kinda thing...
-----Original Message-----
From: Matt Benson [mailto:gudnabrsam@yahoo.com]
Sent: Monday, August 04, 2008 11:42 AM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
--- EJ Ciramella <ej...@upromise.com> wrote:
> How does ant choose which properties take
> precedence?
>
> So say db.port is defined in three properties files
> (default.properties,
> stack.properties and machine.properties).
>
> Generally, we'd load them in this order:
>
> Machine.properties
> Stack.properties
> Default.properties
>
> Developers re-use default.properties, the stack
> generally uses a certain
> port and finally, a particular machine (say a
> secondary machine) would
> use a third variation.
>
> How would that loadproperties task choose which one
> takes precedence?
That would depend on how you assembled the
concatenated resource, I suppose.
-Matt
>
> -----Original Message-----
> From: Matt Benson [mailto:gudnabrsam@yahoo.com]
> Sent: Monday, August 04, 2008 10:40 AM
> To: Ant Developers List
> Subject: Loading interdependent properties files WAS
> RE: Trying (and
> failing) to build the nightly snapshot
>
>
> --- EJ Ciramella <ej...@upromise.com> wrote:
>
> > Right - in an ideal world, sure.
> >
> > We're using ant for deployments and the first file
> > is the MOST specific
> > file, the secondary one is the more generic file.
> >
> > So, in a nutshell, we can't alter the order of the
> > property files.
> >
> > What is interesting though is if all the
> properties
> > are in the SAME
> > file, there's no problem (as all the expansion can
> > happen at once). Can
> > I do something with concat? <propertyfileset> or
> > something?
> >
> > If concat could do something like, "first found
> > takes precedence but in
> > general add all the properties" that would be
> > perfect...
> >
>
> In Ant 1.7.x, if you can "bundle" all your files,
> you
> should be able to <loadproperties><concat><!--insert
> bundle here--></concat></loadproperties> them.
>
> HTH,
> Matt
>
> > -----Original Message-----
> > From: Steve Loughran [mailto:stevel@apache.org]
> > Sent: Monday, August 04, 2008 9:48 AM
> > To: Ant Developers List
> > Subject: Re: Trying (and failing) to build the
> > nightly snapshot
> >
> > EJ Ciramella wrote:
> > > I think I misunderstood this particular bug. It
> > appears to be a
> > problem
> > > with $${someprop} versus loading two property
> > files and the first one
> > > containing a ${property} that is set in the
> second
> > one loaded.
> > >
> > > To be explicit, if you have two property files,
> > a.properties and
> > > b.properties, in the first one loaded you have a
> > ${property} that is
> > set
> > > in b.properties, ant leaves it as ${}.
> > >
> > > a.properties:
> > >
> > > foo=bar
> > >
> > > coolprop=${foo}:${from.b.properties}
> > >
> > >
> > >
> > >
> > >
> > > b.properties:
> > >
> > > from.b.properties=awesome
> > >
> > >
> > >
> > >
> > > build.xml:
> > >
> > > <project default="go">
> > > <target name="go" >
> > > <property file="a.properties" />
> > > <property file="b.properties" />
> > > <echo>This is a problem:
> > ${coolprop}</echo>
> > > </target>
> > > </project>
> > >
> > > You'll see this:
> > >
> > > This is a problem: bar:${from.b.properties}
> >
> > That's because property expansion takes place when
> > the properties files
> > are loaded. If you want properties from
> > b.properties, load it before
> > a.properties
> >
> >
> >
> >
> > --
> > Steve Loughran
> > http://www.1060.org/blogxter/publish/5
> > Author: Ant in Action
> http://antbook.org/
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
>
>
>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: Loading interdependent properties files WAS RE: Trying (and failing) to build the nightly snapshot
Posted by EJ Ciramella <ej...@upromise.com>.
Actually, after thinking about this again with a full stomach, why not
after properties are loaded fully expand them (if there is a value)?
I know the following is very simplistic but just humor me, what if this
were directly in loadFile():
Properties props = new Properties();
try
{
props.load(new FileInputStream("pom.xml"));
String oprop;
String iprop;
for (Enumeration outer = props.elements() ; outer.hasMoreElements()
;)
{
oprop=outer.nextElement().toString();
if(props.getProperty(oprop).contains("${"))
{
for (Enumeration inner = props.elements() ;
inner.hasMoreElements() ;)
{
iprop=inner.nextElement().toString();
if(!props.getProperty(iprop).contains("${"))
{
props.setProperty(oprop, iprop);
}
}
}
}
}
-----Original Message-----
From: EJ Ciramella [mailto:ejciramella@upromise.com]
Sent: Monday, August 04, 2008 12:56 PM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
Actually, there's a much more elegant solution. The core of the issue
is the property value NOT existing at the time property file load.
So here's what we're going to do:
1 - Load the property files in the order we'd like using the <property
file=> kinda thing.
2 - use <echoproperties file="final.properties"/>
3 - Load final.properties.
This gives us the order in which we'd like to load the properties AND
full expansion of any ${} type properties.
Thought I'd share.
-----Original Message-----
From: EJ Ciramella [mailto:ejciramella@upromise.com]
Sent: Monday, August 04, 2008 12:18 PM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
Right - I meant to ask, is that possible to do? I'm digging around the
documentation and it's unclear if I can do:
<concat>
<propertyset>
.....
Kinda thing...
-----Original Message-----
From: Matt Benson [mailto:gudnabrsam@yahoo.com]
Sent: Monday, August 04, 2008 11:42 AM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
--- EJ Ciramella <ej...@upromise.com> wrote:
> How does ant choose which properties take
> precedence?
>
> So say db.port is defined in three properties files
> (default.properties,
> stack.properties and machine.properties).
>
> Generally, we'd load them in this order:
>
> Machine.properties
> Stack.properties
> Default.properties
>
> Developers re-use default.properties, the stack
> generally uses a certain
> port and finally, a particular machine (say a
> secondary machine) would
> use a third variation.
>
> How would that loadproperties task choose which one
> takes precedence?
That would depend on how you assembled the
concatenated resource, I suppose.
-Matt
>
> -----Original Message-----
> From: Matt Benson [mailto:gudnabrsam@yahoo.com]
> Sent: Monday, August 04, 2008 10:40 AM
> To: Ant Developers List
> Subject: Loading interdependent properties files WAS
> RE: Trying (and
> failing) to build the nightly snapshot
>
>
> --- EJ Ciramella <ej...@upromise.com> wrote:
>
> > Right - in an ideal world, sure.
> >
> > We're using ant for deployments and the first file
> > is the MOST specific
> > file, the secondary one is the more generic file.
> >
> > So, in a nutshell, we can't alter the order of the
> > property files.
> >
> > What is interesting though is if all the
> properties
> > are in the SAME
> > file, there's no problem (as all the expansion can
> > happen at once). Can
> > I do something with concat? <propertyfileset> or
> > something?
> >
> > If concat could do something like, "first found
> > takes precedence but in
> > general add all the properties" that would be
> > perfect...
> >
>
> In Ant 1.7.x, if you can "bundle" all your files,
> you
> should be able to <loadproperties><concat><!--insert
> bundle here--></concat></loadproperties> them.
>
> HTH,
> Matt
>
> > -----Original Message-----
> > From: Steve Loughran [mailto:stevel@apache.org]
> > Sent: Monday, August 04, 2008 9:48 AM
> > To: Ant Developers List
> > Subject: Re: Trying (and failing) to build the
> > nightly snapshot
> >
> > EJ Ciramella wrote:
> > > I think I misunderstood this particular bug. It
> > appears to be a
> > problem
> > > with $${someprop} versus loading two property
> > files and the first one
> > > containing a ${property} that is set in the
> second
> > one loaded.
> > >
> > > To be explicit, if you have two property files,
> > a.properties and
> > > b.properties, in the first one loaded you have a
> > ${property} that is
> > set
> > > in b.properties, ant leaves it as ${}.
> > >
> > > a.properties:
> > >
> > > foo=bar
> > >
> > > coolprop=${foo}:${from.b.properties}
> > >
> > >
> > >
> > >
> > >
> > > b.properties:
> > >
> > > from.b.properties=awesome
> > >
> > >
> > >
> > >
> > > build.xml:
> > >
> > > <project default="go">
> > > <target name="go" >
> > > <property file="a.properties" />
> > > <property file="b.properties" />
> > > <echo>This is a problem:
> > ${coolprop}</echo>
> > > </target>
> > > </project>
> > >
> > > You'll see this:
> > >
> > > This is a problem: bar:${from.b.properties}
> >
> > That's because property expansion takes place when
> > the properties files
> > are loaded. If you want properties from
> > b.properties, load it before
> > a.properties
> >
> >
> >
> >
> > --
> > Steve Loughran
> > http://www.1060.org/blogxter/publish/5
> > Author: Ant in Action
> http://antbook.org/
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
>
>
>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: Loading interdependent properties files WAS RE: Trying (and failing) to build the nightly snapshot
Posted by EJ Ciramella <ej...@upromise.com>.
Actually, there's a much more elegant solution. The core of the issue
is the property value NOT existing at the time property file load.
So here's what we're going to do:
1 - Load the property files in the order we'd like using the <property
file=> kinda thing.
2 - use <echoproperties file="final.properties"/>
3 - Load final.properties.
This gives us the order in which we'd like to load the properties AND
full expansion of any ${} type properties.
Thought I'd share.
-----Original Message-----
From: EJ Ciramella [mailto:ejciramella@upromise.com]
Sent: Monday, August 04, 2008 12:18 PM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
Right - I meant to ask, is that possible to do? I'm digging around the
documentation and it's unclear if I can do:
<concat>
<propertyset>
.....
Kinda thing...
-----Original Message-----
From: Matt Benson [mailto:gudnabrsam@yahoo.com]
Sent: Monday, August 04, 2008 11:42 AM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
--- EJ Ciramella <ej...@upromise.com> wrote:
> How does ant choose which properties take
> precedence?
>
> So say db.port is defined in three properties files
> (default.properties,
> stack.properties and machine.properties).
>
> Generally, we'd load them in this order:
>
> Machine.properties
> Stack.properties
> Default.properties
>
> Developers re-use default.properties, the stack
> generally uses a certain
> port and finally, a particular machine (say a
> secondary machine) would
> use a third variation.
>
> How would that loadproperties task choose which one
> takes precedence?
That would depend on how you assembled the
concatenated resource, I suppose.
-Matt
>
> -----Original Message-----
> From: Matt Benson [mailto:gudnabrsam@yahoo.com]
> Sent: Monday, August 04, 2008 10:40 AM
> To: Ant Developers List
> Subject: Loading interdependent properties files WAS
> RE: Trying (and
> failing) to build the nightly snapshot
>
>
> --- EJ Ciramella <ej...@upromise.com> wrote:
>
> > Right - in an ideal world, sure.
> >
> > We're using ant for deployments and the first file
> > is the MOST specific
> > file, the secondary one is the more generic file.
> >
> > So, in a nutshell, we can't alter the order of the
> > property files.
> >
> > What is interesting though is if all the
> properties
> > are in the SAME
> > file, there's no problem (as all the expansion can
> > happen at once). Can
> > I do something with concat? <propertyfileset> or
> > something?
> >
> > If concat could do something like, "first found
> > takes precedence but in
> > general add all the properties" that would be
> > perfect...
> >
>
> In Ant 1.7.x, if you can "bundle" all your files,
> you
> should be able to <loadproperties><concat><!--insert
> bundle here--></concat></loadproperties> them.
>
> HTH,
> Matt
>
> > -----Original Message-----
> > From: Steve Loughran [mailto:stevel@apache.org]
> > Sent: Monday, August 04, 2008 9:48 AM
> > To: Ant Developers List
> > Subject: Re: Trying (and failing) to build the
> > nightly snapshot
> >
> > EJ Ciramella wrote:
> > > I think I misunderstood this particular bug. It
> > appears to be a
> > problem
> > > with $${someprop} versus loading two property
> > files and the first one
> > > containing a ${property} that is set in the
> second
> > one loaded.
> > >
> > > To be explicit, if you have two property files,
> > a.properties and
> > > b.properties, in the first one loaded you have a
> > ${property} that is
> > set
> > > in b.properties, ant leaves it as ${}.
> > >
> > > a.properties:
> > >
> > > foo=bar
> > >
> > > coolprop=${foo}:${from.b.properties}
> > >
> > >
> > >
> > >
> > >
> > > b.properties:
> > >
> > > from.b.properties=awesome
> > >
> > >
> > >
> > >
> > > build.xml:
> > >
> > > <project default="go">
> > > <target name="go" >
> > > <property file="a.properties" />
> > > <property file="b.properties" />
> > > <echo>This is a problem:
> > ${coolprop}</echo>
> > > </target>
> > > </project>
> > >
> > > You'll see this:
> > >
> > > This is a problem: bar:${from.b.properties}
> >
> > That's because property expansion takes place when
> > the properties files
> > are loaded. If you want properties from
> > b.properties, load it before
> > a.properties
> >
> >
> >
> >
> > --
> > Steve Loughran
> > http://www.1060.org/blogxter/publish/5
> > Author: Ant in Action
> http://antbook.org/
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
>
>
>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: Loading interdependent properties files WAS RE: Trying (and failing) to build the nightly snapshot
Posted by EJ Ciramella <ej...@upromise.com>.
Right - I meant to ask, is that possible to do? I'm digging around the
documentation and it's unclear if I can do:
<concat>
<propertyset>
.....
Kinda thing...
-----Original Message-----
From: Matt Benson [mailto:gudnabrsam@yahoo.com]
Sent: Monday, August 04, 2008 11:42 AM
To: Ant Developers List
Subject: RE: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
--- EJ Ciramella <ej...@upromise.com> wrote:
> How does ant choose which properties take
> precedence?
>
> So say db.port is defined in three properties files
> (default.properties,
> stack.properties and machine.properties).
>
> Generally, we'd load them in this order:
>
> Machine.properties
> Stack.properties
> Default.properties
>
> Developers re-use default.properties, the stack
> generally uses a certain
> port and finally, a particular machine (say a
> secondary machine) would
> use a third variation.
>
> How would that loadproperties task choose which one
> takes precedence?
That would depend on how you assembled the
concatenated resource, I suppose.
-Matt
>
> -----Original Message-----
> From: Matt Benson [mailto:gudnabrsam@yahoo.com]
> Sent: Monday, August 04, 2008 10:40 AM
> To: Ant Developers List
> Subject: Loading interdependent properties files WAS
> RE: Trying (and
> failing) to build the nightly snapshot
>
>
> --- EJ Ciramella <ej...@upromise.com> wrote:
>
> > Right - in an ideal world, sure.
> >
> > We're using ant for deployments and the first file
> > is the MOST specific
> > file, the secondary one is the more generic file.
> >
> > So, in a nutshell, we can't alter the order of the
> > property files.
> >
> > What is interesting though is if all the
> properties
> > are in the SAME
> > file, there's no problem (as all the expansion can
> > happen at once). Can
> > I do something with concat? <propertyfileset> or
> > something?
> >
> > If concat could do something like, "first found
> > takes precedence but in
> > general add all the properties" that would be
> > perfect...
> >
>
> In Ant 1.7.x, if you can "bundle" all your files,
> you
> should be able to <loadproperties><concat><!--insert
> bundle here--></concat></loadproperties> them.
>
> HTH,
> Matt
>
> > -----Original Message-----
> > From: Steve Loughran [mailto:stevel@apache.org]
> > Sent: Monday, August 04, 2008 9:48 AM
> > To: Ant Developers List
> > Subject: Re: Trying (and failing) to build the
> > nightly snapshot
> >
> > EJ Ciramella wrote:
> > > I think I misunderstood this particular bug. It
> > appears to be a
> > problem
> > > with $${someprop} versus loading two property
> > files and the first one
> > > containing a ${property} that is set in the
> second
> > one loaded.
> > >
> > > To be explicit, if you have two property files,
> > a.properties and
> > > b.properties, in the first one loaded you have a
> > ${property} that is
> > set
> > > in b.properties, ant leaves it as ${}.
> > >
> > > a.properties:
> > >
> > > foo=bar
> > >
> > > coolprop=${foo}:${from.b.properties}
> > >
> > >
> > >
> > >
> > >
> > > b.properties:
> > >
> > > from.b.properties=awesome
> > >
> > >
> > >
> > >
> > > build.xml:
> > >
> > > <project default="go">
> > > <target name="go" >
> > > <property file="a.properties" />
> > > <property file="b.properties" />
> > > <echo>This is a problem:
> > ${coolprop}</echo>
> > > </target>
> > > </project>
> > >
> > > You'll see this:
> > >
> > > This is a problem: bar:${from.b.properties}
> >
> > That's because property expansion takes place when
> > the properties files
> > are loaded. If you want properties from
> > b.properties, load it before
> > a.properties
> >
> >
> >
> >
> > --
> > Steve Loughran
> > http://www.1060.org/blogxter/publish/5
> > Author: Ant in Action
> http://antbook.org/
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
>
>
>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: Loading interdependent properties files WAS RE: Trying (and failing) to build the nightly snapshot
Posted by Matt Benson <gu...@yahoo.com>.
--- EJ Ciramella <ej...@upromise.com> wrote:
> How does ant choose which properties take
> precedence?
>
> So say db.port is defined in three properties files
> (default.properties,
> stack.properties and machine.properties).
>
> Generally, we'd load them in this order:
>
> Machine.properties
> Stack.properties
> Default.properties
>
> Developers re-use default.properties, the stack
> generally uses a certain
> port and finally, a particular machine (say a
> secondary machine) would
> use a third variation.
>
> How would that loadproperties task choose which one
> takes precedence?
That would depend on how you assembled the
concatenated resource, I suppose.
-Matt
>
> -----Original Message-----
> From: Matt Benson [mailto:gudnabrsam@yahoo.com]
> Sent: Monday, August 04, 2008 10:40 AM
> To: Ant Developers List
> Subject: Loading interdependent properties files WAS
> RE: Trying (and
> failing) to build the nightly snapshot
>
>
> --- EJ Ciramella <ej...@upromise.com> wrote:
>
> > Right - in an ideal world, sure.
> >
> > We're using ant for deployments and the first file
> > is the MOST specific
> > file, the secondary one is the more generic file.
> >
> > So, in a nutshell, we can't alter the order of the
> > property files.
> >
> > What is interesting though is if all the
> properties
> > are in the SAME
> > file, there's no problem (as all the expansion can
> > happen at once). Can
> > I do something with concat? <propertyfileset> or
> > something?
> >
> > If concat could do something like, "first found
> > takes precedence but in
> > general add all the properties" that would be
> > perfect...
> >
>
> In Ant 1.7.x, if you can "bundle" all your files,
> you
> should be able to <loadproperties><concat><!--insert
> bundle here--></concat></loadproperties> them.
>
> HTH,
> Matt
>
> > -----Original Message-----
> > From: Steve Loughran [mailto:stevel@apache.org]
> > Sent: Monday, August 04, 2008 9:48 AM
> > To: Ant Developers List
> > Subject: Re: Trying (and failing) to build the
> > nightly snapshot
> >
> > EJ Ciramella wrote:
> > > I think I misunderstood this particular bug. It
> > appears to be a
> > problem
> > > with $${someprop} versus loading two property
> > files and the first one
> > > containing a ${property} that is set in the
> second
> > one loaded.
> > >
> > > To be explicit, if you have two property files,
> > a.properties and
> > > b.properties, in the first one loaded you have a
> > ${property} that is
> > set
> > > in b.properties, ant leaves it as ${}.
> > >
> > > a.properties:
> > >
> > > foo=bar
> > >
> > > coolprop=${foo}:${from.b.properties}
> > >
> > >
> > >
> > >
> > >
> > > b.properties:
> > >
> > > from.b.properties=awesome
> > >
> > >
> > >
> > >
> > > build.xml:
> > >
> > > <project default="go">
> > > <target name="go" >
> > > <property file="a.properties" />
> > > <property file="b.properties" />
> > > <echo>This is a problem:
> > ${coolprop}</echo>
> > > </target>
> > > </project>
> > >
> > > You'll see this:
> > >
> > > This is a problem: bar:${from.b.properties}
> >
> > That's because property expansion takes place when
> > the properties files
> > are loaded. If you want properties from
> > b.properties, load it before
> > a.properties
> >
> >
> >
> >
> > --
> > Steve Loughran
> > http://www.1060.org/blogxter/publish/5
> > Author: Ant in Action
> http://antbook.org/
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail:
> > dev-help@ant.apache.org
> >
> >
>
>
>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: Loading interdependent properties files WAS RE: Trying (and failing) to build the nightly snapshot
Posted by EJ Ciramella <ej...@upromise.com>.
How does ant choose which properties take precedence?
So say db.port is defined in three properties files (default.properties,
stack.properties and machine.properties).
Generally, we'd load them in this order:
Machine.properties
Stack.properties
Default.properties
Developers re-use default.properties, the stack generally uses a certain
port and finally, a particular machine (say a secondary machine) would
use a third variation.
How would that loadproperties task choose which one takes precedence?
-----Original Message-----
From: Matt Benson [mailto:gudnabrsam@yahoo.com]
Sent: Monday, August 04, 2008 10:40 AM
To: Ant Developers List
Subject: Loading interdependent properties files WAS RE: Trying (and
failing) to build the nightly snapshot
--- EJ Ciramella <ej...@upromise.com> wrote:
> Right - in an ideal world, sure.
>
> We're using ant for deployments and the first file
> is the MOST specific
> file, the secondary one is the more generic file.
>
> So, in a nutshell, we can't alter the order of the
> property files.
>
> What is interesting though is if all the properties
> are in the SAME
> file, there's no problem (as all the expansion can
> happen at once). Can
> I do something with concat? <propertyfileset> or
> something?
>
> If concat could do something like, "first found
> takes precedence but in
> general add all the properties" that would be
> perfect...
>
In Ant 1.7.x, if you can "bundle" all your files, you
should be able to <loadproperties><concat><!--insert
bundle here--></concat></loadproperties> them.
HTH,
Matt
> -----Original Message-----
> From: Steve Loughran [mailto:stevel@apache.org]
> Sent: Monday, August 04, 2008 9:48 AM
> To: Ant Developers List
> Subject: Re: Trying (and failing) to build the
> nightly snapshot
>
> EJ Ciramella wrote:
> > I think I misunderstood this particular bug. It
> appears to be a
> problem
> > with $${someprop} versus loading two property
> files and the first one
> > containing a ${property} that is set in the second
> one loaded.
> >
> > To be explicit, if you have two property files,
> a.properties and
> > b.properties, in the first one loaded you have a
> ${property} that is
> set
> > in b.properties, ant leaves it as ${}.
> >
> > a.properties:
> >
> > foo=bar
> >
> > coolprop=${foo}:${from.b.properties}
> >
> >
> >
> >
> >
> > b.properties:
> >
> > from.b.properties=awesome
> >
> >
> >
> >
> > build.xml:
> >
> > <project default="go">
> > <target name="go" >
> > <property file="a.properties" />
> > <property file="b.properties" />
> > <echo>This is a problem:
> ${coolprop}</echo>
> > </target>
> > </project>
> >
> > You'll see this:
> >
> > This is a problem: bar:${from.b.properties}
>
> That's because property expansion takes place when
> the properties files
> are loaded. If you want properties from
> b.properties, load it before
> a.properties
>
>
>
>
> --
> Steve Loughran
> http://www.1060.org/blogxter/publish/5
> Author: Ant in Action http://antbook.org/
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@ant.apache.org
> For additional commands, e-mail:
> dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org