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 <[email protected]>
> 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 <[email protected]> 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 <[email protected]>
> >>
> >> 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 <[email protected]>
> >>>
> >>> 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 <[email protected]>
> >>>>
> >>>> 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
> >>>> [email protected]
> >>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> Júlio Cesar Bueno Cotta
> >>> Graduando em ciência da computação
> >>> Universidade Federal de Viçosa
> >>>
> >>>
> >>
> >>
> >> --
> >> David Weintraub
> >> [email protected]
> >>
> >>
> > 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: [email protected]
> > For additional commands, e-mail: [email protected]
> >
>
>
>
> --
> David Weintraub
> [email protected]
>
--
Júlio Cesar Bueno Cotta
Graduando em ciência da computação
Universidade Federal de Viçosa