Hi,

when we have a file x.properties file like

x=x
y=${x}

and

    <property name="x" value="y"/>
    <property file="x.properties"/>

the ${y} will end up being "y", which is fine - properties are
immutable.

If you use

    <property file="x.properties" prefix="foo"/>

instead, Ant 1.8.0 will set ${foo.y} to "y" as well as it doesn't apply
the prefix when expanding ${x}.  Ant 1.8.1 uses the prefix when
expanding ${x} inside the file and thus expands ${foo.y} to "x" which
makes sense in that it makes the property file self-contained.

There is an open bug report against 1.8.1 that wants the old behavior
back <https://issues.apache.org/bugzilla/show_bug.cgi?id=49373>.

Locally I have a version of trunk that reinstates 1.8.0's behavior, but
that same version breaks the AntUnit tests for <loadproperties> with a
prefix attribute because the 1.8.1 way is explicitly expected here.

We don't have any documentation either way.

I see the following choices:

  (1) embrace <loadproperties prefix="..."/> way for <property file> as
      well and document it as a breaking change that already occured in
      1.8.1

  (2) make <loadproperties> prefix useless, remove it again, make
      <loadproperties> match <property file> of Ant 1.8.0 and earlier.

  (3) allow different behavior of the tasks and document it.

I can't say I'd like either of the three choices too much, maybe anybody
sees a different option.  (1) looks most attractive to me but there
doesn't seem to be a workaround if you want the old behavior back.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to