cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylvain.wal...@anyware-tech.com>
Subject Re: Lenient Woody Binding
Date Mon, 01 Sep 2003 16:06:20 GMT
Marc Portier wrote:

> Hi all,
>
>
> Woody binding currently breaks if the xpath's to bind to don't exist 
> in the XML (or JavaBean)
> This 'breaking' is manifesting itself through a JXPathException 
> (org.apache.commons.jxpath.*) being thrown.
> The JXpath API offers a 'lenient' setting to change this behaviour 
> into just returning a 'null' (see jxpath javadoc at [1])
>
> The danger in just using that last option is that (e.g for the 
> ContextBinding) the current exception would be covered up but instead 
> lead to a NPE further down the processing (which would arguably be 
> harder to debug/spot)
>
> Furthermore, I can see environments were people would rather be 
> confronted with the failing XML and see the exception, so I guess it 
> needs to end up as a binding-config file setting. (probably an 
> @lenient on each component that has some kind of @path in its config)
>
> In order for Binding to gracefully survive (in a best effort manner) 
> the various binding components should thus know their own 'lenient' 
> mode, check for null returns and stop any nested child bindings if a 
> null was returned.
>
> The lenient member of each binding component should allow for 3 states:
> - null (not set): meaning take it as it comes from the parent binding,
> - true or false : meaning change the jxpath context lenient mode 
> further down.
>
> I plan to make the changes in code and docos on this today.
> Any comments welcome. 


Lenient mode is definitely required since non-required widgets are 
likely to be bound to optional elements (considering the application 
model is an XML doc). And these elements may not exist in the XML 
document, but should be added as a result of form validation.

I would even say that lenient mode should be the default.

Sylvain

-- 
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -  http://www.orixo.com



Mime
View raw message