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/
[EMAIL PROTECTED] [EMAIL PROTECTED]
