Hello,

Greetings!

We have a project which is migrated from digester version 1.8 to 3.0.
In earlier version, when no argument was passed within xml parsed by digester 
for a Boolean argument, it was considering true by default.
But, in digester 3.0, its observed that, default value for any argument which 
is not passed is set to false.

For eg:

<pattern value="begSeparator">
                                         <call-method-rule methodname="addXXXX" 
paramcount="4"
                                                
paramtypes="java.lang.String,java.lang.Boolean,java.lang.String,java.lang.String"
 />
                                         <call-param-rule paramnumber="0" 
attrname="separator" />
                                         <call-param-rule paramnumber="1" 
attrname="includeIfNull"/>
                                         <call-param-rule paramnumber="2" 
attrname="escapeString" />
                                         <call-param-rule paramnumber="3" 
attrname="escapeSwitch" />
                                  </pattern>

In the earlier version, this was set to true if includeIfNull is not present in 
the xml file.
In the xml file:
<begSeparator separator="/" />
(As you see, there is no includeIfNull attribute)

This is how, digester is being initialized:

 Digester digester = newLoader( createRules(  
_registerHelper.registerEarResource(rule)  ) ).newDigester();

         digester.push(object);

         //Set the SAX parser attributes
         digester.setErrorHandler(new SASErrorHandler());
         //setValidatRing is not required as it triggers dtd validation, refer 
digester doc
         digester.setNamespaceAware(true);
         //use dynamic schema validation
         
digester.setFeature("http://apache.org/xml/features/validation/dynamic",true);
         
digester.setFeature("http://apache.org/xml/features/validation/schema",true);
 digester.setXMLSchema(schema);
         digester.parse( _registerHelper.registerFile(file).openStream());

Can any of you provide any workaround wherein we can change the default 
behavior to consider true by default instead of false for any of the non-passed 
arguments?

Rgds
Manohar



Reply via email to