ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Júlio Cesar Bueno Cotta <juliocbco...@gmail.com>
Subject Re: help to find not replaced variables
Date Fri, 24 Jul 2009 17:38:28 GMT
Thanks again! :D
That "messsage" come from your code David. :D

I had try to run the newst code ..and I just copy and paste your code and
got this.
BUILD FAILED
bla bla bla loadresource doesn't support the nested "concat" element.

:(
help

2009/7/24 David Weintraub <qazwart@gmail.com>

> A few things:
>
>   - You have "messsage" instead of "message" in your fail statement. (Three
>   "s" instead of just 2).
>   - In the second to the last line, you have <\target> instead of
>   </target>. (This is what is causing the error message). Make sure you're
>   using the fractional slash and not the backslash.
>   - You are attempting to combine the <fail> statement with the
>   <loadresource>.  I'm not 100% sure that is possible. It is possible in
> the
>   <length> condition not to give it a string, but instead use nested
>   resources. Then, it might be possible to concat them, and then have the
>   <length> test against that. However, even if that is successful, the
> <fail>
>   statement would have nothing to print out.
>
>   The best thing to do is set the property "nonreplaced.lines", so you have
>   something to print out in the <fail> task, and then test the length of
> this
>   property against the <length> condition in the <fail> task.
>
> Try this:
>
> *<?xml version="1.0"?>
> <project name="test" basedir="." default="search">
>   <property name="property.dir" value="${basedir}/test"/>
>
>  <target name="search">
>
>    <!--Setting nonreplaced.lines with all lines not filled in-->
>     <loadresource property="nonreplaced.lines">
>      <concat>
>        <fileset dir="${property.dir}"/>
>        <filterchain>
>          <linecontainsregexp>
>            <regexp pattern="@[\w]+@"/>
>          </linecontainsregexp>
>        </filterchain>
>      </concat>
>    </loadresource>
>
>    <!-- Now test to see if "nonreplaced.lines" is not zero -->
>   <fail message="Lines not replaced:${line.separator}${nonreplaced.lines}">
>      <condition>
>        <length string="${nonreplaced.lines}" when="greater" length="0"/>
>      </condition>
>    </fail>
>  </target>
> </project>
> *
>
>
> 2009/7/24 Júlio Cesar Bueno Cotta <juliocbcotta@gmail.com>
>
> > I am sorry, if I spent too much time to give a answer here..but I was
> busy
> > with other things..
> > well..
> > Thanks a lot David.
> > You gave me the answer, and a good explanation about this.
> > But..I still need some help with this..
> > I had try to do a test with this
> > -----------------------------------------------------------------
> > <?xml version="1.0"?>
> > <project name="test" basedir="." default="search">
> >    <property name="property.dir" value="/test/"/>
> >    <target name="search">
> >         <fail messsage="Lines not replaced: ${nonreplaced.lines}">
> >         <condition>
> >         <loadresource property="nonreplaced.lines">
> >           <concat>
> >              <fileset dir="${property.dir}"/>
> >              <filterchain>
> >                 <linecontainsregexp>
> >                    <regexp pattern="@[\w]+@"/>
> >                </linecontainsregexp>
> >             </filterchain>
> >           </concat>
> >        </loadresource>
> >            <length string="${nonreplaced.lines}" when="greater"
> count="0"/>
> >         </condition>
> >        </fail>
> >         <\target>
> > </project>
> >
> >
> ----------------------------------------------------------------------------------------------
> >
> > I had create the directory test in the directory where I ran the script
> > ..and inside of that directory a text file with a line @test@
> >
> > when I try to run "ant" command and I get "BUILD FAILED" :(
> > "The content of elements must consist of well-formed character data or
> > markup."
> >
> > I am really sorry..I guess I can doing something wrong too much noob.
> > Please, if someone can tell me what is wrong..
> > Thanks all.
> >
> > 2009/7/22 David Weintraub <qazwart@gmail.com>
> >
> > > Actually, I think this solution might be more of what you want. The
> first
> > > solution I gave you will only tell you that there were parameters that
> > > weren't replaced, but won't tell you which parameters weren't replaced.
> > > Imagine if you had 100 parameters, and you only replaced 99 of them. It
> > > would take you a long time to find that one parameter out of the 100
> that
> > > didn't get replaced.
> > >
> > > This solution will actually give you the lines that weren't
> substituted:
> > >
> > > *<loadresource property="nonreplaced.lines">*
> > > *   <concat>*
> > > *      <fileset dir="${property.dir}"/>*
> > > *      <filterchain>*
> > > *         <linecontainsregexp>*
> > > *            <regexp pattern="@[\w]+@"/>
> > >         </linecontainsregexp>
> > >      </filterchain>
> > >    </concat>
> > > </loadresource>    *
> > >
> > > The property *nonreplaced.lines* will now contain all the lines that
> > > weren't
> > > replaced. Thus, it would be much easier to correct the situation. You'd
> > > know
> > > which one you were missing.
> > >
> > > This could be put into a fail message to fail the build if any lines
> were
> > > detected:
> > >
> > > *<fail messsage="Lines not replaced: ${nonreplaced.lines}">
> > >  <condition>
> > >    <length string="${nonreplaced.lines}" when=greater" count="0"/>
> > >  </condition>
> > > </fail>
> > >
> > > *
> > > We (including me) really should start looking more into filterchains
> and
> > > resources. They're a bit harder to understand than standard ant tasks
> > like
> > > "copy", but they offer a lot of power.
> > >
> > > On Wed, Jul 22, 2009 at 3:40 PM, Scot P. Floess <sfloess@nc.rr.com>
> > wrote:
> > >
> > > >
> > > > Ew - thats a really nice solution :)   Now to remove my foot from my
> > > mouth
> > > > ;)
> > > >
> > > >
> > > > On Wed, 22 Jul 2009, David Weintraub wrote:
> > > >
> > > >  Ah! You want to see if the "replace" failed!
> > > >>
> > > >> Try this:
> > > >>
> > > >> *<resoucecount property="files.not.replaced">*
> > > >> *   <fileset dir="${property.dir}">*
> > > >> *      <containsregexp expression="@[^@][^@]*@"/>*
> > > >> *   <fileset>*
> > > >> *</resourcecount>*
> > > >> *
> > > >> <echo>Files failing replace: ${files.not.replaced}</echo>
> > > >> <fail message="Some value didn't get replaced by replacement
> macro!">
> > > >>  <condition>
> > > >>   <not>
> > > >>     <equal arg1="${files.not.replaced}" arg2="0"/>
> > > >>   </not>
> > > >>  <condition>
> > > >> </fail>
> > > >> *
> > > >>
> > > >> Let's take this apart:
> > > >>
> > > >> The *<fileset dir="${property.dir}">* should be the directory
that
> > > >> contains
> > > >> the files with the variables being replaced. You then use the *
> > > >> <containregexp>* to find the files that contain the regular
> expression
> > > "*
> > > >> @[^@][^@]*@*"
> > > >>
> > > >> The *<resourcecount>* counts the number of files that your
> > > >> *<fileset>*selects. Thus if the count is greater than zero,
at least
> > > >> one file has a
> > > >> parameter that wasn't replaced.
> > > >>
> > > >> 2009/7/22 Júlio Cesar Bueno Cotta <juliocbcotta@gmail.com>
> > > >>
> > > >>  I alread have a ant script to replace the variables..and it is
> > working.
> > > >>> What I need is check if all the variables are beeing replaced.
> > > >>> I have a dev.properties where I have lines like this
> > > >>> @vari@=test
> > > >>>
> > > >>> each @vari@ is replaced to "test" after I run the script.
> > > >>>
> > > >>> But
> > > >>> If I forget to add the variable in the dev.properties , that
> variable
> > > >>> wont
> > > >>> be replaced.
> > > >>> I want to search all the varibles not replaced.
> > > >>> Thanks.
> > > >>>
> > > >>> 2009/7/22 David Weintraub <qazwart@gmail.com>
> > > >>>
> > > >>>  You can do this with the <copy> task via the <filter>:
> > > >>>>
> > > >>>> A good example is given on this page:
> > > >>>>
> > > >>>> <http://ant.apache.org/manual/CoreTasks/copy.html>
> > > >>>>
> > > >>>> Look for the text "*Copy a set of files to a directory, replacing
> > > >>>> @TITLE@with Foo Bar in all files."
> > > >>>>
> > > >>>> *You can also look here: http://ant.apache.org/manual/index.htmlat
> > > the
> > > >>>> <filter> task.
> > > >>>>
> > > >>>> And, take a look over here too:
> > > >>>>
> > > >>>> <http://ant.apache.org/manual/CoreTypes/filterset.html>
> > > >>>>
> > > >>>> This one shows the concept of a "filterset" and how it works
with
> > the
> > > >>>> <copy>
> > > >>>> task. It also has some excellent examples.
> > > >>>>
> > > >>>> 2009/7/22 Júlio Cesar Bueno Cotta <juliocbcotta@gmail.com>
> > > >>>>
> > > >>>>  Hello there,
> > > >>>>> I am new over here and I need some help.
> > > >>>>> There is a script that replace variables in the files.
> > > >>>>> And I am trying to write a ant script to find in the replaced
> files
> > (
> > > >>>>>
> > > >>>> into
> > > >>>>
> > > >>>>> a
> > > >>>>> folder like workspace/web-inf/ ) variables witch were
not
> > replaced..
> > > >>>>> Someone can help me?
> > > >>>>> Is there some task to do that?
> > > >>>>>
> > > >>>>> I am sorry if I am not clear..my English is not pretty
good.
> > > >>>>> Thanks all.
> > > >>>>>
> > > >>>>> --
> > > >>>>>  Júlio Cesar Bueno Cotta
> > > >>>>> Graduando em ciência da computação
> > > >>>>>  Universidade Federal de Viçosa
> > > >>>>>
> > > >>>>>
> > > >>>>
> > > >>>>
> > > >>>> --
> > > >>>> David Weintraub
> > > >>>> qazwart@gmail.com
> > > >>>>
> > > >>>>
> > > >>>
> > > >>>
> > > >>> --
> > > >>>  Júlio Cesar Bueno Cotta
> > > >>> Graduando em ciência da computação
> > > >>>  Universidade Federal de Viçosa
> > > >>>
> > > >>>
> > > >>
> > > >>
> > > >> --
> > > >> David Weintraub
> > > >> qazwart@gmail.com
> > > >>
> > > >>
> > > > Scot P. Floess
> > > > 27 Lake Royale
> > > > Louisburg, NC  27549
> > > >
> > > > 252-478-8087 (Home)
> > > > 919-890-8117 (Work)
> > > >
> > > > Chief Architect JPlate   http://sourceforge.net/projects/jplate
> > > > Chief Architect JavaPIM  http://sourceforge.net/projects/javapim
> > > >
> > > > Architect Keros          http://sourceforge.net/projects/keros
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > > > For additional commands, e-mail: user-help@ant.apache.org
> > > >
> > >
> > >
> > >
> > > --
> > > David Weintraub
> > > qazwart@gmail.com
> > >
> >
> >
> >
> > --
> >   Júlio Cesar Bueno Cotta
> > Graduando em ciência da computação
> >   Universidade Federal de Viçosa
> >
>
>
>
> --
> David Weintraub
> qazwart@gmail.com
>



-- 
  Júlio Cesar Bueno Cotta
Graduando em ciência da computação
   Universidade Federal de Viçosa

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message