> -----Original Message-----
> From: Gav... [mailto:ga...@16degrees.com.au]
> Sent: Sunday, 6 June 2010 9:36 AM
> To: dev@forrest.apache.org
> Subject: RE: svn commit: r951719 - /forrest/trunk/plugins/build.xml
> 
> 
> 
> > -----Original Message-----
> > From: Tim Williams [mailto:william...@gmail.com]
> > Sent: Sunday, 6 June 2010 9:00 AM
> > To: dev@forrest.apache.org
> > Subject: Re: svn commit: r951719 - /forrest/trunk/plugins/build.xml
> >
> > On Sat, Jun 5, 2010 at 6:42 PM, Gav... <ga...@16degrees.com.au>
> wrote:
> 
> 
> <snip>
> 
> > >
> > > So, going back to the original form and altering it slightly:
> > >
> > > <available file="${plugin.java.dir}/**/*.java"
> > property="java_exists"/>
> > >
> > > seems to work fine, though I haven't seen wildcards in any
> examples,
> > I'm
> > > assuming this will work and set the property accordingly.
> >
> > Thanks Gav, you gonna commit this one or you want me to do it?
> >
> > --tim
> 
> Well, I've done it now.
> 
> However it won't have the desired effect David was after.
> 
> It will set the property "java_exists" to either true or false, that
> parts
> works, however just by setting the property at all is enough for later
> targets to use if="java_exists" to always be true (i.e. the property
> does
> exist, doesn't matter if it's true or not.
> 
> Ant 1.8 cures this by checking whether true or false.
> There is a workaround I've done before elsewhere, which means setting a
> variable
> in an extra target and having the other targets depend on the variable.
> 
> I won't apply that though, but try and find where I've done that before
> and
> post
> it here for review first. David may have been on the right path also as
> that
> at
> least will not set the property at all. Will look closer.
> 

Ok, I found where I've done it before.

See: https://issues.apache.org/jira/browse/FOR-1055

It is the same circumstances, see commit r774176 in
/forrest/trunk/main/forrest.build.xml
That will certainly do what we want, something like:

<available file="${plugin.java.dir}/**/*.java" property="java_exists"/>
...
<target name="java-exists-condition" if="java_exists">
  <property name="java_exists.istrue" value="${java_exists}"/>
    <condition property="java_exists.true">
      <istrue value="${java_exists.istrue}"/>
    </condition>
</target>
...
<target name="compile" depends="init, java-exists-condition"
if="java_exists.true">
...
<target name="jar" depends="init, compile, java-exists-condition"
if="java_exists.true">
...

Will work, but I won't apply, other comments and other avenues to fix
welcome.

Gav...