cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Portier <...@outerthought.org>
Subject Lenient Woody Binding
Date Mon, 01 Sep 2003 09:11:26 GMT
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.

-marc=


[1] 
http://jakarta.apache.org/commons/jxpath/apidocs/org/apache/commons/jxpath/JXPathContext.html#setLenient(boolean)
-- 
Marc Portier                            http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
Read my weblog at              http://radio.weblogs.com/0116284/
mpo@outerthought.org                              mpo@apache.org


Mime
View raw message