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 <qazw...@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 <sflo...@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 <juliocbco...@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 > >>> @v...@=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 <qazw...@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 > >>>> @ti...@with Foo Bar in all files." > >>>> > >>>> *You can also look here: http://ant.apache.org/manual/index.html at > 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 <juliocbco...@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 > >>>> qazw...@gmail.com > >>>> > >>>> > >>> > >>> > >>> -- > >>> Júlio Cesar Bueno Cotta > >>> Graduando em ciência da computação > >>> Universidade Federal de Viçosa > >>> > >>> > >> > >> > >> -- > >> David Weintraub > >> qazw...@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-unsubscr...@ant.apache.org > > For additional commands, e-mail: user-h...@ant.apache.org > > > > > > -- > David Weintraub > qazw...@gmail.com > -- Júlio Cesar Bueno Cotta Graduando em ciência da computação Universidade Federal de Viçosa