Hi,

Thanks Brain, for the reply .. I have some doubts, request you to make me 
understand some features... A similar post is already posted by my team member 
couple of times  ..excuses for resending it.  Very thankful to them who help us 
in understanding the concepts in a good way ...

1) So for reading every appender , we need to set the appender into a variable 
as in the solution.
 <param name="appender1" path="appender[1]/text()" />
> <param name="appender2" path="appender[2]/text()" />
>
>
There is no way to get into a single variable ,If I'm wrong here ..please help 
me understand..

2 ) For replacing the value in a param value in appender node - 

<appender class="org.apache.log4j.RollingFileAppender" name="a2">
         <param name="File" value="uan.log"/>
         <param name="Append" value="true"/>
         <param name="MaxFileSize" value="25000KB"/>
         <param name="MaxBackupIndex" value="5"/>
         <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{DATE} %-5p %-15c{1} 
[%t][%x]: %m%n"/>
         </layout>
         </appender>

In my build-configuration file - it is like this now  - 
----------------------------
<appenderupdates>
  <appendername>a2</appendername>
  <paramname>MaxFileSize</paramname>
<paramvalue>10000KB</paramvalue >
</appenderupdates>
------------------------------------

In my ant build file the following xml task is used for reading the values from 
build -configuration 

<call path="/categoryset/appenderupdates" target="replacetask">
<param name="appendername" path="appendername/text()"/>
<param name="paramname" path="paramname/text()"/>
<param name="paramvalue" path="paramvalue/text()"/>
</call>

Replace task is -

<replace 
path="/log4j:configuration/append...@name='${testname}']/par...@name='${paramname}']...@value"
 withText="${paramvalue}"/>

The problem with the replace is , it is unable to find the correct match  - 
: <xmltask> subtasks failed to find matches was the error.

 I understand that xpath usage is wrong here .. how can i parse this ?

The above question is solved using the attr xmltask - 
<attr 
path="/log4j:configuration/append...@name='${appendername}']/par...@name='${paramname}']"
 attr="value" value='${paramvalue}'/>

3) And when i run my ant build.xml repeatedly then it creates the same set of 
appenders and categories again and again , is there a way that we can stop the 
same appenders and categories writing again and again into myweb.xml file.

4) Can we call xml task inside another call xml task . I tried this feature for 
a scenario but it failed....

regards,
soumya ..




________________________________
From: Brian Agnew <br...@oopsconsultancy.com>
To: soumya sree kullu <soumyasree...@yahoo.co.in>
Cc: xmltask-users@lists.sourceforge.net
Sent: Tuesday, 11 August, 2009 3:29:16 PM
Subject: Re: XML Task Help

1) why not use something like:

<call path="/categoryset/category/appender/" target="..."/>

to process every appender ? You may have to do this separately from
setting the name.

2) Your <replace> doesn't work. Can you post how you're using it
(the one-liner <replace>), pls ?

Brian

On 11/08/2009 14:03, soumya sree kullu wrote: 
Hi ,
>
>
>I am using xml task for dynamically adding log4j appenders and
>categories in my web.xml , 
>
>
>My solution goes  like this - 
>
>
> my web.xml is 
>----------------------------
>
>
><?xml version="1.0" encoding="UTF-8"?>
><root>
>    <priority value="fatal"/>
>  </root>
> </log4j:configuration>
>-------------------------------------------
>
>
>I want to add the appenders  and categories to the above xml
>file. hence I used xml task in my ant build.xml file , 
>by reading the appenders and category names through a
>configuration file like this -
>
>
>Build-configuration  file 
>-----------------------------------
><?xml version="1.0"?>
><categoryset>
><category >
> 
> <testname>Category1</testname>
> 
> <appender>A1</appender>
> 
> <appender>B1</appender>
> 
> <appender>C1</appender>
></category>  
><category >
> 
> <testname>Category2</testname>
> 
> <appender>a2</appender>
> 
> <appender>b2</appender>
> 
> <appender>c2</appender>
></category>  
><appenderfilesize>
>  <testname>a2</testname>
><MaxFileSize>10000KB</MaxFileSize >
></appenderfilesize>
></categoryset>
>-------------------------------------
> 
>In the ant build.xml file I
>use xml task to
>add appenders and categories that adds to my web.xml , 
> like this-
> 
>In the ant build.xml file 
>--------------------------------
><target name="main"
>depends="testprg"/>
> 
><property
>name="web.xmlfile"
>value="C:/test/web.xml" />
> 
><target name="testprg">
>      <xmltask
>source="build-configuration.xml">
>           <call
>path="/categoryset/category" target="roottest">
> <param name="name"
>path="testname/text()" />
> <param name="appender1"
>path="appender[1]/text()" />
>  <param name="appender2"
>path="appender[2]/text()" />
>  <param name="appender3"
>path="appender[3]/text()" />
>         </call>
> 
><call
>path="/categoryset/catego...@testname]/appender"
>target="compile-and-release">
><param
>name="build"
>path="text()"/>
></call>
>
>
> </xmltask>
></target>
> 
>   
> <target name="roottest" >
>     <echo>Building Category
>${name}</echo>
>     <echo>Appender
>${appender1}</echo>
>   
> <echo>Appender ${appender2}</echo>
>    <echo>Appender
>${appender3}</echo>
>  
> 
> <xmltask source="${web.xmlfile}"
>dest="${web.xmlfile}" failWithoutMatch="true">
>     <insert
>path="/log4j:configuration/root"
>position="after">
>                <![CDATA[ <category
>name="${name}"> 
>                              <priority
>value="debug"
>/>
>                <appender-ref
>ref="${appender1}"
>/> 
>                <appender-ref
>ref="${appender2}"
>/> 
>                <appender-ref
>ref="${appender3}"
>/> 
>     </category>
>]]>
>   
> </insert>
>   
> </xmltask>   
>   
> </target>
> 
><target
>name="compile-and-release">
>   <xmltask
>source="${web.xmlfile}"
>dest="${web.xmlfile}"
>failWithoutMatch="true">
>    <insert
>path="/log4j:configuration/root"
>position="after">
>     
> <![CDATA[
>         
> <appender name="${build}"
>class="org.apache.log4j.RollingFileAppender">
>               
> <param
>name="File"   value="uan.log"
>/>
>               
> <param
>name="Append" value="true" />
>               
> <param
>name="MaxFileSize" value="25000KB" />
>               
> <param
>name="MaxBackupIndex" value="5"/>
>               
> <layout
>class="org.apache.log4j.PatternLayout">
>               
> <param
>name="ConversionPattern" value="%d{DATE} %-5p %-15c{1} [%t][%x]:
>%m%n"/>
>               
> </layout>
>           
> </appender>
> 
>]]>
>  </insert>
></xmltask>
>-----------------------------------------------------
>
>
>The above solution works fine until i know the number of
> appenders, but -
>
>
>I dont want  to mention the array notation of appenders in xml
>task  , ie. 
>   
><call
>path="/categoryset/category" target="roottest">
> <param name="name"
>path="testname/text()" />
> <param name="appender1"
>path="appender[1]/text()" />
>  <param name="appender2"
>path="appender[2]/text()" />
>  <param name="appender3"
>path="appender[3]/text()" />
>        
></call>
>
>
>
>
> as the  appenders are not static , they may increase or
>decrease under a category.  I want to implement some looping kind of
>mechanism which actually reads the category and then loop through the
>appenders which creates nodes under category like - and should get the
>same output into  web.xml like what the solution does now...i.e.
>
>
><category
>name="Category2"> 
>            <priority
>value="debug"/>
>          
> <appender-ref ref="a2"/> 
>          
> <appender-ref ref="b2"/> 
>          
> <appender-ref ref="c2"/> 
></category>
>
>
>Is there a way ? 
>
>
>2 )  I facing some problems in replacign the value in the xml
>node.. 
>
>
>Using build-configuration file . I read the max-file size but it
>doesnt work 
>------------------------------------
><appenderfilesize>
>  <testname>a2</testname>
><MaxFileSize>10000KB</MaxFileSize >
></appenderfilesize>
>--------------------------
>
>
><appender class="org.apache.log4j.RollingFileAppender"
>name="a2">
>         <param name="File" value="uan.log"/>
>         <param name="Append" value="true"/>
>         <param name="MaxFileSize" value="25000KB"/>
>         <param name="MaxBackupIndex" value="5"/>
>         <layout class="org.apache.log4j.PatternLayout">
>         <param name="ConversionPattern" value="%d{DATE} %-5p
>%-15c{1} [%t][%x]: %m%n"/>
>         </layout>
>         </appender>
>
>
>The value has to be changed to 10000KB , i was using replace
>xmltask but didnt succeed.. 
>
>
>can anyone please help me out in solving the issues ... ??will
>be so thankful to them ..
>
>
>soumya
>
>
>________________________________
 Love Cricket? Check out live scores, photos, video
>highlights and more. Click here.

-- 
Brian Agnew                  http://www.oopsconsultancy.com
OOPS Consultancy Ltd
Tel: +44 (0)7720 397526
Fax: +44 (0)20 8682 0012

________________________________
 Love Cricket? Check out live scores, photos, video highlights and more. Click 
here.


      Yahoo! recommends that you upgrade to the new and safer Internet Explorer 
8. http://downloads.yahoo.com/in/internetexplorer/
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Xmltask-users mailing list
Xmltask-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xmltask-users

Reply via email to