>The eclipse Web Tools Platform has quietly posted their WTP 3.2M1 build for download. This build is an important milestone for those using or planning to use the XPath 2.0 Schema Aware processor being developed by the wst.xsl component.
PsychoPath 1.1M1 brings with it a vastly improved processor from the compliance stand point. It provides better support for the core XPath 2.0 specification. Current stats put the PsychoPath processor at 96% compliance to the W3C Test Suite for XPath 2.0.
PsychoPath can be used as a standalone jar, it does not provide a command line interface for running XPath 2.0 expressions, but does provide an API that can be used. See the User Manual for more information on how to get the jar necessary, interface with the API, and execute your expressions.
During the development of 1.1M1, I’ve learned the value of having a good test suite and what test driven development can do. The test suite for PsychoPath is freely available for download and resides in the org.eclipse.wst.xml.xpath2.processor.tests project in the Web Tools CVS repository. As it stands right now code coverage fluctuates between 73% and 76%, depending on how many bugs have been fixed.
One thing I have noticed about the W3C Test Suite is that it does not test for failures enough. Many of the tests assume a good outcome, but there needs to be an equal number of tests where the result is a failure. We had hit a high of 76% code coverage at one point, but as we have fixed failing tests the coverage has actually decreased instead of increasing.
Also, having the test suite has given the team the ability to make some fundamental changes to the way the code is structured, and still make sure that we are passing the tests. In many cases we have rewritten large portions of the code with the comfort that if we broke something, the tests would let us know.
XPath 2.0 is a great step forward, and if you hate working with the W3C DOM directly and don’t want to write a lot of the processing functionality yourself, investigate the use of XPath 2.0.
A note to WTP DOM users, due to the use of DOM Level 3 API in various parts of the PsychoPath implementation, a WTP DOM may not work with PsychoPath. There are plans to address this limitation of the WTP DOM in the future.